UNPKG

lynx-framework

Version:

lynx is a NodeJS framework for Web Development, based on decorators and the async/await support.

60 lines (52 loc) 2.02 kB
var gulp = require("gulp"); var fs = require("fs"); var del = require("del"); var ts = require("gulp-typescript"); var merge = require("merge2"); const jsdoc = require('gulp-jsdoc3'); var sourcemaps = require('gulp-sourcemaps'); var path = require('path'); var config = JSON.parse(fs.readFileSync(__dirname + "/tsconfig.json")); gulp.task("default", function() { console.log("Main commands:"); console.log("build build the lynx library"); console.log("\n"); console.log("Other commands:"); console.log( "compile compile all the typescript files to the dist folder" ); console.log( "copy copy all the files (!.ts) from the source folder to the dist folder" ); console.log("clean delete the dist folder"); }); gulp.task("copy", function() { return gulp .src(["lynx/**", "!lynx/**/*.ts"]) .pipe(gulp.dest(config.compilerOptions.outDir)); }); gulp.task("clean", function() { return del(config.compilerOptions.outDir); }); gulp.task("compile", function() { var tsProject = ts.createProject(__dirname + "/tsconfig.json"); var tsResult = tsProject.src().pipe(sourcemaps.init()).pipe(tsProject()); return merge([ tsResult.js.pipe(gulp.dest(config.compilerOptions.outDir)), tsResult.dts.pipe(gulp.dest(config.compilerOptions.outDir)), tsResult.js.pipe(sourcemaps.write({ includeContent: false, sourceRoot: function (file) { return path.relative(path.dirname(file.path), file.base); } })) ]); }); gulp.task('doc', function (cb) { const config = require(__dirname + '/jsdoc.json'); config.opts.destination = __dirname + config.opts.destination; console.log(__dirname + '/lynx/**/*.ts'); gulp.src([__dirname + '/README.md', __dirname + '/lynx/**/*.ts'], { read: false }) .pipe(jsdoc(config, cb)); }); gulp.task("build", gulp.series("clean", gulp.parallel("copy", "compile")));