Move lib/types.d.ts generation to separate script.

Fixes Promise<T>, ensures module prefix is declared.
This commit is contained in:
Lovell Fuller 2016-11-20 11:24:05 +00:00
parent effa77afee
commit e4e7384f99
3 changed files with 23 additions and 5 deletions

10
lib/types.d.ts vendored
View File

@ -1,3 +1,5 @@
declare module "sharp" {
/** /**
* @class Sharp * @class Sharp
* *
@ -202,7 +204,7 @@ declare function clone(): Sharp;
* @param {Function} [callback] - called with the arguments `(err, metadata)` * @param {Function} [callback] - called with the arguments `(err, metadata)`
* @returns {Promise<Object>|Sharp} * @returns {Promise<Object>|Sharp}
*/ */
declare function metadata(callback?: (() => any)): (Promise.<Object>|Sharp); declare function metadata(callback?: (() => any)): (Promise<Object>|Sharp);
/** /**
* Do not process input images where the number of pixels (width * height) exceeds this limit. * Do not process input images where the number of pixels (width * height) exceeds this limit.
@ -792,7 +794,7 @@ declare function bandbool(boolOp: String): Sharp;
* @returns {Promise<Object>} - when no callback is provided * @returns {Promise<Object>} - when no callback is provided
* @throws {Error} Invalid parameters * @throws {Error} Invalid parameters
*/ */
declare function toFile(fileOut: String, callback?: (() => any)): Promise.<Object>; declare function toFile(fileOut: String, callback?: (() => any)): Promise<Object>;
/** /**
* Write output to a Buffer. * Write output to a Buffer.
@ -806,7 +808,7 @@ declare function toFile(fileOut: String, callback?: (() => any)): Promise.<Objec
* @param {Function} [callback] * @param {Function} [callback]
* @returns {Promise<Buffer>} - when no callback is provided * @returns {Promise<Buffer>} - when no callback is provided
*/ */
declare function toBuffer(callback?: (() => any)): Promise.<Buffer>; declare function toBuffer(callback?: (() => any)): Promise<Buffer>;
/** /**
* Include all metadata (EXIF, XMP, IPTC) from the input image in the output image. * Include all metadata (EXIF, XMP, IPTC) from the input image in the output image.
@ -1017,3 +1019,5 @@ declare function counters(): Object;
*/ */
declare function simd(simd?: Boolean): Boolean; declare function simd(simd?: Boolean): Boolean;
}

View File

@ -37,7 +37,7 @@
"test-leak": "./test/leak/leak.sh", "test-leak": "./test/leak/leak.sh",
"test-packaging": "./packaging/test-linux-x64.sh", "test-packaging": "./packaging/test-linux-x64.sh",
"docs": "for m in constructor input resize composite operation colour channel output utility; do documentation build --shallow --format=md lib/$m.js >docs/api-$m.md; done", "docs": "for m in constructor input resize composite operation colour channel output utility; do documentation build --shallow --format=md lib/$m.js >docs/api-$m.md; done",
"types": "cd lib && jsdoc -d . -t ../node_modules/tsd-jsdoc constructor.js input.js resize.js composite.js operation.js colour.js channel.js output.js utility.js" "types": "./packaging/types.sh"
}, },
"main": "lib/index.js", "main": "lib/index.js",
"types": "lib/types.d.ts", "types": "lib/types.d.ts",
@ -81,7 +81,7 @@
"nyc": "^9.0.1", "nyc": "^9.0.1",
"rimraf": "^2.5.4", "rimraf": "^2.5.4",
"semistandard": "^9.1.0", "semistandard": "^9.1.0",
"tsd-jsdoc": "^1.0.1", "tsd-jsdoc": "lovell/tsd-jsdoc#add-support-for-promises",
"unzip": "^0.1.11" "unzip": "^0.1.11"
}, },
"license": "Apache-2.0", "license": "Apache-2.0",

14
packaging/types.sh Executable file
View File

@ -0,0 +1,14 @@
#!/bin/sh
# Regenerates lib/types.d.ts Typescript definitions
sources="lib/constructor.js lib/input.js lib/resize.js lib/composite.js lib/operation.js lib/colour.js lib/channel.js lib/output.js lib/utility.js"
types="types.d.ts"
# Generate types via JSDoc comments
./node_modules/.bin/jsdoc -d . -t ./node_modules/tsd-jsdoc $sources
# Wrap output with module declaration
echo "declare module \"sharp\" {\n" > "lib/$types"
cat "$types" >> "lib/$types"
echo "}\n" >> "lib/$types"
rm "$types"