btd / sharp-phash

sharp based perceptual hash implementation
MIT License
47 stars 12 forks source link

TypeScript typings #14

Open kachkaev opened 1 year ago

kachkaev commented 1 year ago

👋 @btd! I just came across your library – looks great! WDYT of adding typescript typings so that users could avoid these errors in TS imports:

Could not find a declaration file for module 'sharp-phash'. '/path/tp/project/node_modules/.pnpm/sharp-phash@2.1.0_sharp@0.32.1/node_modules/sharp-phash/index.js' implicitly has an 'any' type.
  Try `npm i --save-dev @types/sharp-phash` if it exists or add a new declaration (.d.ts) file containing `declare module 'sharp-phash';`ts(7016)

In the meantime, this serves as a workaround:

// @ts-expect-error -- upstream types do not exist: https://github.com/btd/sharp-phash/issues/14
import phash from "sharp-phash";
// @ts-expect-error -- upstream types do not exist: https://github.com/btd/sharp-phash/issues/14
import phashDistance from "sharp-phash/distance";
btd commented 1 year ago

Hi, sorry. I will not be able to add this anytime soon. But i am very open to either TS migration or addition of types if you mind.

kachkaev commented 1 year ago

Cool! Shall I create a PR that adds index.d.ts? This will be a minor or a patch change (up to your preference). Refactoring everything to ts may be a bit more involved.

btd commented 1 year ago

Just create .d.ts file (one or two - depending if you want it to be similar to how tsc generate it). I will increment version when will do publish