From 3613a5f06a168bb83b9a4f0b2c1df02c5a3ab038 Mon Sep 17 00:00:00 2001 From: Keita Kagurazaka Date: Wed, 4 Mar 2015 04:59:29 +0000 Subject: [PATCH] Add definitions and tests for gulp-inject --- gulp-inject/gulp-inject-tests.ts | 41 ++++++++++++++++++++++++++++++++ gulp-inject/gulp-inject.d.ts | 36 ++++++++++++++++++++++++++++ 2 files changed, 77 insertions(+) create mode 100644 gulp-inject/gulp-inject-tests.ts create mode 100644 gulp-inject/gulp-inject.d.ts diff --git a/gulp-inject/gulp-inject-tests.ts b/gulp-inject/gulp-inject-tests.ts new file mode 100644 index 000000000..804e6f9b5 --- /dev/null +++ b/gulp-inject/gulp-inject-tests.ts @@ -0,0 +1,41 @@ +/// +/// + +import gulp = require("gulp"); +import inject = require("gulp-inject"); + +gulp.task("inject:simple", () => { + gulp.src("src/index.html") + .pipe(inject(gulp.src(["src/**/*.js", "src/**/*.css"], { read: false }))) + .pipe(gulp.dest("build")); +}); + +gulp.task("inject:relative", () => { + gulp.src(["src/index.html"]) + .pipe(inject(gulp.src(["src/**/*.js", "src/**/*.css"], { read: false }), { relative: true })) + .pipe(gulp.dest("build")); +}); + +gulp.task("inject:starttag", () => { + gulp.src(["src/index.html"]) + .pipe(inject(gulp.src(["src/**/*.js", "src/**/*.css"], { read: false }), { starttag: "" })) + .pipe(gulp.dest("build")); +}); + +gulp.task("inject:name", () => { + gulp.src(["src/index.html"]) + .pipe(inject(gulp.src(["src/**/*.js", "src/**/*.css"], { read: false }), { name: "head" })) + .pipe(gulp.dest("build")); +}); + +gulp.task("inject:transform", () => { + gulp.src(["files.json"]) + .pipe(inject(gulp.src(["src/**/*.js", "src/**/*.css", "src/**/*.html"], { read: false }), { + starttag: "\"{{ext}}\": [", + endtag: "]", + transform: (filepath, file, i, length) => { + return " \"" + filepath + "\"" + (i + 1 < length ? "," : ""); + } + })) + .pipe(gulp.dest("build")); +}); diff --git a/gulp-inject/gulp-inject.d.ts b/gulp-inject/gulp-inject.d.ts new file mode 100644 index 000000000..42f5fb348 --- /dev/null +++ b/gulp-inject/gulp-inject.d.ts @@ -0,0 +1,36 @@ +// Type definitions for gulp-inject +// Project: https://github.com/klei/gulp-inject +// Definitions by: Keita Kagurazaka +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +/// +/// + +declare module "gulp-inject" { + + import File = require("vinyl"); + + interface ITagFunction { + (targetExt: string, sourceExt: string): string; + } + + interface ITransformFunction { + (filepath: string, file?: File, index?: number, length?: number, targetFile?: File): string; + } + + interface IOptions { + ignorePath?: string | string[]; + relative?: boolean; + addPrefix?: string; + addRootSlash?: boolean; + name?: string; + starttag?: string | ITagFunction; + endtag?: string | ITagFunction; + transform?: ITransformFunction; + selfClosingTag?: boolean; + } + + function inject(sources: NodeJS.ReadableStream, options?: IOptions): NodeJS.ReadWriteStream; + + export = inject; +}