From 8b636fd9a8df6538f1bf9201a1d34af02bfbe5cd Mon Sep 17 00:00:00 2001 From: Aankhen Date: Thu, 12 Apr 2018 00:15:43 +0530 Subject: [PATCH] Add gulp-image types. (#24889) --- types/gulp-image/gulp-image-tests.ts | 28 +++++++++++++++++++++++++ types/gulp-image/index.d.ts | 31 ++++++++++++++++++++++++++++ types/gulp-image/tsconfig.json | 23 +++++++++++++++++++++ types/gulp-image/tslint.json | 1 + 4 files changed, 83 insertions(+) create mode 100644 types/gulp-image/gulp-image-tests.ts create mode 100644 types/gulp-image/index.d.ts create mode 100644 types/gulp-image/tsconfig.json create mode 100644 types/gulp-image/tslint.json diff --git a/types/gulp-image/gulp-image-tests.ts b/types/gulp-image/gulp-image-tests.ts new file mode 100644 index 0000000000..6d94c46921 --- /dev/null +++ b/types/gulp-image/gulp-image-tests.ts @@ -0,0 +1,28 @@ +import image = require('gulp-image'); + +image(false); // $ExpectError + +image(); // $ExpectType Transform +image({}); +image({ + pngquant: true, + optipng: false, + zopflipng: true, + jpegRecompress: false, + mozjpeg: true, + guetzli: false, + gifsicle: true, + svgo: true, + concurrent: 10, + quiet: true // defaults to false +}); +image({ + optipng: ['-i 1', '-strip all', '-fix', '-o7', '-force'], + pngquant: ['--speed=1', '--force', 256], + zopflipng: ['-y', '--lossy_8bit', '--lossy_transparent'], + jpegRecompress: ['--strip', '--quality', 'medium', '--min', 40, '--max', 80], + mozjpeg: ['-optimize', '-progressive'], + guetzli: ['--quality', 85], + gifsicle: ['--optimize'], + svgo: ['--enable', 'cleanupIDs', '--disable', 'convertColors'] +}); diff --git a/types/gulp-image/index.d.ts b/types/gulp-image/index.d.ts new file mode 100644 index 0000000000..d46d68f3ab --- /dev/null +++ b/types/gulp-image/index.d.ts @@ -0,0 +1,31 @@ +// Type definitions for gulp-image 4.3 +// Project: https://github.com/1000ch/gulp-image#readme +// Definitions by: Aankhen +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +// TypeScript Version: 2.4 + +/// + +import stream = require("stream"); + +export = GulpImage; + +declare function GulpImage(options?: GulpImage.Options): stream.Transform; + +declare namespace GulpImage { + type OptimizerSetting = boolean + | any[]; + + interface Options { + pngquant?: OptimizerSetting; + optipng?: OptimizerSetting; + zopflipng?: OptimizerSetting; + jpegRecompress?: OptimizerSetting; + mozjpeg?: OptimizerSetting; + guetzli?: OptimizerSetting; + gifsicle?: OptimizerSetting; + svgo?: OptimizerSetting; + concurrent?: number; + quiet?: boolean; + } +} diff --git a/types/gulp-image/tsconfig.json b/types/gulp-image/tsconfig.json new file mode 100644 index 0000000000..a9d788e360 --- /dev/null +++ b/types/gulp-image/tsconfig.json @@ -0,0 +1,23 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "strictFunctionTypes": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "gulp-image-tests.ts" + ] +} diff --git a/types/gulp-image/tslint.json b/types/gulp-image/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/gulp-image/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" }