diff --git a/demo/index.html b/demo/index.html index 4501d518..cf920d39 100644 --- a/demo/index.html +++ b/demo/index.html @@ -10,7 +10,6 @@ - diff --git a/gulpfile.js b/gulpfile.js index cf001da3..7c5ca116 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -20,6 +20,7 @@ const util = require('gulp-util'); let buildDir = process.env.BUILD_DIR || 'build'; let tsProject = ts.createProject('tsconfig.json'); let tsProjectSearchAddon = ts.createProject('./src/addons/search/tsconfig.json'); +let tsProjectZmodemAddon = ts.createProject('./src/addons/zmodem/tsconfig.json'); let srcDir = tsProject.config.compilerOptions.rootDir; let outDir = tsProject.config.compilerOptions.outDir; @@ -49,13 +50,17 @@ gulp.task('tsc', function () { let tsResultSearchAddon = tsProjectSearchAddon.src().pipe(sourcemaps.init()).pipe(tsProjectSearchAddon()); let tscSearchAddon = tsResultSearchAddon.js.pipe(sourcemaps.write('.', {includeContent: false, sourceRoot: ''})).pipe(gulp.dest(`${outDir}/addons/search`)); + fs.emptyDirSync(`${outDir}/addons/zmodem`); + let tsResultZmodemAddon = tsProjectZmodemAddon.src().pipe(sourcemaps.init()).pipe(tsProjectZmodemAddon()); + let tscZmodemAddon = tsResultZmodemAddon.js.pipe(sourcemaps.write('.', {includeContent: false, sourceRoot: ''})).pipe(gulp.dest(`${outDir}/addons/zmodem`)); + // Copy all addons from ${srcDir}/ to ${outDir}/ - let copyAddons = gulp.src([`${srcDir}/addons/**/*`, `!${srcDir}/addons/search`, `!${srcDir}/addons/search/**`]).pipe(gulp.dest(`${outDir}/addons`)); + let copyAddons = gulp.src([`${srcDir}/addons/**/*`, `!${srcDir}/addons/search`, `!${srcDir}/addons/search/**`, `!${srcDir}/addons/zmodem`, `!${srcDir}/addons/zmodem/**`]).pipe(gulp.dest(`${outDir}/addons`)); // Copy stylesheets from ${srcDir}/ to ${outDir}/ let copyStylesheets = gulp.src(`${srcDir}/**/*.css`).pipe(gulp.dest(outDir)); - return merge(tsc, tscSearchAddon, copyAddons, copyStylesheets); + return merge(tsc, tscSearchAddon, tscZmodemAddon, copyAddons, copyStylesheets); }); /** @@ -105,16 +110,35 @@ gulp.task('browserify-addons', ['tsc'], function() { .pipe(sourcemaps.write('./')) .pipe(gulp.dest(buildDir)); + let zmodemOptions = { + basedir: `${buildDir}/addons/zmodem`, + debug: true, + entries: [`${outDir}/addons/zmodem/zmodem.js`], + cache: {}, + packageCache: {} + }; + let zmodemBundle = browserify(zmodemOptions) + .external(path.join(outDir, 'Terminal.js')) + .bundle() + .pipe(source('./addons/zmodem/zmodem.js')) + .pipe(buffer()) + .pipe(sourcemaps.init({loadMaps: true, sourceRoot: ''})) + .pipe(sourcemaps.write('./')) + .pipe(gulp.dest(buildDir)); + // Copy all add-ons from outDir to buildDir let copyAddons = gulp.src([ // Copy JS addons `${outDir}/addons/**/*`, + // Exclude TS addons from copy as they are being built via browserify `!${outDir}/addons/search`, - `!${outDir}/addons/search/**` + `!${outDir}/addons/search/**`, + `!${outDir}/addons/zmodem`, + `!${outDir}/addons/zmodem/**`, ]).pipe(gulp.dest(`${buildDir}/addons`)); - return merge(searchBundle, copyAddons); + return merge(searchBundle, zmodemBundle, copyAddons); }); gulp.task('instrument-test', function () { diff --git a/src/addons/zmodem/tsconfig.json b/src/addons/zmodem/tsconfig.json new file mode 100644 index 00000000..8c31bb37 --- /dev/null +++ b/src/addons/zmodem/tsconfig.json @@ -0,0 +1,10 @@ +{ + "compilerOptions": { + "module": "commonjs", + "target": "es6", + "rootDir": ".", + "outDir": "../../../lib/addons/zmodem/", + "sourceMap": true, + "removeComments": true + } +} diff --git a/src/addons/zmodem/zmodem.js b/src/addons/zmodem/zmodem.ts similarity index 94% rename from src/addons/zmodem/zmodem.js rename to src/addons/zmodem/zmodem.ts index 1bab2976..be0b3ed8 100644 --- a/src/addons/zmodem/zmodem.js +++ b/src/addons/zmodem/zmodem.ts @@ -1,3 +1,11 @@ +import { Zmodem } from '../../../node_modules/zmodem.js/dist/zmodem.js'; + +declare var exports: any; +declare var module: any; +declare var define: any; +declare var require: any; +declare var window: any; + /** * * Allow xterm.js to handle ZMODEM uploads and downloads.