From 96e3ca235598a06104f2e33484f19a480d3b9b4d Mon Sep 17 00:00:00 2001 From: Aankhen Date: Tue, 8 May 2018 22:56:43 +0530 Subject: [PATCH] Add gulp-svgmin types (#25599) --- types/gulp-svgmin/gulp-svgmin-tests.ts | 51 ++++++++++++++++++++++++++ types/gulp-svgmin/index.d.ts | 17 +++++++++ types/gulp-svgmin/tsconfig.json | 23 ++++++++++++ types/gulp-svgmin/tslint.json | 1 + 4 files changed, 92 insertions(+) create mode 100644 types/gulp-svgmin/gulp-svgmin-tests.ts create mode 100644 types/gulp-svgmin/index.d.ts create mode 100644 types/gulp-svgmin/tsconfig.json create mode 100644 types/gulp-svgmin/tslint.json diff --git a/types/gulp-svgmin/gulp-svgmin-tests.ts b/types/gulp-svgmin/gulp-svgmin-tests.ts new file mode 100644 index 0000000000..2d3d6e7e44 --- /dev/null +++ b/types/gulp-svgmin/gulp-svgmin-tests.ts @@ -0,0 +1,51 @@ +import svgmin = require("gulp-svgmin"); +import { basename, extname } from "path"; + +// From tests + +svgmin({ plugins: [] }); +svgmin({ plugins: [{ removeDoctype: false }] }); +svgmin({ plugins: [{ removeDoctype: false }, { removeComments: false }] }); + +// From examples given in README + +// $ExpectType Transform +svgmin(); + +// $ExpectType Transform +svgmin({ + plugins: [{ + removeDoctype: false + }, { + removeComments: false + }, { + cleanupNumericValues: { + floatPrecision: 2 + } + }, { + convertColors: { + names2hex: false, + rgb2hex: false + } + }] +}); + +// $ExpectType Transform +svgmin({ + js2svg: { + pretty: true + } +}); + +// $ExpectType Transform +svgmin(function getOptions(file) { + const prefix = basename(file.relative, extname(file.relative)); + return { + plugins: [{ + cleanupIDs: { + prefix: prefix + '-', + minify: true + } + }] + }; +}); diff --git a/types/gulp-svgmin/index.d.ts b/types/gulp-svgmin/index.d.ts new file mode 100644 index 0000000000..08c84bc930 --- /dev/null +++ b/types/gulp-svgmin/index.d.ts @@ -0,0 +1,17 @@ +// Type definitions for gulp-svgmin 1.2 +// Project: https://github.com/ben-eb/gulp-svgmin +// Definitions by: Aankhen +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +// TypeScript Version: 2.2 +// (required because svgo specifies 2.2) + +/// + +import SVGO = require("svgo"); +import { Transform } from "stream"; +import * as File from "vinyl"; + +export = GulpSvgmin; + +declare function GulpSvgmin(cb: (file: File) => SVGO.Options): Transform; +declare function GulpSvgmin(options?: SVGO.Options): Transform; diff --git a/types/gulp-svgmin/tsconfig.json b/types/gulp-svgmin/tsconfig.json new file mode 100644 index 0000000000..1d94db7181 --- /dev/null +++ b/types/gulp-svgmin/tsconfig.json @@ -0,0 +1,23 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictFunctionTypes": true, + "strictNullChecks": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "gulp-svgmin-tests.ts" + ] +} diff --git a/types/gulp-svgmin/tslint.json b/types/gulp-svgmin/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/gulp-svgmin/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" }