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;
+}