diff --git a/packages/core/types/jimp.d.ts b/packages/core/types/jimp.d.ts index 36339d14d..b496adce2 100644 --- a/packages/core/types/jimp.d.ts +++ b/packages/core/types/jimp.d.ts @@ -121,8 +121,18 @@ export interface Jimp extends JimpConstructors { y: number, cb?: GenericCallback ): number; - setPixelColor(hex: number, x: number, y: number, cb?: ImageCallback): this; - setPixelColour(hex: number, x: number, y: number, cb?: ImageCallback): this; + setPixelColor( + hex: number, + x: number, + y: number, + cb?: ImageCallback + ): this; + setPixelColour( + hex: number, + x: number, + y: number, + cb?: ImageCallback + ): this; clone(cb?: ImageCallback): this; cloneQuiet(cb?: ImageCallback): this; background(hex: number, cb?: ImageCallback): this; @@ -170,10 +180,15 @@ export interface Jimp extends JimpConstructors { ...args: T[] ) => any ): void; - read(path: string): Promise; - read(image: Jimp): Promise; - read(data: Buffer): Promise; - read(w: number, h: number, background?: number | string): Promise; + read(path: string, cb?: ImageCallback): Promise; + read(image: Jimp, cb?: ImageCallback): Promise; + read(data: Buffer, cb?: ImageCallback): Promise; + read( + w: number, + h: number, + background?: number | string, + cb?: ImageCallback + ): Promise; create(path: string): Promise; create(image: Jimp): Promise; create(data: Buffer): Promise; @@ -188,11 +203,7 @@ export interface Jimp extends JimpConstructors { intToRGBA(i: number, cb?: GenericCallback): RGBA; cssColorToHex(cssColor: string): number; limit255(n: number): number; - diff( - img1: Jimp, - img2: Jimp, - threshold?: number - ): DiffReturn; + diff(img1: Jimp, img2: Jimp, threshold?: number): DiffReturn; distance(img1: Jimp, img2: Jimp): number; compareHashes(hash1: string, hash2: string): number; colorDiff(rgba1: RGB, rgba2: RGB): number; diff --git a/packages/jimp/types/index.d.ts b/packages/jimp/types/index.d.ts index 32d0e4224..d8881787f 100644 --- a/packages/jimp/types/index.d.ts +++ b/packages/jimp/types/index.d.ts @@ -351,11 +351,15 @@ interface DepreciatedJimp { ...args: T[] ) => any ): void; - read(path: string): Promise; - read(image: this): Promise; - read(data: Buffer): Promise; - read(w: number, h: number, background?: number | string): Promise; - create(path: string): Promise; + read(path: string, cb?: ImageCallback): Promise; + read(image: this, cb?: ImageCallback): Promise; + read(data: Buffer, cb?: ImageCallback): Promise; + read( + w: number, + h: number, + background?: number | string, + cb?: ImageCallback + ): Promise; create(path: string): Promise; create(image: this): Promise; create(data: Buffer): Promise; create(w: number, h: number, background?: number | string): Promise; diff --git a/packages/jimp/types/test.ts b/packages/jimp/types/test.ts index 54d5a3dc7..13a257150 100644 --- a/packages/jimp/types/test.ts +++ b/packages/jimp/types/test.ts @@ -68,3 +68,21 @@ test('can clone properly', async () => { }) }) }); + +test('Can handle callback with constructor', () => { + const myBmpBuffer: Buffer = {} as any; + + Jimp.read(myBmpBuffer, (err, cbJimpInst) => { + cbJimpInst.read('Test'); + cbJimpInst.displace(jimpInst, 2); + cbJimpInst.resize(40, 40); + // $ExpectType 0 + cbJimpInst.PNG_FILTER_NONE; + + // $ExpectError + cbJimpInst.test; + + // $ExpectError + cbJimpInst.func(); + }); +}) diff --git a/packages/jimp/types/ts3.1/test.ts b/packages/jimp/types/ts3.1/test.ts index dbec3103f..d0be22d22 100644 --- a/packages/jimp/types/ts3.1/test.ts +++ b/packages/jimp/types/ts3.1/test.ts @@ -68,3 +68,21 @@ test('can clone properly', async () => { }) }) }); + +test('Can handle callback with constructor', () => { + const myBmpBuffer: Buffer = {} as any; + + Jimp.read(myBmpBuffer, (err, cbJimpInst) => { + cbJimpInst.read('Test'); + cbJimpInst.displace(jimpInst, 2); + cbJimpInst.resize(40, 40); + // $ExpectType 0 + cbJimpInst.PNG_FILTER_NONE; + + // $ExpectError + cbJimpInst.test; + + // $ExpectError + cbJimpInst.func(); + }); +});