|
@@ -16,7 +16,6 @@ var merge2 = require("merge2");
|
|
var concat = require("gulp-concat");
|
|
var concat = require("gulp-concat");
|
|
var rename = require("gulp-rename");
|
|
var rename = require("gulp-rename");
|
|
var cleants = require("gulp-clean-ts-extends");
|
|
var cleants = require("gulp-clean-ts-extends");
|
|
-var runSequence = require("run-sequence");
|
|
|
|
var replace = require("gulp-replace");
|
|
var replace = require("gulp-replace");
|
|
var uncommentShader = require("./gulp-removeShaderComments");
|
|
var uncommentShader = require("./gulp-removeShaderComments");
|
|
var expect = require("gulp-expect-file");
|
|
var expect = require("gulp-expect-file");
|
|
@@ -181,7 +180,7 @@ gulp.task("includeShaders", function (cb) {
|
|
cb();
|
|
cb();
|
|
});
|
|
});
|
|
|
|
|
|
-gulp.task("shaders", ["includeShaders"], function (cb) {
|
|
|
|
|
|
+gulp.task("shaders", gulp.series("includeShaders", function (cb) {
|
|
var filesToProcess = determineFilesToProcess("shaders");
|
|
var filesToProcess = determineFilesToProcess("shaders");
|
|
shadersStream = gulp.src(filesToProcess).
|
|
shadersStream = gulp.src(filesToProcess).
|
|
pipe(expect.real({ errorOnFailure: true }, filesToProcess)).
|
|
pipe(expect.real({ errorOnFailure: true }, filesToProcess)).
|
|
@@ -190,7 +189,7 @@ gulp.task("shaders", ["includeShaders"], function (cb) {
|
|
variableName: "BABYLON.Effect.ShadersStore", asMap: true, namingCallback: shadersName
|
|
variableName: "BABYLON.Effect.ShadersStore", asMap: true, namingCallback: shadersName
|
|
}));
|
|
}));
|
|
cb();
|
|
cb();
|
|
-});
|
|
|
|
|
|
+}));
|
|
|
|
|
|
gulp.task("workers", function (cb) {
|
|
gulp.task("workers", function (cb) {
|
|
workersStream = config.workers.map(function (workerDef) {
|
|
workersStream = config.workers.map(function (workerDef) {
|
|
@@ -207,7 +206,7 @@ gulp.task("workers", function (cb) {
|
|
/**
|
|
/**
|
|
* Build tasks to concat minify uflify optimise the BJS js in different flavor (workers...).
|
|
* Build tasks to concat minify uflify optimise the BJS js in different flavor (workers...).
|
|
*/
|
|
*/
|
|
-gulp.task("buildWorker", ["workers", "shaders"], function () {
|
|
|
|
|
|
+gulp.task("buildWorker", gulp.series("workers", "shaders", function () {
|
|
var filesToProcess = determineFilesToProcess("files");
|
|
var filesToProcess = determineFilesToProcess("files");
|
|
return merge2(
|
|
return merge2(
|
|
gulp.src(filesToProcess).
|
|
gulp.src(filesToProcess).
|
|
@@ -227,18 +226,19 @@ gulp.task("buildWorker", ["workers", "shaders"], function () {
|
|
.pipe(uglify())
|
|
.pipe(uglify())
|
|
.pipe(optimisejs())
|
|
.pipe(optimisejs())
|
|
.pipe(gulp.dest(config.build.outputDirectory));
|
|
.pipe(gulp.dest(config.build.outputDirectory));
|
|
-});
|
|
|
|
|
|
+}));
|
|
|
|
|
|
-gulp.task("build", ["shaders"], function () {
|
|
|
|
|
|
+gulp.task("build", gulp.series("shaders", function build() {
|
|
var filesToProcess = determineFilesToProcess("files");
|
|
var filesToProcess = determineFilesToProcess("files");
|
|
var directFilesToProcess = determineFilesToProcess("directFiles");
|
|
var directFilesToProcess = determineFilesToProcess("directFiles");
|
|
- let mergedStreams = merge2(
|
|
|
|
- gulp.src(filesToProcess).
|
|
|
|
- pipe(expect.real({ errorOnFailure: true }, filesToProcess)),
|
|
|
|
|
|
+ let merged = [gulp.src(filesToProcess).
|
|
|
|
+ pipe(expect.real({ errorOnFailure: true }, filesToProcess)),
|
|
shadersStream,
|
|
shadersStream,
|
|
- includeShadersStream,
|
|
|
|
- gulp.src(directFilesToProcess)
|
|
|
|
- )
|
|
|
|
|
|
+ includeShadersStream];
|
|
|
|
+ if (directFilesToProcess.length) {
|
|
|
|
+ merged.push(gulp.src(directFilesToProcess));
|
|
|
|
+ }
|
|
|
|
+ let mergedStreams = merge2(merged);
|
|
return merge2(
|
|
return merge2(
|
|
mergedStreams
|
|
mergedStreams
|
|
.pipe(concat(config.build.noModuleFilename))
|
|
.pipe(concat(config.build.noModuleFilename))
|
|
@@ -264,7 +264,7 @@ gulp.task("build", ["shaders"], function () {
|
|
.pipe(addES6Exports("BABYLON"))
|
|
.pipe(addES6Exports("BABYLON"))
|
|
.pipe(gulp.dest(config.build.outputDirectory))
|
|
.pipe(gulp.dest(config.build.outputDirectory))
|
|
);
|
|
);
|
|
-});
|
|
|
|
|
|
+}));
|
|
|
|
|
|
/*
|
|
/*
|
|
* Compiles all typescript files and creating a js and a declaration file.
|
|
* Compiles all typescript files and creating a js and a declaration file.
|
|
@@ -357,36 +357,64 @@ var buildExternalLibraries = function (settings) {
|
|
}
|
|
}
|
|
|
|
|
|
var buildExternalLibrary = function (library, settings, watch) {
|
|
var buildExternalLibrary = function (library, settings, watch) {
|
|
- var tsProcess = gulp.src(library.files, { base: settings.build.srcOutputDirectory })
|
|
|
|
- .pipe(sourcemaps.init())
|
|
|
|
- .pipe(typescript(externalTsConfig));
|
|
|
|
-
|
|
|
|
- var includeShader = gulp.src(library.shadersIncludeFiles || [], { base: settings.build.srcOutputDirectory })
|
|
|
|
- .pipe(uncommentShader())
|
|
|
|
- .pipe(appendSrcToVariable("BABYLON.Effect.IncludesShadersStore", includeShadersName, library.output + ".include.fx"))
|
|
|
|
- .pipe(gulp.dest(settings.build.srcOutputDirectory));
|
|
|
|
-
|
|
|
|
- var shader = gulp.src(library.shaderFiles || [], { base: settings.build.srcOutputDirectory })
|
|
|
|
- .pipe(uncommentShader())
|
|
|
|
- .pipe(appendSrcToVariable("BABYLON.Effect.ShadersStore", shadersName, library.output + ".fx"))
|
|
|
|
- .pipe(gulp.dest(settings.build.srcOutputDirectory));
|
|
|
|
-
|
|
|
|
- var dev = tsProcess.js
|
|
|
|
- .pipe(sourcemaps.write("./", {
|
|
|
|
- includeContent: false,
|
|
|
|
- sourceRoot: (filePath) => {
|
|
|
|
- return "";
|
|
|
|
- }
|
|
|
|
- })).pipe(gulp.dest(settings.build.srcOutputDirectory));
|
|
|
|
|
|
+ var tsProcess;
|
|
|
|
+ if (library.files && library.files.length) {
|
|
|
|
+ tsProcess = gulp.src(library.files, { base: settings.build.srcOutputDirectory })
|
|
|
|
+ .pipe(sourcemaps.init())
|
|
|
|
+ .pipe(typescript(externalTsConfig));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ let tasks = [];
|
|
|
|
+
|
|
|
|
+ let shaderTask;
|
|
|
|
+
|
|
|
|
+ let shadersIndlueTask;
|
|
|
|
+
|
|
|
|
+ if (library.shadersIncludeFiles && library.shadersIncludeFiles.length) {
|
|
|
|
+ shadersIndlueTask = gulp.src(library.shadersIncludeFiles, { base: settings.build.srcOutputDirectory })
|
|
|
|
+ .pipe(uncommentShader())
|
|
|
|
+ .pipe(appendSrcToVariable("BABYLON.Effect.IncludesShadersStore", includeShadersName, library.output + ".include.fx"))
|
|
|
|
+ .pipe(gulp.dest(settings.build.srcOutputDirectory));
|
|
|
|
+ tasks.push(shadersIndlueTask);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (library.shaderFiles && library.shaderFiles.length) {
|
|
|
|
+ shaderTask = gulp.src(library.shaderFiles, { base: settings.build.srcOutputDirectory })
|
|
|
|
+ .pipe(uncommentShader())
|
|
|
|
+ .pipe(appendSrcToVariable("BABYLON.Effect.ShadersStore", shadersName, library.output + ".fx"))
|
|
|
|
+ .pipe(gulp.dest(settings.build.srcOutputDirectory));
|
|
|
|
+ tasks.push(shaderTask);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ var dev;
|
|
|
|
+
|
|
|
|
+ if (tsProcess) {
|
|
|
|
+ dev = tsProcess.js
|
|
|
|
+ .pipe(sourcemaps.write("./", {
|
|
|
|
+ includeContent: false,
|
|
|
|
+ sourceRoot: (filePath) => {
|
|
|
|
+ return "";
|
|
|
|
+ }
|
|
|
|
+ })).pipe(gulp.dest(settings.build.srcOutputDirectory));
|
|
|
|
+
|
|
|
|
+ tasks.push(dev);
|
|
|
|
+ }
|
|
|
|
|
|
var outputDirectory = config.build.outputDirectory + settings.build.distOutputDirectory;
|
|
var outputDirectory = config.build.outputDirectory + settings.build.distOutputDirectory;
|
|
- var css = gulp.src(library.sassFiles || [])
|
|
|
|
- .pipe(sass().on("error", sass.logError))
|
|
|
|
- .pipe(concat(library.output.replace(".js", ".css")))
|
|
|
|
- .pipe(gulp.dest(outputDirectory));
|
|
|
|
|
|
+
|
|
|
|
+ let cssTask;
|
|
|
|
+
|
|
|
|
+ if (library.sassFiles && library.sassFiles.length) {
|
|
|
|
+ cssTask = gulp.src(library.sassFiles)
|
|
|
|
+ .pipe(sass().on("error", sass.logError))
|
|
|
|
+ .pipe(concat(library.output.replace(".js", ".css")))
|
|
|
|
+ .pipe(gulp.dest(outputDirectory));
|
|
|
|
+ tasks.push(cssTask);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
|
|
if (watch) {
|
|
if (watch) {
|
|
- return merge2([shader, includeShader, dev, css]);
|
|
|
|
|
|
+ return merge2(tasks);
|
|
}
|
|
}
|
|
else {
|
|
else {
|
|
/*if (library.bundle) {
|
|
/*if (library.bundle) {
|
|
@@ -405,48 +433,88 @@ var buildExternalLibrary = function (library, settings, watch) {
|
|
.pipe(optimisejs())
|
|
.pipe(optimisejs())
|
|
.pipe(gulp.dest(outputDirectory));
|
|
.pipe(gulp.dest(outputDirectory));
|
|
} else {*/
|
|
} else {*/
|
|
- var code = merge2([tsProcess.js, shader, includeShader])
|
|
|
|
- .pipe(concat(library.output))
|
|
|
|
|
|
+ let currentTasks = [];
|
|
|
|
+ if (tsProcess) {
|
|
|
|
+ currentTasks.push(tsProcess.js);
|
|
|
|
+ }
|
|
|
|
+ if (shaderTask) {
|
|
|
|
+ currentTasks.push(shaderTask);
|
|
|
|
+ }
|
|
|
|
+ if (shadersIndlueTask) {
|
|
|
|
+ currentTasks.push(shadersIndlueTask);
|
|
|
|
+ }
|
|
|
|
+ var code;
|
|
|
|
+
|
|
|
|
+ if (currentTasks.length) {
|
|
|
|
+ code = merge2(currentTasks)
|
|
|
|
+ .pipe(concat(library.output));
|
|
|
|
+ }
|
|
|
|
|
|
- if (library.buildAsModule) {
|
|
|
|
|
|
+ if (library.buildAsModule && code) {
|
|
code = code.pipe(replace(extendsSearchRegex, ""))
|
|
code = code.pipe(replace(extendsSearchRegex, ""))
|
|
.pipe(replace(decorateSearchRegex, ""))
|
|
.pipe(replace(decorateSearchRegex, ""))
|
|
.pipe(addDecorateAndExtends())
|
|
.pipe(addDecorateAndExtends())
|
|
.pipe(addModuleExports(library.moduleDeclaration, { subModule: true, extendsRoot: library.extendsRoot }))
|
|
.pipe(addModuleExports(library.moduleDeclaration, { subModule: true, extendsRoot: library.extendsRoot }))
|
|
}
|
|
}
|
|
|
|
|
|
- code = code.pipe(gulp.dest(outputDirectory))
|
|
|
|
- .pipe(cleants())
|
|
|
|
- .pipe(rename({ extname: ".min.js" }))
|
|
|
|
- .pipe(uglify())
|
|
|
|
- .pipe(optimisejs())
|
|
|
|
- .pipe(gulp.dest(outputDirectory));
|
|
|
|
- /*}*/
|
|
|
|
|
|
+ if (code) {
|
|
|
|
+
|
|
|
|
+ code = code.pipe(gulp.dest(outputDirectory))
|
|
|
|
+ .pipe(cleants())
|
|
|
|
+ .pipe(rename({ extname: ".min.js" }))
|
|
|
|
+ .pipe(uglify())
|
|
|
|
+ .pipe(optimisejs())
|
|
|
|
+ .pipe(gulp.dest(outputDirectory));
|
|
|
|
+ /*}*/
|
|
|
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
+ var dts;
|
|
|
|
|
|
- var dts = tsProcess.dts
|
|
|
|
- .pipe(concat(library.output))
|
|
|
|
- .pipe(replace(referenceSearchRegex, ""))
|
|
|
|
- .pipe(rename({ extname: ".d.ts" }))
|
|
|
|
- .pipe(gulp.dest(outputDirectory));
|
|
|
|
|
|
+ if (tsProcess) {
|
|
|
|
+ dts = tsProcess.dts
|
|
|
|
+ .pipe(concat(library.output))
|
|
|
|
+ .pipe(replace(referenceSearchRegex, ""))
|
|
|
|
+ .pipe(rename({ extname: ".d.ts" }))
|
|
|
|
+ .pipe(gulp.dest(outputDirectory));
|
|
|
|
+ }
|
|
|
|
|
|
var waitAll;
|
|
var waitAll;
|
|
|
|
+ let waitAllTasks = [];
|
|
|
|
+ if (cssTask) {
|
|
|
|
+ waitAllTasks.push(cssTask);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (dev) {
|
|
|
|
+ waitAllTasks.push(dev);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (code) {
|
|
|
|
+ waitAllTasks.push(code);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (dts) {
|
|
|
|
+ waitAllTasks.push(dts);
|
|
|
|
+ }
|
|
|
|
|
|
- if (library.buildAsModule) {
|
|
|
|
|
|
+ if (library.buildAsModule && tsProcess) {
|
|
var dts2 = tsProcess.dts
|
|
var dts2 = tsProcess.dts
|
|
.pipe(concat(library.output))
|
|
.pipe(concat(library.output))
|
|
.pipe(replace(referenceSearchRegex, ""))
|
|
.pipe(replace(referenceSearchRegex, ""))
|
|
.pipe(addDtsExport(library.moduleDeclaration, library.moduleName, true, library.extendsRoot, config.build.extraTypesDependencies))
|
|
.pipe(addDtsExport(library.moduleDeclaration, library.moduleName, true, library.extendsRoot, config.build.extraTypesDependencies))
|
|
.pipe(rename({ extname: ".module.d.ts" }))
|
|
.pipe(rename({ extname: ".module.d.ts" }))
|
|
.pipe(gulp.dest(outputDirectory));
|
|
.pipe(gulp.dest(outputDirectory));
|
|
- waitAll = merge2([dev, code, css, dts, dts2]);
|
|
|
|
- } else {
|
|
|
|
- waitAll = merge2([dev, code, css, dts]);
|
|
|
|
|
|
+ waitAllTasks.push(dts2);
|
|
|
|
+ }
|
|
|
|
+ if (waitAllTasks.length) {
|
|
|
|
+ waitAll = merge2(waitAllTasks);
|
|
}
|
|
}
|
|
|
|
|
|
if (library.webpack) {
|
|
if (library.webpack) {
|
|
- let sequence = [waitAll];
|
|
|
|
|
|
+ let sequence = [];
|
|
|
|
+ if (waitAll) {
|
|
|
|
+ sequence.push(waitAll);
|
|
|
|
+ }
|
|
|
|
|
|
if (settings.build.outputs) {
|
|
if (settings.build.outputs) {
|
|
|
|
|
|
@@ -477,10 +545,10 @@ var buildExternalLibrary = function (library, settings, watch) {
|
|
fs.readFile(fileLocation, function (err, data) {
|
|
fs.readFile(fileLocation, function (err, data) {
|
|
if (err) throw err;
|
|
if (err) throw err;
|
|
data = (settings.build.dtsBundle.prependText || "") + '\n' + data.toString();
|
|
data = (settings.build.dtsBundle.prependText || "") + '\n' + data.toString();
|
|
- fs.writeFile(fileLocation, data);
|
|
|
|
|
|
+ fs.writeFileSync(fileLocation, data);
|
|
if (settings.build.processDeclaration) {
|
|
if (settings.build.processDeclaration) {
|
|
var newData = processDeclaration(data, settings.build.processDeclaration);
|
|
var newData = processDeclaration(data, settings.build.processDeclaration);
|
|
- fs.writeFile(fileLocation.replace('.module', ''), newData);
|
|
|
|
|
|
+ fs.writeFileSync(fileLocation.replace('.module', ''), newData);
|
|
}
|
|
}
|
|
});
|
|
});
|
|
});
|
|
});
|
|
@@ -556,9 +624,9 @@ var buildExternalLibrary = function (library, settings, watch) {
|
|
fs.readFile(fileLocation, function (err, data) {
|
|
fs.readFile(fileLocation, function (err, data) {
|
|
if (err) throw err;
|
|
if (err) throw err;
|
|
var newData = processDeclaration(data, settings.build.processDeclaration);
|
|
var newData = processDeclaration(data, settings.build.processDeclaration);
|
|
- fs.writeFile(fileLocation.replace('.module', ''), newData);
|
|
|
|
|
|
+ fs.writeFileSync(fileLocation.replace('.module', ''), newData);
|
|
//legacy module support
|
|
//legacy module support
|
|
- fs.writeFile(fileLocation, data + "\n" + newData);
|
|
|
|
|
|
+ fs.writeFileSync(fileLocation, data + "\n" + newData);
|
|
});
|
|
});
|
|
}
|
|
}
|
|
});
|
|
});
|
|
@@ -581,28 +649,17 @@ var buildExternalLibrary = function (library, settings, watch) {
|
|
return merge2(sequence);
|
|
return merge2(sequence);
|
|
}
|
|
}
|
|
else {
|
|
else {
|
|
- return waitAll;
|
|
|
|
|
|
+ return waitAll || Promise.resolve();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
-/**
|
|
|
|
- * The default task, concat and min the main BJS files.
|
|
|
|
- */
|
|
|
|
-gulp.task("default", function (cb) {
|
|
|
|
- runSequence("typescript-all", "intellisense", "typedoc-all", "tests-unit", "tests-validation-virtualscreen", "tests-validation-browserstack", cb);
|
|
|
|
-});
|
|
|
|
-
|
|
|
|
-gulp.task("mainBuild", function (cb) {
|
|
|
|
- runSequence("buildWorker", "build", cb);
|
|
|
|
-});
|
|
|
|
|
|
+gulp.task("mainBuild", gulp.series("buildWorker", "build"));
|
|
|
|
|
|
/**
|
|
/**
|
|
* Build the releasable files.
|
|
* Build the releasable files.
|
|
*/
|
|
*/
|
|
-gulp.task("typescript", function (cb) {
|
|
|
|
- runSequence("typescript-compile", "mainBuild", cb);
|
|
|
|
-});
|
|
|
|
|
|
+gulp.task("typescript", gulp.series("typescript-compile", "mainBuild"));
|
|
|
|
|
|
/**
|
|
/**
|
|
* Dynamic module creation.
|
|
* Dynamic module creation.
|
|
@@ -613,22 +670,12 @@ config.modules.map(function (module) {
|
|
});
|
|
});
|
|
});
|
|
});
|
|
|
|
|
|
-gulp.task("typescript-libraries", config.modules, function () {
|
|
|
|
-});
|
|
|
|
|
|
+gulp.task("typescript-libraries", gulp.series(config.modules));
|
|
|
|
|
|
/**
|
|
/**
|
|
* Custom build with full path file control; used by profile.html
|
|
* Custom build with full path file control; used by profile.html
|
|
*/
|
|
*/
|
|
-gulp.task("build-custom", function (cb) {
|
|
|
|
- runSequence("typescript-compile", "build", cb);
|
|
|
|
-});
|
|
|
|
-
|
|
|
|
-/**
|
|
|
|
- * Do it all.
|
|
|
|
- */
|
|
|
|
-gulp.task("typescript-all", function (cb) {
|
|
|
|
- runSequence("typescript", "typescript-libraries", "netlify-cleanup", cb);
|
|
|
|
-});
|
|
|
|
|
|
+gulp.task("build-custom", gulp.series("typescript-compile", "build"));
|
|
|
|
|
|
/**
|
|
/**
|
|
* Watch ts files from typescript .
|
|
* Watch ts files from typescript .
|
|
@@ -639,12 +686,13 @@ gulp.task("srcTscWatch", function () {
|
|
process.argv[3] = "-p";
|
|
process.argv[3] = "-p";
|
|
process.argv[4] = "../../src/tsconfig.json";
|
|
process.argv[4] = "../../src/tsconfig.json";
|
|
require("./node_modules/typescript/lib/tsc.js");
|
|
require("./node_modules/typescript/lib/tsc.js");
|
|
|
|
+ return Promise.resolve();
|
|
});
|
|
});
|
|
|
|
|
|
/**
|
|
/**
|
|
* Watch ts files and fire repective tasks.
|
|
* Watch ts files and fire repective tasks.
|
|
*/
|
|
*/
|
|
-gulp.task("watch", ["srcTscWatch"], function () {
|
|
|
|
|
|
+gulp.task("watch", gulp.series("srcTscWatch", function startWatch() {
|
|
var interval = 1000;
|
|
var interval = 1000;
|
|
|
|
|
|
var tasks = [];
|
|
var tasks = [];
|
|
@@ -682,11 +730,13 @@ gulp.task("watch", ["srcTscWatch"], function () {
|
|
});
|
|
});
|
|
});
|
|
});
|
|
|
|
|
|
- return tasks;
|
|
|
|
-});
|
|
|
|
|
|
+ console.log(tasks.length);
|
|
|
|
+
|
|
|
|
+ return Promise.resolve();
|
|
|
|
+}));
|
|
|
|
|
|
gulp.task("intellisense", function () {
|
|
gulp.task("intellisense", function () {
|
|
- gulp.src(config.build.intellisenseSources)
|
|
|
|
|
|
+ return gulp.src(config.build.intellisenseSources)
|
|
.pipe(concat(config.build.intellisenseFile))
|
|
.pipe(concat(config.build.intellisenseFile))
|
|
.pipe(replace(/^\s+_.*?;/gm, ""))
|
|
.pipe(replace(/^\s+_.*?;/gm, ""))
|
|
.pipe(replace(/^\s+_[\S\s]*?}/gm, ""))
|
|
.pipe(replace(/^\s+_[\S\s]*?}/gm, ""))
|
|
@@ -700,7 +750,7 @@ gulp.task("intellisense", function () {
|
|
* Embedded local dev env management.
|
|
* Embedded local dev env management.
|
|
*/
|
|
*/
|
|
gulp.task("deployLocalDev", function () {
|
|
gulp.task("deployLocalDev", function () {
|
|
- gulp.src("../../localDev/template/**.*")
|
|
|
|
|
|
+ return gulp.src("../../localDev/template/**.*")
|
|
.pipe(gulp.dest("../../localDev/src/"));
|
|
.pipe(gulp.dest("../../localDev/src/"));
|
|
});
|
|
});
|
|
|
|
|
|
@@ -718,14 +768,13 @@ gulp.task("webserver", function () {
|
|
options.host = "0.0.0.0";
|
|
options.host = "0.0.0.0";
|
|
}
|
|
}
|
|
|
|
|
|
- gulp.src("../../.").pipe(webserver(options));
|
|
|
|
|
|
+ return gulp.src("../../.").pipe(webserver(options));
|
|
});
|
|
});
|
|
|
|
|
|
/**
|
|
/**
|
|
* Combine Webserver and Watch as long as vscode does not handle multi tasks.
|
|
* Combine Webserver and Watch as long as vscode does not handle multi tasks.
|
|
*/
|
|
*/
|
|
-gulp.task("run", ["watch", "webserver"], function () {
|
|
|
|
-});
|
|
|
|
|
|
+gulp.task("run", gulp.series("watch", "webserver"));
|
|
|
|
|
|
/**
|
|
/**
|
|
* Cleans map and js files from the src folder.
|
|
* Cleans map and js files from the src folder.
|
|
@@ -745,7 +794,7 @@ gulp.task("netlify-cleanup", function () {
|
|
], { force: true });
|
|
], { force: true });
|
|
}
|
|
}
|
|
else {
|
|
else {
|
|
- return true;
|
|
|
|
|
|
+ return Promise.resolve();
|
|
}
|
|
}
|
|
})
|
|
})
|
|
|
|
|
|
@@ -807,7 +856,7 @@ gulp.task('prepare-for-modules', /*["modules-compile"],*/ function () {
|
|
return merge2(tasks);
|
|
return merge2(tasks);
|
|
});
|
|
});
|
|
|
|
|
|
-gulp.task('prepare-dependency-tree', ["prepare-for-modules"], function () {
|
|
|
|
|
|
+gulp.task('prepare-dependency-tree', gulp.series("prepare-for-modules", function () {
|
|
let tasks = [];
|
|
let tasks = [];
|
|
|
|
|
|
// now calculate internal dependencies in the .ts files!
|
|
// now calculate internal dependencies in the .ts files!
|
|
@@ -820,11 +869,11 @@ gulp.task('prepare-dependency-tree', ["prepare-for-modules"], function () {
|
|
});
|
|
});
|
|
|
|
|
|
return merge2(tasks);
|
|
return merge2(tasks);
|
|
-});
|
|
|
|
|
|
+}));
|
|
|
|
|
|
// generate the modules directory, along with commonjs modules and es6 modules
|
|
// generate the modules directory, along with commonjs modules and es6 modules
|
|
// Note - the generated modules are UNMINIFIED! The user will choose whether they want to minify or not.
|
|
// Note - the generated modules are UNMINIFIED! The user will choose whether they want to minify or not.
|
|
-gulp.task("modules", ["prepare-dependency-tree"], function () {
|
|
|
|
|
|
+gulp.task("modules", gulp.series("prepare-dependency-tree", function () {
|
|
let tasks = [];
|
|
let tasks = [];
|
|
|
|
|
|
Object.keys(config.workloads)
|
|
Object.keys(config.workloads)
|
|
@@ -947,7 +996,7 @@ gulp.task("modules", ["prepare-dependency-tree"], function () {
|
|
|
|
|
|
// run da tasks man!
|
|
// run da tasks man!
|
|
return merge2(tasks);
|
|
return merge2(tasks);
|
|
-})
|
|
|
|
|
|
+}));
|
|
|
|
|
|
/**
|
|
/**
|
|
* Generate the TypeDoc JSON output in order to create code metadata.
|
|
* Generate the TypeDoc JSON output in order to create code metadata.
|
|
@@ -1004,17 +1053,13 @@ gulp.task("typedoc-generateValidationBaseline", function () {
|
|
* Validate the code comments and style case convention through typedoc and
|
|
* Validate the code comments and style case convention through typedoc and
|
|
* generate the new baseline.
|
|
* generate the new baseline.
|
|
*/
|
|
*/
|
|
-gulp.task("typedoc-all", function (cb) {
|
|
|
|
- runSequence("typedoc-generate", "typedoc-validate", "typedoc-generateValidationBaseline", cb);
|
|
|
|
-});
|
|
|
|
|
|
+gulp.task("typedoc-all", gulp.series("typedoc-generate", "typedoc-validate", "typedoc-generateValidationBaseline"));
|
|
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
* Validate compile the code and check the comments and style case convention through typedoc
|
|
* Validate compile the code and check the comments and style case convention through typedoc
|
|
*/
|
|
*/
|
|
-gulp.task("typedoc-check", function (cb) {
|
|
|
|
- runSequence("typescript-compile", "gui", "loaders", "serializers", "typedoc-generate", "typedoc-validate", cb);
|
|
|
|
-});
|
|
|
|
|
|
+gulp.task("typedoc-check", gulp.series("typescript-compile", "gui", "loaders", "serializers", "typedoc-generate", "typedoc-validate"));
|
|
|
|
|
|
/**
|
|
/**
|
|
* Launches the KARMA validation tests in chrome in order to debug them.
|
|
* Launches the KARMA validation tests in chrome in order to debug them.
|
|
@@ -1087,7 +1132,7 @@ gulp.task("tests-unit-transpile", function (done) {
|
|
* Launches the KARMA unit tests in phantomJS.
|
|
* Launches the KARMA unit tests in phantomJS.
|
|
* (Can only be launch on any branches.)
|
|
* (Can only be launch on any branches.)
|
|
*/
|
|
*/
|
|
-gulp.task("tests-unit-debug", ["tests-unit-transpile"], function (done) {
|
|
|
|
|
|
+gulp.task("tests-unit-debug", gulp.series("tests-unit-transpile", function (done) {
|
|
var kamaServerOptions = {
|
|
var kamaServerOptions = {
|
|
configFile: __dirname + "/../../tests/unit/karma.conf.js",
|
|
configFile: __dirname + "/../../tests/unit/karma.conf.js",
|
|
singleRun: false,
|
|
singleRun: false,
|
|
@@ -1096,9 +1141,9 @@ gulp.task("tests-unit-debug", ["tests-unit-transpile"], function (done) {
|
|
|
|
|
|
var server = new karmaServer(kamaServerOptions, done);
|
|
var server = new karmaServer(kamaServerOptions, done);
|
|
server.start();
|
|
server.start();
|
|
-});
|
|
|
|
|
|
+}));
|
|
|
|
|
|
-gulp.task("tests-babylon-unit", ["tests-unit-transpile"], function (done) {
|
|
|
|
|
|
+gulp.task("tests-babylon-unit", gulp.series("tests-unit-transpile", function (done) {
|
|
var kamaServerOptions = {
|
|
var kamaServerOptions = {
|
|
configFile: __dirname + "/../../tests/unit/karma.conf.js",
|
|
configFile: __dirname + "/../../tests/unit/karma.conf.js",
|
|
singleRun: true
|
|
singleRun: true
|
|
@@ -1106,15 +1151,7 @@ gulp.task("tests-babylon-unit", ["tests-unit-transpile"], function (done) {
|
|
|
|
|
|
var server = new karmaServer(kamaServerOptions, done);
|
|
var server = new karmaServer(kamaServerOptions, done);
|
|
server.start();
|
|
server.start();
|
|
-});
|
|
|
|
-
|
|
|
|
-/**
|
|
|
|
- * Launches the KARMA unit tests in phantomJS.
|
|
|
|
- * (Can only be launch on any branches.)
|
|
|
|
- */
|
|
|
|
-gulp.task("tests-unit", function (cb) {
|
|
|
|
- runSequence("tests-babylon-unit", "tests-viewer-unit", cb);
|
|
|
|
-});
|
|
|
|
|
|
+}));
|
|
|
|
|
|
var rmDir = function (dirPath) {
|
|
var rmDir = function (dirPath) {
|
|
try { var files = fs.readdirSync(dirPath); }
|
|
try { var files = fs.readdirSync(dirPath); }
|
|
@@ -1131,10 +1168,29 @@ var rmDir = function (dirPath) {
|
|
};
|
|
};
|
|
|
|
|
|
/**
|
|
/**
|
|
|
|
+ * Transpiles viewer typescript unit tests.
|
|
|
|
+ */
|
|
|
|
+gulp.task("tests-viewer-validation-transpile", function () {
|
|
|
|
+
|
|
|
|
+ let wpBuild = webpackStream(require('../../Viewer/webpack.gulp.config.js'), webpack);
|
|
|
|
+
|
|
|
|
+ // clean the built directory
|
|
|
|
+ rmDir("../../Viewer/tests/build/");
|
|
|
|
+
|
|
|
|
+ return wpBuild
|
|
|
|
+ .pipe(rename(function (path) {
|
|
|
|
+ if (path.extname === '.js') {
|
|
|
|
+ path.basename = "test";
|
|
|
|
+ }
|
|
|
|
+ }))
|
|
|
|
+ .pipe(gulp.dest("../../Viewer/tests/build/"));
|
|
|
|
+});
|
|
|
|
+
|
|
|
|
+/**
|
|
* Launches the viewer's KARMA validation tests in chrome in order to debug them.
|
|
* Launches the viewer's KARMA validation tests in chrome in order to debug them.
|
|
* (Can only be launch locally.)
|
|
* (Can only be launch locally.)
|
|
*/
|
|
*/
|
|
-gulp.task("tests-viewer-validation-karma", ["tests-viewer-validation-transpile"], function (done) {
|
|
|
|
|
|
+gulp.task("tests-viewer-validation-karma", gulp.series("tests-viewer-validation-transpile", function (done) {
|
|
var kamaServerOptions = {
|
|
var kamaServerOptions = {
|
|
configFile: __dirname + "/../../Viewer/tests/validation/karma.conf.js",
|
|
configFile: __dirname + "/../../Viewer/tests/validation/karma.conf.js",
|
|
singleRun: false
|
|
singleRun: false
|
|
@@ -1142,13 +1198,13 @@ gulp.task("tests-viewer-validation-karma", ["tests-viewer-validation-transpile"]
|
|
|
|
|
|
var server = new karmaServer(kamaServerOptions, done);
|
|
var server = new karmaServer(kamaServerOptions, done);
|
|
server.start();
|
|
server.start();
|
|
-});
|
|
|
|
|
|
+}));
|
|
|
|
|
|
/**
|
|
/**
|
|
* Launches the KARMA validation tests in ff or virtual screen ff on travis for a quick analysis during the build.
|
|
* Launches the KARMA validation tests in ff or virtual screen ff on travis for a quick analysis during the build.
|
|
* (Can only be launch on any branches.)
|
|
* (Can only be launch on any branches.)
|
|
*/
|
|
*/
|
|
-gulp.task("tests-viewer-validation-virtualscreen", ["tests-viewer-validation-transpile"], function (done) {
|
|
|
|
|
|
+gulp.task("tests-viewer-validation-virtualscreen", gulp.series("tests-viewer-validation-transpile", function (done) {
|
|
var kamaServerOptions = {
|
|
var kamaServerOptions = {
|
|
configFile: __dirname + "/../../Viewer/tests/validation/karma.conf.js",
|
|
configFile: __dirname + "/../../Viewer/tests/validation/karma.conf.js",
|
|
singleRun: true,
|
|
singleRun: true,
|
|
@@ -1157,13 +1213,13 @@ gulp.task("tests-viewer-validation-virtualscreen", ["tests-viewer-validation-tra
|
|
|
|
|
|
var server = new karmaServer(kamaServerOptions, done);
|
|
var server = new karmaServer(kamaServerOptions, done);
|
|
server.start();
|
|
server.start();
|
|
-});
|
|
|
|
|
|
+}));
|
|
|
|
|
|
/**
|
|
/**
|
|
* Launches the KARMA validation tests in browser stack for remote and cross devices validation tests.
|
|
* Launches the KARMA validation tests in browser stack for remote and cross devices validation tests.
|
|
* (Can only be launch from secure branches.)
|
|
* (Can only be launch from secure branches.)
|
|
*/
|
|
*/
|
|
-gulp.task("tests-viewer-validation-browserstack", ["tests-viewer-validation-transpile"], function (done) {
|
|
|
|
|
|
+gulp.task("tests-viewer-validation-browserstack", gulp.series("tests-viewer-validation-transpile", function (done) {
|
|
if (!process.env.BROWSER_STACK_USERNAME) {
|
|
if (!process.env.BROWSER_STACK_USERNAME) {
|
|
done();
|
|
done();
|
|
return;
|
|
return;
|
|
@@ -1176,32 +1232,12 @@ gulp.task("tests-viewer-validation-browserstack", ["tests-viewer-validation-tran
|
|
|
|
|
|
var server = new karmaServer(kamaServerOptions, done);
|
|
var server = new karmaServer(kamaServerOptions, done);
|
|
server.start();
|
|
server.start();
|
|
-});
|
|
|
|
-
|
|
|
|
|
|
+}));
|
|
|
|
|
|
/**
|
|
/**
|
|
* Transpiles viewer typescript unit tests.
|
|
* Transpiles viewer typescript unit tests.
|
|
*/
|
|
*/
|
|
-gulp.task("tests-viewer-validation-transpile", function (done) {
|
|
|
|
-
|
|
|
|
- let wpBuild = webpackStream(require('../../Viewer/webpack.gulp.config.js'), webpack);
|
|
|
|
-
|
|
|
|
- // clean the built directory
|
|
|
|
- rmDir("../../Viewer/tests/build/");
|
|
|
|
-
|
|
|
|
- return wpBuild
|
|
|
|
- .pipe(rename(function (path) {
|
|
|
|
- if (path.extname === '.js') {
|
|
|
|
- path.basename = "test";
|
|
|
|
- }
|
|
|
|
- }))
|
|
|
|
- .pipe(gulp.dest("../../Viewer/tests/build/"));
|
|
|
|
-});
|
|
|
|
-
|
|
|
|
-/**
|
|
|
|
- * Transpiles viewer typescript unit tests.
|
|
|
|
- */
|
|
|
|
-gulp.task("tests-viewer-transpile", function (done) {
|
|
|
|
|
|
+gulp.task("tests-viewer-transpile", function () {
|
|
|
|
|
|
let wpBuild = webpackStream(require('../../Viewer/tests/unit/webpack.config.js'), webpack);
|
|
let wpBuild = webpackStream(require('../../Viewer/tests/unit/webpack.config.js'), webpack);
|
|
|
|
|
|
@@ -1221,7 +1257,7 @@ gulp.task("tests-viewer-transpile", function (done) {
|
|
* Launches the KARMA unit tests in chrome.
|
|
* Launches the KARMA unit tests in chrome.
|
|
* (Can be launch on any branches.)
|
|
* (Can be launch on any branches.)
|
|
*/
|
|
*/
|
|
-gulp.task("tests-viewer-unit-debug", ["tests-viewer-transpile"], function (done) {
|
|
|
|
|
|
+gulp.task("tests-viewer-unit-debug", gulp.series("tests-viewer-transpile", function (done) {
|
|
var kamaServerOptions = {
|
|
var kamaServerOptions = {
|
|
configFile: __dirname + "/../../Viewer/tests/karma.conf.js",
|
|
configFile: __dirname + "/../../Viewer/tests/karma.conf.js",
|
|
singleRun: false,
|
|
singleRun: false,
|
|
@@ -1230,13 +1266,13 @@ gulp.task("tests-viewer-unit-debug", ["tests-viewer-transpile"], function (done)
|
|
|
|
|
|
var server = new karmaServer(kamaServerOptions, done);
|
|
var server = new karmaServer(kamaServerOptions, done);
|
|
server.start();
|
|
server.start();
|
|
-});
|
|
|
|
|
|
+}));
|
|
|
|
|
|
/**
|
|
/**
|
|
* Launches the KARMA unit tests in phantomJS.
|
|
* Launches the KARMA unit tests in phantomJS.
|
|
* (Can be launch on any branches.)
|
|
* (Can be launch on any branches.)
|
|
*/
|
|
*/
|
|
-gulp.task("tests-viewer-unit", ["tests-viewer-transpile"], function (done) {
|
|
|
|
|
|
+gulp.task("tests-viewer-unit", gulp.series("tests-viewer-transpile", function (done) {
|
|
var kamaServerOptions = {
|
|
var kamaServerOptions = {
|
|
configFile: __dirname + "/../../Viewer/tests/karma.conf.js",
|
|
configFile: __dirname + "/../../Viewer/tests/karma.conf.js",
|
|
singleRun: true
|
|
singleRun: true
|
|
@@ -1244,6 +1280,98 @@ gulp.task("tests-viewer-unit", ["tests-viewer-transpile"], function (done) {
|
|
|
|
|
|
var server = new karmaServer(kamaServerOptions, done);
|
|
var server = new karmaServer(kamaServerOptions, done);
|
|
server.start();
|
|
server.start();
|
|
|
|
+}));
|
|
|
|
+
|
|
|
|
+/**
|
|
|
|
+ * Launches the KARMA unit tests in phantomJS.
|
|
|
|
+ * (Can only be launch on any branches.)
|
|
|
|
+ */
|
|
|
|
+gulp.task("tests-unit", gulp.series("tests-babylon-unit", "tests-viewer-unit"));
|
|
|
|
+
|
|
|
|
+gulp.task("tests-modules", function () {
|
|
|
|
+ let testsToRun = require('../../tests/modules/tests.json');
|
|
|
|
+
|
|
|
|
+ let sequencePromise = Promise.resolve();
|
|
|
|
+
|
|
|
|
+ testsToRun.tests.forEach(test => {
|
|
|
|
+ sequencePromise = sequencePromise.then(() => {
|
|
|
|
+ console.log("Running " + test.name);
|
|
|
|
+ let basePath = '../../tests/modules/' + test.name + '/';
|
|
|
|
+ rmDir("../../tests/modules/build/");
|
|
|
|
+ let compilePromise = Promise.resolve();
|
|
|
|
+
|
|
|
|
+ if (test.dependencies) {
|
|
|
|
+ compilePromise = new Promise(function (resolve, reject) {
|
|
|
|
+ let counter = 0;
|
|
|
|
+ let copyTask = gulp.src(test.dependencies.map(dep => config.build.outputDirectory + '/' + dep)).pipe(rename(function (path) {
|
|
|
|
+ path.basename = (counter++) + '';
|
|
|
|
+ })).pipe(gulp.dest("../../tests/modules/build/dependencies/"))
|
|
|
|
+ copyTask.once("finish", resolve);
|
|
|
|
+ })
|
|
|
|
+ }
|
|
|
|
+ // any compilation needed?
|
|
|
|
+ if (test.typescript || test.bundler) {
|
|
|
|
+ //typescript only
|
|
|
|
+ if (test.typescript && !test.bundler) {
|
|
|
|
+ compilePromise = compilePromise.then(() => {
|
|
|
|
+ return new Promise(function (resolve, reject) {
|
|
|
|
+ var tsProject = typescript.createProject(basePath + (test.tsconfig || 'tsconfig.json'));
|
|
|
|
+
|
|
|
|
+ var tsResult = gulp.src(basePath + '/src/**/*.ts', { base: basePath })
|
|
|
|
+ .pipe(tsProject());
|
|
|
|
+
|
|
|
|
+ let error = false;
|
|
|
|
+ tsResult.once("error", function () {
|
|
|
|
+ error = true;
|
|
|
|
+ });
|
|
|
|
+
|
|
|
|
+ let jsPipe = tsResult.js.pipe(gulp.dest("../../tests/modules/"));
|
|
|
|
+
|
|
|
|
+ jsPipe.once("finish", function () {
|
|
|
|
+ if (error)
|
|
|
|
+ reject('error compiling test');
|
|
|
|
+ else
|
|
|
|
+ resolve();
|
|
|
|
+ });
|
|
|
|
+ });
|
|
|
|
+ });
|
|
|
|
+ } else {
|
|
|
|
+ if (test.bundler === 'webpack') {
|
|
|
|
+ console.log("webpack");
|
|
|
|
+ compilePromise = compilePromise.then(() => {
|
|
|
|
+ return new Promise(function (resolve, reject) {
|
|
|
|
+ let wpBuild = webpackStream(require(basePath + '/webpack.config.js'), webpack);
|
|
|
|
+
|
|
|
|
+ wpBuild = wpBuild
|
|
|
|
+ .pipe(rename(function (path) {
|
|
|
|
+ if (path.extname === '.js') {
|
|
|
|
+ path.basename = "tests-loader";
|
|
|
|
+ }
|
|
|
|
+ }))
|
|
|
|
+ .pipe(gulp.dest("../../tests/modules/build/"));
|
|
|
|
+
|
|
|
|
+ wpBuild.once("finish", resolve);
|
|
|
|
+ })
|
|
|
|
+ });
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return compilePromise.then(() => {
|
|
|
|
+ return new Promise(function (resolve, reject) {
|
|
|
|
+ var kamaServerOptions = {
|
|
|
|
+ configFile: __dirname + "/../../tests/modules/karma.conf.js",
|
|
|
|
+ singleRun: true
|
|
|
|
+ };
|
|
|
|
+
|
|
|
|
+ var server = new karmaServer(kamaServerOptions, resolve);
|
|
|
|
+ server.start();
|
|
|
|
+ });
|
|
|
|
+ })
|
|
|
|
+ })
|
|
|
|
+ });
|
|
|
|
+
|
|
|
|
+ return sequencePromise;
|
|
});
|
|
});
|
|
|
|
|
|
gulp.task("tests-whatsnew", function (done) {
|
|
gulp.task("tests-whatsnew", function (done) {
|
|
@@ -1287,3 +1415,13 @@ gulp.task("tests-whatsnew", function (done) {
|
|
});
|
|
});
|
|
});
|
|
});
|
|
});
|
|
});
|
|
|
|
+
|
|
|
|
+/**
|
|
|
|
+ * Do it all.
|
|
|
|
+ */
|
|
|
|
+gulp.task("typescript-all", gulp.series("typescript", "typescript-libraries", "netlify-cleanup"));
|
|
|
|
+
|
|
|
|
+/**
|
|
|
|
+ * The default task, concat and min the main BJS files.
|
|
|
|
+ */
|
|
|
|
+gulp.task("default", gulp.series("typescript-all", "intellisense", "typedoc-all", "tests-unit", "tests-validation-virtualscreen", "tests-validation-browserstack"));
|