From c2a9eb74ce15ecf5d2808e5090eef6164e867943 Mon Sep 17 00:00:00 2001 From: Tanguy Krotoff Date: Mon, 6 Jul 2015 14:17:46 +0200 Subject: [PATCH] Add definitions for gulp-rev-replace (https://github.com/jamesknelson/gulp-rev-replace) --- gulp-rev-replace/gulp-rev-replace-tests.ts | 63 ++++++++++++++++++++++ gulp-rev-replace/gulp-rev-replace.d.ts | 21 ++++++++ 2 files changed, 84 insertions(+) create mode 100644 gulp-rev-replace/gulp-rev-replace-tests.ts create mode 100644 gulp-rev-replace/gulp-rev-replace.d.ts diff --git a/gulp-rev-replace/gulp-rev-replace-tests.ts b/gulp-rev-replace/gulp-rev-replace-tests.ts new file mode 100644 index 000000000..57515c9ac --- /dev/null +++ b/gulp-rev-replace/gulp-rev-replace-tests.ts @@ -0,0 +1,63 @@ +/// +/// +/// +/// + +import gulp = require('gulp'); +import revReplace = require('gulp-rev-replace'); +import rev = require('gulp-rev'); +import useref = require('gulp-useref'); + +gulp.task("index", () => { + var userefAssets = useref.assets(); + + return gulp.src("src/index.html") + .pipe(userefAssets) // Concatenate with gulp-useref + .pipe(rev()) // Rename the concatenated files + .pipe(userefAssets.restore()) + .pipe(useref()) + .pipe(revReplace()) // Substitute in new filenames + .pipe(gulp.dest('public')); +}); + + +var opt = { + srcFolder: 'src', + distFolder: 'dist' +} + +gulp.task("revision", ["dist:css", "dist:js"], () => + gulp.src(["dist/**/*.css", "dist/**/*.js"]) + .pipe(rev()) + .pipe(gulp.dest(opt.distFolder)) + .pipe(rev.manifest()) + .pipe(gulp.dest(opt.distFolder)) +); + +gulp.task("revreplace", ["revision"], () => { + var manifest = gulp.src("./" + opt.distFolder + "/rev-manifest.json"); + + return gulp.src(opt.srcFolder + "/index.html") + .pipe(revReplace({manifest: manifest})) + .pipe(gulp.dest(opt.distFolder)); +}); + + +function replaceJsIfMap(filename: string): string { + if (filename.indexOf('.map') > -1) { + return filename.replace('js/', ''); + } + return filename; +} + +gulp.task("revreplace", ["revision"], () => { + var manifest = gulp.src("./" + opt.distFolder + "/rev-manifest.json"); + + return gulp.src(opt.distFolder + '**/*.js') + .pipe(revReplace({ + manifest: manifest, + modifyUnreved: replaceJsIfMap, + modifyReved: replaceJsIfMap + })) + .pipe(gulp.dest(opt.distFolder)); +}); diff --git a/gulp-rev-replace/gulp-rev-replace.d.ts b/gulp-rev-replace/gulp-rev-replace.d.ts new file mode 100644 index 000000000..3e683d183 --- /dev/null +++ b/gulp-rev-replace/gulp-rev-replace.d.ts @@ -0,0 +1,21 @@ +// Type definitions for gulp-rev-replace v0.2.1 +// Project: https://github.com/jamesknelson/gulp-rev-replace +// Definitions by: Tanguy Krotoff +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +/// + +declare module 'gulp-rev-replace' { + interface IOptions { + canonicalUris?: boolean; + replaceInExtensions?: Array; + prefix?: string; + manifest?: NodeJS.ReadWriteStream; + modifyUnreved?: Function; + modifyReved?: Function; + } + + function revReplace(options?: IOptions): NodeJS.ReadWriteStream; + + export = revReplace; +}