diff --git a/types/gulp-sequence/gulp-sequence-tests.ts b/types/gulp-sequence/gulp-sequence-tests.ts new file mode 100644 index 0000000000..f2c10418c8 --- /dev/null +++ b/types/gulp-sequence/gulp-sequence-tests.ts @@ -0,0 +1,70 @@ +import * as seq from 'gulp-sequence'; +import * as gulp from 'gulp'; + +seq.use(gulp).use(gulp).use(gulp); + +gulp.task('x', seq('foo')); +gulp.task('x', seq('foo', ['foo', 'bar'], 'qux')); +gulp.task('x', seq( + '1', + '2', + '3', + '4', + '5', + '6', + '7', + '8', + '9', + '10', + '11', + '12', + '13', + '14', + '15', + '16', + '17', + '18', + '19', + '20', + '21', + '22', + '23', + '24', + '25' +)); + +const noop = () => {}; + +// tslint:disable-next-line:no-void-expression +let r: undefined = seq('foo', noop); +// tslint:disable-next-line:no-void-expression +r = seq('foo', ['foo', 'bar'], 'qux', noop); +// tslint:disable-next-line:no-void-expression +r = seq( + '1', + '2', + '3', + '4', + '5', + '6', + '7', + '8', + '9', + '10', + '11', + '12', + '13', + '14', + '15', + '16', + '17', + '18', + '19', + '20', + '21', + '22', + '23', + '24', + '25', + noop +); diff --git a/types/gulp-sequence/index.d.ts b/types/gulp-sequence/index.d.ts new file mode 100644 index 0000000000..aa236e3a5a --- /dev/null +++ b/types/gulp-sequence/index.d.ts @@ -0,0 +1,391 @@ +// Type definitions for gulp-sequence 1.0 +// Project: https://github.com/teambition/gulp-sequence +// Definitions by: Alorel +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +import { Gulp, TaskFunction } from 'gulp'; + +declare namespace seq { + type Step = string | string[]; + + type Done = (error?: any) => void; + + function use(gulp: Gulp): typeof seq; +} + +/* +Sequence functions (apart from the one returning TaskFunction) generated using the following (requires lodash for the padding): + +const fnBase = `declare function seq(`; +const argPad = _.pad('', fnBase.length, ' '); +const maxArgs = 25; + +const outDone = []; + +for (let i = 1; i <= maxArgs; i++) { + let def = []; + for (let j = 1; j <= i; j++) { + def.push(`s${j}: seq.Step`); + } + + def.push(`done: seq.Done): void;`); + outDone.push(def.join(`,\n${argPad}`)); +} + +console.log(fnBase + outDone.join(`\n${fnBase}`)); +*/ + +declare function seq(firstTask: seq.Step, ...additionalTasks: seq.Step[]): TaskFunction; + +declare function seq(s1: seq.Step, + done: seq.Done): void; +declare function seq(s1: seq.Step, + s2: seq.Step, + done: seq.Done): void; +declare function seq(s1: seq.Step, + s2: seq.Step, + s3: seq.Step, + done: seq.Done): void; +declare function seq(s1: seq.Step, + s2: seq.Step, + s3: seq.Step, + s4: seq.Step, + done: seq.Done): void; +declare function seq(s1: seq.Step, + s2: seq.Step, + s3: seq.Step, + s4: seq.Step, + s5: seq.Step, + done: seq.Done): void; +declare function seq(s1: seq.Step, + s2: seq.Step, + s3: seq.Step, + s4: seq.Step, + s5: seq.Step, + s6: seq.Step, + done: seq.Done): void; +declare function seq(s1: seq.Step, + s2: seq.Step, + s3: seq.Step, + s4: seq.Step, + s5: seq.Step, + s6: seq.Step, + s7: seq.Step, + done: seq.Done): void; +declare function seq(s1: seq.Step, + s2: seq.Step, + s3: seq.Step, + s4: seq.Step, + s5: seq.Step, + s6: seq.Step, + s7: seq.Step, + s8: seq.Step, + done: seq.Done): void; +declare function seq(s1: seq.Step, + s2: seq.Step, + s3: seq.Step, + s4: seq.Step, + s5: seq.Step, + s6: seq.Step, + s7: seq.Step, + s8: seq.Step, + s9: seq.Step, + done: seq.Done): void; +declare function seq(s1: seq.Step, + s2: seq.Step, + s3: seq.Step, + s4: seq.Step, + s5: seq.Step, + s6: seq.Step, + s7: seq.Step, + s8: seq.Step, + s9: seq.Step, + s10: seq.Step, + done: seq.Done): void; +declare function seq(s1: seq.Step, + s2: seq.Step, + s3: seq.Step, + s4: seq.Step, + s5: seq.Step, + s6: seq.Step, + s7: seq.Step, + s8: seq.Step, + s9: seq.Step, + s10: seq.Step, + s11: seq.Step, + done: seq.Done): void; +declare function seq(s1: seq.Step, + s2: seq.Step, + s3: seq.Step, + s4: seq.Step, + s5: seq.Step, + s6: seq.Step, + s7: seq.Step, + s8: seq.Step, + s9: seq.Step, + s10: seq.Step, + s11: seq.Step, + s12: seq.Step, + done: seq.Done): void; +declare function seq(s1: seq.Step, + s2: seq.Step, + s3: seq.Step, + s4: seq.Step, + s5: seq.Step, + s6: seq.Step, + s7: seq.Step, + s8: seq.Step, + s9: seq.Step, + s10: seq.Step, + s11: seq.Step, + s12: seq.Step, + s13: seq.Step, + done: seq.Done): void; +declare function seq(s1: seq.Step, + s2: seq.Step, + s3: seq.Step, + s4: seq.Step, + s5: seq.Step, + s6: seq.Step, + s7: seq.Step, + s8: seq.Step, + s9: seq.Step, + s10: seq.Step, + s11: seq.Step, + s12: seq.Step, + s13: seq.Step, + s14: seq.Step, + done: seq.Done): void; +declare function seq(s1: seq.Step, + s2: seq.Step, + s3: seq.Step, + s4: seq.Step, + s5: seq.Step, + s6: seq.Step, + s7: seq.Step, + s8: seq.Step, + s9: seq.Step, + s10: seq.Step, + s11: seq.Step, + s12: seq.Step, + s13: seq.Step, + s14: seq.Step, + s15: seq.Step, + done: seq.Done): void; +declare function seq(s1: seq.Step, + s2: seq.Step, + s3: seq.Step, + s4: seq.Step, + s5: seq.Step, + s6: seq.Step, + s7: seq.Step, + s8: seq.Step, + s9: seq.Step, + s10: seq.Step, + s11: seq.Step, + s12: seq.Step, + s13: seq.Step, + s14: seq.Step, + s15: seq.Step, + s16: seq.Step, + done: seq.Done): void; +declare function seq(s1: seq.Step, + s2: seq.Step, + s3: seq.Step, + s4: seq.Step, + s5: seq.Step, + s6: seq.Step, + s7: seq.Step, + s8: seq.Step, + s9: seq.Step, + s10: seq.Step, + s11: seq.Step, + s12: seq.Step, + s13: seq.Step, + s14: seq.Step, + s15: seq.Step, + s16: seq.Step, + s17: seq.Step, + done: seq.Done): void; +declare function seq(s1: seq.Step, + s2: seq.Step, + s3: seq.Step, + s4: seq.Step, + s5: seq.Step, + s6: seq.Step, + s7: seq.Step, + s8: seq.Step, + s9: seq.Step, + s10: seq.Step, + s11: seq.Step, + s12: seq.Step, + s13: seq.Step, + s14: seq.Step, + s15: seq.Step, + s16: seq.Step, + s17: seq.Step, + s18: seq.Step, + done: seq.Done): void; +declare function seq(s1: seq.Step, + s2: seq.Step, + s3: seq.Step, + s4: seq.Step, + s5: seq.Step, + s6: seq.Step, + s7: seq.Step, + s8: seq.Step, + s9: seq.Step, + s10: seq.Step, + s11: seq.Step, + s12: seq.Step, + s13: seq.Step, + s14: seq.Step, + s15: seq.Step, + s16: seq.Step, + s17: seq.Step, + s18: seq.Step, + s19: seq.Step, + done: seq.Done): void; +declare function seq(s1: seq.Step, + s2: seq.Step, + s3: seq.Step, + s4: seq.Step, + s5: seq.Step, + s6: seq.Step, + s7: seq.Step, + s8: seq.Step, + s9: seq.Step, + s10: seq.Step, + s11: seq.Step, + s12: seq.Step, + s13: seq.Step, + s14: seq.Step, + s15: seq.Step, + s16: seq.Step, + s17: seq.Step, + s18: seq.Step, + s19: seq.Step, + s20: seq.Step, + done: seq.Done): void; +declare function seq(s1: seq.Step, + s2: seq.Step, + s3: seq.Step, + s4: seq.Step, + s5: seq.Step, + s6: seq.Step, + s7: seq.Step, + s8: seq.Step, + s9: seq.Step, + s10: seq.Step, + s11: seq.Step, + s12: seq.Step, + s13: seq.Step, + s14: seq.Step, + s15: seq.Step, + s16: seq.Step, + s17: seq.Step, + s18: seq.Step, + s19: seq.Step, + s20: seq.Step, + s21: seq.Step, + done: seq.Done): void; +declare function seq(s1: seq.Step, + s2: seq.Step, + s3: seq.Step, + s4: seq.Step, + s5: seq.Step, + s6: seq.Step, + s7: seq.Step, + s8: seq.Step, + s9: seq.Step, + s10: seq.Step, + s11: seq.Step, + s12: seq.Step, + s13: seq.Step, + s14: seq.Step, + s15: seq.Step, + s16: seq.Step, + s17: seq.Step, + s18: seq.Step, + s19: seq.Step, + s20: seq.Step, + s21: seq.Step, + s22: seq.Step, + done: seq.Done): void; +declare function seq(s1: seq.Step, + s2: seq.Step, + s3: seq.Step, + s4: seq.Step, + s5: seq.Step, + s6: seq.Step, + s7: seq.Step, + s8: seq.Step, + s9: seq.Step, + s10: seq.Step, + s11: seq.Step, + s12: seq.Step, + s13: seq.Step, + s14: seq.Step, + s15: seq.Step, + s16: seq.Step, + s17: seq.Step, + s18: seq.Step, + s19: seq.Step, + s20: seq.Step, + s21: seq.Step, + s22: seq.Step, + s23: seq.Step, + done: seq.Done): void; +declare function seq(s1: seq.Step, + s2: seq.Step, + s3: seq.Step, + s4: seq.Step, + s5: seq.Step, + s6: seq.Step, + s7: seq.Step, + s8: seq.Step, + s9: seq.Step, + s10: seq.Step, + s11: seq.Step, + s12: seq.Step, + s13: seq.Step, + s14: seq.Step, + s15: seq.Step, + s16: seq.Step, + s17: seq.Step, + s18: seq.Step, + s19: seq.Step, + s20: seq.Step, + s21: seq.Step, + s22: seq.Step, + s23: seq.Step, + s24: seq.Step, + done: seq.Done): void; +declare function seq(s1: seq.Step, + s2: seq.Step, + s3: seq.Step, + s4: seq.Step, + s5: seq.Step, + s6: seq.Step, + s7: seq.Step, + s8: seq.Step, + s9: seq.Step, + s10: seq.Step, + s11: seq.Step, + s12: seq.Step, + s13: seq.Step, + s14: seq.Step, + s15: seq.Step, + s16: seq.Step, + s17: seq.Step, + s18: seq.Step, + s19: seq.Step, + s20: seq.Step, + s21: seq.Step, + s22: seq.Step, + s23: seq.Step, + s24: seq.Step, + s25: seq.Step, + done: seq.Done): void; + +export = seq; diff --git a/types/gulp-sequence/tsconfig.json b/types/gulp-sequence/tsconfig.json new file mode 100644 index 0000000000..cdfaf33610 --- /dev/null +++ b/types/gulp-sequence/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-sequence-tests.ts" + ] +} diff --git a/types/gulp-sequence/tslint.json b/types/gulp-sequence/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/gulp-sequence/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" }