From c73b50e6c5908daaebf5dafd9e49bb233ce705a3 Mon Sep 17 00:00:00 2001 From: Aankhen Date: Thu, 12 Apr 2018 00:18:34 +0530 Subject: [PATCH] Add types for gulp-responsive-images. (#24885) --- .../gulp-responsive-images-tests.ts | 63 +++++++++++++++++++ types/gulp-responsive-images/index.d.ts | 43 +++++++++++++ types/gulp-responsive-images/tsconfig.json | 23 +++++++ types/gulp-responsive-images/tslint.json | 1 + 4 files changed, 130 insertions(+) create mode 100644 types/gulp-responsive-images/gulp-responsive-images-tests.ts create mode 100644 types/gulp-responsive-images/index.d.ts create mode 100644 types/gulp-responsive-images/tsconfig.json create mode 100644 types/gulp-responsive-images/tslint.json diff --git a/types/gulp-responsive-images/gulp-responsive-images-tests.ts b/types/gulp-responsive-images/gulp-responsive-images-tests.ts new file mode 100644 index 0000000000..63957ec047 --- /dev/null +++ b/types/gulp-responsive-images/gulp-responsive-images-tests.ts @@ -0,0 +1,63 @@ +import gulpResponsiveImages = require('gulp-responsive-images'); + +gulpResponsiveImages(); // $ExpectError + +gulpResponsiveImages({}); // $ExpectType Transform + +gulpResponsiveImages({ 1: "abcd" }); // $ExpectError + +gulpResponsiveImages({ + 'hero.png': [ + { + } + ] +} +); + +gulpResponsiveImages({ + 'hero.png': [ + { + crop: false, + gravity: 'Center', + height: 100, + overwrite: true, + quality: 100, + sharpen: false, + suffix: '-100', + upscale: false, + width: 100 + } + ] +} +); + +gulpResponsiveImages({ + 'hero.png': [ + { + format: "jpeg", + rename: "image.jpg", + percentage: 50 + } + ] +} +); + +gulpResponsiveImages({ + 'hero.png': [ + { + crop: undefined, + gravity: undefined, + height: undefined, + overwrite: undefined, + quality: undefined, + sharpen: undefined, + suffix: undefined, + upscale: undefined, + width: undefined, + format: undefined, + rename: undefined, + percentage: undefined + } + ] +} +); diff --git a/types/gulp-responsive-images/index.d.ts b/types/gulp-responsive-images/index.d.ts new file mode 100644 index 0000000000..3b3707f024 --- /dev/null +++ b/types/gulp-responsive-images/index.d.ts @@ -0,0 +1,43 @@ +// Type definitions for gulp-responsive-images 0.0 +// Project: https://github.com/dcgauld/gulp-responsive-images#readme +// Definitions by: Aankhen +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +/// + +import * as stream from "stream"; +import * as gm from "gm"; +import { ParsedPath, Options as RenameOptions } from "gulp-rename"; + +export = GulpResponsiveImage; + +declare function GulpResponsiveImage(configs: GulpResponsiveImage.Matchers): stream.Transform; + +declare namespace GulpResponsiveImage { + type SamplingFactor = [number, number]; + + type Rename = string + | ((path: ParsedPath) => any) + | RenameOptions; + + interface Settings { + crop?: boolean; + format?: string; + gravity?: gm.GravityDirection; + overwrite?: boolean; + quality?: number; + rename?: Rename; + percentage?: number; + sharpen?: boolean; + upscale?: boolean; + filter?: gm.FilterType; + height?: number; + width?: number; + samplingFactor?: SamplingFactor; + suffix?: string; + } + + interface Matchers { + [index: string]: ReadonlyArray; + } +} diff --git a/types/gulp-responsive-images/tsconfig.json b/types/gulp-responsive-images/tsconfig.json new file mode 100644 index 0000000000..2c4c0aa75b --- /dev/null +++ b/types/gulp-responsive-images/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-responsive-images-tests.ts" + ] +} diff --git a/types/gulp-responsive-images/tslint.json b/types/gulp-responsive-images/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/gulp-responsive-images/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" }