mirror of
https://github.com/microsoft/vscode.git
synced 2026-05-08 09:08:48 +01:00
Extract task code to its own file
This commit is contained in:
@@ -6,15 +6,16 @@
|
|||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
const util = require('./lib/util');
|
const util = require('./lib/util');
|
||||||
|
const task = require('./lib/task');
|
||||||
const compilation = require('./lib/compilation');
|
const compilation = require('./lib/compilation');
|
||||||
const { compileExtensionsBuildTask } = require('./gulpfile.extensions');
|
const { compileExtensionsBuildTask } = require('./gulpfile.extensions');
|
||||||
|
|
||||||
// Full compile, including nls and inline sources in sourcemaps, for build
|
// Full compile, including nls and inline sources in sourcemaps, for build
|
||||||
const compileClientBuildTask = util.task.series(util.rimraf('out-build'), compilation.compileTask('src', 'out-build', true));
|
const compileClientBuildTask = task.series(util.rimraf('out-build'), compilation.compileTask('src', 'out-build', true));
|
||||||
compileClientBuildTask.displayName = 'compile-client-build';
|
compileClientBuildTask.displayName = 'compile-client-build';
|
||||||
|
|
||||||
// All Build
|
// All Build
|
||||||
const compileBuildTask = util.task.parallel(compileClientBuildTask, compileExtensionsBuildTask);
|
const compileBuildTask = task.parallel(compileClientBuildTask, compileExtensionsBuildTask);
|
||||||
compileBuildTask.displayName = 'compile-build';
|
compileBuildTask.displayName = 'compile-build';
|
||||||
|
|
||||||
exports.compileBuildTask = compileBuildTask;
|
exports.compileBuildTask = compileBuildTask;
|
||||||
@@ -6,6 +6,7 @@
|
|||||||
const gulp = require('gulp');
|
const gulp = require('gulp');
|
||||||
const path = require('path');
|
const path = require('path');
|
||||||
const util = require('./lib/util');
|
const util = require('./lib/util');
|
||||||
|
const task = require('./lib/task');
|
||||||
const common = require('./lib/optimize');
|
const common = require('./lib/optimize');
|
||||||
const es = require('event-stream');
|
const es = require('event-stream');
|
||||||
const File = require('vinyl');
|
const File = require('vinyl');
|
||||||
@@ -290,8 +291,8 @@ const finalEditorResourcesTask = function () {
|
|||||||
finalEditorResourcesTask.displayName = 'final-editor-resources';
|
finalEditorResourcesTask.displayName = 'final-editor-resources';
|
||||||
|
|
||||||
gulp.task('editor-distro',
|
gulp.task('editor-distro',
|
||||||
util.task.series(
|
task.series(
|
||||||
util.task.parallel(
|
task.parallel(
|
||||||
util.rimraf('out-editor-src'),
|
util.rimraf('out-editor-src'),
|
||||||
util.rimraf('out-editor-build'),
|
util.rimraf('out-editor-build'),
|
||||||
util.rimraf('out-editor-esm'),
|
util.rimraf('out-editor-esm'),
|
||||||
@@ -300,13 +301,13 @@ gulp.task('editor-distro',
|
|||||||
util.rimraf('out-editor-min')
|
util.rimraf('out-editor-min')
|
||||||
),
|
),
|
||||||
extractEditorSrcTask,
|
extractEditorSrcTask,
|
||||||
util.task.parallel(
|
task.parallel(
|
||||||
util.task.series(
|
task.series(
|
||||||
compileEditorAMDTask,
|
compileEditorAMDTask,
|
||||||
optimizeEditorAMDTask,
|
optimizeEditorAMDTask,
|
||||||
minifyEditorAMDTask
|
minifyEditorAMDTask
|
||||||
),
|
),
|
||||||
util.task.series(
|
task.series(
|
||||||
createESMSourcesAndResourcesTask,
|
createESMSourcesAndResourcesTask,
|
||||||
compileEditorESMTask
|
compileEditorESMTask
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ const tsb = require('gulp-tsb');
|
|||||||
const es = require('event-stream');
|
const es = require('event-stream');
|
||||||
const filter = require('gulp-filter');
|
const filter = require('gulp-filter');
|
||||||
const util = require('./lib/util');
|
const util = require('./lib/util');
|
||||||
|
const task = require('./lib/task');
|
||||||
const watcher = require('./lib/watch');
|
const watcher = require('./lib/watch');
|
||||||
const createReporter = require('./lib/reporter').createReporter;
|
const createReporter = require('./lib/reporter').createReporter;
|
||||||
const glob = require('glob');
|
const glob = require('glob');
|
||||||
@@ -112,7 +113,7 @@ const tasks = compilations.map(function (tsconfigFile) {
|
|||||||
.pipe(gulp.dest(out));
|
.pipe(gulp.dest(out));
|
||||||
};
|
};
|
||||||
compileTask_.displayName = `compile-extension-${name}`;
|
compileTask_.displayName = `compile-extension-${name}`;
|
||||||
const compileTask = util.task.series(cleanTask, compileTask_);
|
const compileTask = task.series(cleanTask, compileTask_);
|
||||||
|
|
||||||
const watchTask_ = () => {
|
const watchTask_ = () => {
|
||||||
const pipeline = createPipeline(false);
|
const pipeline = createPipeline(false);
|
||||||
@@ -124,7 +125,7 @@ const tasks = compilations.map(function (tsconfigFile) {
|
|||||||
.pipe(gulp.dest(out));
|
.pipe(gulp.dest(out));
|
||||||
};
|
};
|
||||||
watchTask_.displayName = `watch-extension-${name}`;
|
watchTask_.displayName = `watch-extension-${name}`;
|
||||||
const watchTask = util.task.series(cleanTask, watchTask_);
|
const watchTask = task.series(cleanTask, watchTask_);
|
||||||
|
|
||||||
const compileBuildTask_ = () => {
|
const compileBuildTask_ = () => {
|
||||||
const pipeline = createPipeline(true, true);
|
const pipeline = createPipeline(true, true);
|
||||||
@@ -135,7 +136,7 @@ const tasks = compilations.map(function (tsconfigFile) {
|
|||||||
.pipe(gulp.dest(out));
|
.pipe(gulp.dest(out));
|
||||||
};
|
};
|
||||||
compileBuildTask_.displayName = `compile-build-extension-${name}`;
|
compileBuildTask_.displayName = `compile-build-extension-${name}`;
|
||||||
const compileBuildTask = util.task.series(cleanTask, compileBuildTask_);
|
const compileBuildTask = task.series(cleanTask, compileBuildTask_);
|
||||||
|
|
||||||
// Tasks
|
// Tasks
|
||||||
gulp.task('compile-extension:' + name, compileTask);
|
gulp.task('compile-extension:' + name, compileTask);
|
||||||
@@ -148,16 +149,16 @@ const tasks = compilations.map(function (tsconfigFile) {
|
|||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
const compileExtensionsTask = util.task.parallel(...tasks.map(t => t.compileTask));
|
const compileExtensionsTask = task.parallel(...tasks.map(t => t.compileTask));
|
||||||
compileExtensionsTask.displayName = 'compile-extensions';
|
compileExtensionsTask.displayName = 'compile-extensions';
|
||||||
gulp.task(compileExtensionsTask.displayName, compileExtensionsTask);
|
gulp.task(compileExtensionsTask.displayName, compileExtensionsTask);
|
||||||
exports.compileExtensionsTask = compileExtensionsTask;
|
exports.compileExtensionsTask = compileExtensionsTask;
|
||||||
|
|
||||||
const watchExtensionsTask = util.task.parallel(...tasks.map(t => t.watchTask));
|
const watchExtensionsTask = task.parallel(...tasks.map(t => t.watchTask));
|
||||||
watchExtensionsTask.displayName = 'watch-extensions';
|
watchExtensionsTask.displayName = 'watch-extensions';
|
||||||
gulp.task(watchExtensionsTask.displayName, watchExtensionsTask);
|
gulp.task(watchExtensionsTask.displayName, watchExtensionsTask);
|
||||||
exports.watchExtensionsTask = watchExtensionsTask;
|
exports.watchExtensionsTask = watchExtensionsTask;
|
||||||
|
|
||||||
const compileExtensionsBuildTask = util.task.parallel(...tasks.map(t => t.compileBuildTask));
|
const compileExtensionsBuildTask = task.parallel(...tasks.map(t => t.compileBuildTask));
|
||||||
compileExtensionsBuildTask.displayName = 'compile-extensions-build';
|
compileExtensionsBuildTask.displayName = 'compile-extensions-build';
|
||||||
exports.compileExtensionsBuildTask = compileExtensionsBuildTask;
|
exports.compileExtensionsBuildTask = compileExtensionsBuildTask;
|
||||||
|
|||||||
+16
-15
@@ -20,6 +20,7 @@ const filter = require('gulp-filter');
|
|||||||
const json = require('gulp-json-editor');
|
const json = require('gulp-json-editor');
|
||||||
const _ = require('underscore');
|
const _ = require('underscore');
|
||||||
const util = require('./lib/util');
|
const util = require('./lib/util');
|
||||||
|
const task = require('./lib/task');
|
||||||
const ext = require('./lib/extensions');
|
const ext = require('./lib/extensions');
|
||||||
const buildfile = require('../src/buildfile');
|
const buildfile = require('../src/buildfile');
|
||||||
const common = require('./lib/optimize');
|
const common = require('./lib/optimize');
|
||||||
@@ -87,8 +88,8 @@ const BUNDLED_FILE_HEADER = [
|
|||||||
' *--------------------------------------------------------*/'
|
' *--------------------------------------------------------*/'
|
||||||
].join('\n');
|
].join('\n');
|
||||||
|
|
||||||
const optimizeVSCodeTask = util.task.series(
|
const optimizeVSCodeTask = task.series(
|
||||||
util.task.parallel(
|
task.parallel(
|
||||||
util.rimraf('out-vscode'),
|
util.rimraf('out-vscode'),
|
||||||
compileBuildTask
|
compileBuildTask
|
||||||
),
|
),
|
||||||
@@ -105,7 +106,7 @@ const optimizeVSCodeTask = util.task.series(
|
|||||||
optimizeVSCodeTask.displayName = 'optimize-vscode';
|
optimizeVSCodeTask.displayName = 'optimize-vscode';
|
||||||
|
|
||||||
|
|
||||||
const optimizeIndexJSTask = util.task.series(
|
const optimizeIndexJSTask = task.series(
|
||||||
optimizeVSCodeTask,
|
optimizeVSCodeTask,
|
||||||
() => {
|
() => {
|
||||||
const fullpath = path.join(process.cwd(), 'out-vscode/bootstrap-window.js');
|
const fullpath = path.join(process.cwd(), 'out-vscode/bootstrap-window.js');
|
||||||
@@ -117,8 +118,8 @@ const optimizeIndexJSTask = util.task.series(
|
|||||||
optimizeIndexJSTask.displayName = 'optimize-index-js';
|
optimizeIndexJSTask.displayName = 'optimize-index-js';
|
||||||
|
|
||||||
const sourceMappingURLBase = `https://ticino.blob.core.windows.net/sourcemaps/${commit}`;
|
const sourceMappingURLBase = `https://ticino.blob.core.windows.net/sourcemaps/${commit}`;
|
||||||
const minifyVSCodeTask = util.task.series(
|
const minifyVSCodeTask = task.series(
|
||||||
util.task.parallel(
|
task.parallel(
|
||||||
util.rimraf('out-vscode-min'),
|
util.rimraf('out-vscode-min'),
|
||||||
optimizeIndexJSTask
|
optimizeIndexJSTask
|
||||||
),
|
),
|
||||||
@@ -213,11 +214,11 @@ function getElectron(arch) {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
gulp.task('electron', util.task.series(util.rimraf('.build/electron'), getElectron(process.arch)));
|
gulp.task('electron', task.series(util.rimraf('.build/electron'), getElectron(process.arch)));
|
||||||
gulp.task('electron-ia32', util.task.series(util.rimraf('.build/electron'), getElectron('ia32')));
|
gulp.task('electron-ia32', task.series(util.rimraf('.build/electron'), getElectron('ia32')));
|
||||||
gulp.task('electron-x64', util.task.series(util.rimraf('.build/electron'), getElectron('x64')));
|
gulp.task('electron-x64', task.series(util.rimraf('.build/electron'), getElectron('x64')));
|
||||||
gulp.task('electron-arm', util.task.series(util.rimraf('.build/electron'), getElectron('arm')));
|
gulp.task('electron-arm', task.series(util.rimraf('.build/electron'), getElectron('arm')));
|
||||||
gulp.task('electron-arm64', util.task.series(util.rimraf('.build/electron'), getElectron('arm64')));
|
gulp.task('electron-arm64', task.series(util.rimraf('.build/electron'), getElectron('arm64')));
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -457,8 +458,8 @@ BUILD_TARGETS.forEach(buildTarget => {
|
|||||||
const sourceFolderName = `out-vscode${dashed(minified)}`;
|
const sourceFolderName = `out-vscode${dashed(minified)}`;
|
||||||
const destinationFolderName = `VSCode${dashed(platform)}${dashed(arch)}`;
|
const destinationFolderName = `VSCode${dashed(platform)}${dashed(arch)}`;
|
||||||
|
|
||||||
const vscodeTask = util.task.series(
|
const vscodeTask = task.series(
|
||||||
util.task.parallel(
|
task.parallel(
|
||||||
minified ? minifyVSCodeTask : optimizeVSCodeTask,
|
minified ? minifyVSCodeTask : optimizeVSCodeTask,
|
||||||
util.rimraf(path.join(buildRoot, destinationFolderName))
|
util.rimraf(path.join(buildRoot, destinationFolderName))
|
||||||
),
|
),
|
||||||
@@ -491,7 +492,7 @@ const apiName = process.env.TRANSIFEX_API_NAME;
|
|||||||
const apiToken = process.env.TRANSIFEX_API_TOKEN;
|
const apiToken = process.env.TRANSIFEX_API_TOKEN;
|
||||||
|
|
||||||
gulp.task('vscode-translations-push',
|
gulp.task('vscode-translations-push',
|
||||||
util.task.series(
|
task.series(
|
||||||
optimizeVSCodeTask,
|
optimizeVSCodeTask,
|
||||||
function () {
|
function () {
|
||||||
const pathToMetadata = './out-vscode/nls.metadata.json';
|
const pathToMetadata = './out-vscode/nls.metadata.json';
|
||||||
@@ -509,7 +510,7 @@ gulp.task('vscode-translations-push',
|
|||||||
);
|
);
|
||||||
|
|
||||||
gulp.task('vscode-translations-export',
|
gulp.task('vscode-translations-export',
|
||||||
util.task.series(
|
task.series(
|
||||||
optimizeVSCodeTask,
|
optimizeVSCodeTask,
|
||||||
function () {
|
function () {
|
||||||
const pathToMetadata = './out-vscode/nls.metadata.json';
|
const pathToMetadata = './out-vscode/nls.metadata.json';
|
||||||
@@ -614,7 +615,7 @@ generateVSCodeConfigurationTask.displayName = 'generate-vscode-configuration';
|
|||||||
|
|
||||||
const allConfigDetailsPath = path.join(os.tmpdir(), 'configuration.json');
|
const allConfigDetailsPath = path.join(os.tmpdir(), 'configuration.json');
|
||||||
gulp.task('upload-vscode-configuration',
|
gulp.task('upload-vscode-configuration',
|
||||||
util.task.series(
|
task.series(
|
||||||
generateVSCodeConfigurationTask,
|
generateVSCodeConfigurationTask,
|
||||||
() => {
|
() => {
|
||||||
if (!shouldSetupSettingsSearch()) {
|
if (!shouldSetupSettingsSearch()) {
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ const shell = require('gulp-shell');
|
|||||||
const es = require('event-stream');
|
const es = require('event-stream');
|
||||||
const vfs = require('vinyl-fs');
|
const vfs = require('vinyl-fs');
|
||||||
const util = require('./lib/util');
|
const util = require('./lib/util');
|
||||||
|
const task = require('./lib/task');
|
||||||
const packageJson = require('../package.json');
|
const packageJson = require('../package.json');
|
||||||
const product = require('../product.json');
|
const product = require('../product.json');
|
||||||
const rpmDependencies = require('../resources/linux/rpm/dependencies.json');
|
const rpmDependencies = require('../resources/linux/rpm/dependencies.json');
|
||||||
@@ -241,29 +242,29 @@ BUILD_TARGETS.forEach((buildTarget) => {
|
|||||||
|
|
||||||
{
|
{
|
||||||
const debArch = getDebPackageArch(arch);
|
const debArch = getDebPackageArch(arch);
|
||||||
const prepareDebTask = util.task.series(util.rimraf(`.build/linux/deb/${debArch}`), prepareDebPackage(arch));
|
const prepareDebTask = task.series(util.rimraf(`.build/linux/deb/${debArch}`), prepareDebPackage(arch));
|
||||||
prepareDebTask.displayName = `vscode-linux-${arch}-prepare-deb`;
|
prepareDebTask.displayName = `vscode-linux-${arch}-prepare-deb`;
|
||||||
// gulp.task(prepareDebTask.displayName, prepareDebTask);
|
// gulp.task(prepareDebTask.displayName, prepareDebTask);
|
||||||
const buildDebTask = util.task.series(prepareDebTask, buildDebPackage(arch));
|
const buildDebTask = task.series(prepareDebTask, buildDebPackage(arch));
|
||||||
buildDebTask.displayName = `vscode-linux-${arch}-build-deb`;
|
buildDebTask.displayName = `vscode-linux-${arch}-build-deb`;
|
||||||
gulp.task(buildDebTask.displayName, buildDebTask);
|
gulp.task(buildDebTask.displayName, buildDebTask);
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
const rpmArch = getRpmPackageArch(arch);
|
const rpmArch = getRpmPackageArch(arch);
|
||||||
const prepareRpmTask = util.task.series(util.rimraf(`.build/linux/rpm/${rpmArch}`), prepareRpmPackage(arch));
|
const prepareRpmTask = task.series(util.rimraf(`.build/linux/rpm/${rpmArch}`), prepareRpmPackage(arch));
|
||||||
prepareRpmTask.displayName = `vscode-linux-${arch}-prepare-rpm`;
|
prepareRpmTask.displayName = `vscode-linux-${arch}-prepare-rpm`;
|
||||||
// gulp.task(prepareRpmTask.displayName, prepareRpmTask);
|
// gulp.task(prepareRpmTask.displayName, prepareRpmTask);
|
||||||
const buildRpmTask = util.task.series(prepareRpmTask, buildRpmPackage(arch));
|
const buildRpmTask = task.series(prepareRpmTask, buildRpmPackage(arch));
|
||||||
buildRpmTask.displayName = `vscode-linux-${arch}-build-rpm`;
|
buildRpmTask.displayName = `vscode-linux-${arch}-build-rpm`;
|
||||||
gulp.task(buildRpmTask.displayName, buildRpmTask);
|
gulp.task(buildRpmTask.displayName, buildRpmTask);
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
const prepareSnapTask = util.task.series(util.rimraf(`.build/linux/snap/${arch}`), prepareSnapPackage(arch));
|
const prepareSnapTask = task.series(util.rimraf(`.build/linux/snap/${arch}`), prepareSnapPackage(arch));
|
||||||
prepareSnapTask.displayName = `vscode-linux-${arch}-prepare-snap`;
|
prepareSnapTask.displayName = `vscode-linux-${arch}-prepare-snap`;
|
||||||
gulp.task(prepareSnapTask.displayName, prepareSnapTask);
|
gulp.task(prepareSnapTask.displayName, prepareSnapTask);
|
||||||
const buildSnapTask = util.task.series(prepareSnapTask, buildSnapPackage(arch));
|
const buildSnapTask = task.series(prepareSnapTask, buildSnapPackage(arch));
|
||||||
buildSnapTask.displayName = `vscode-linux-${arch}-build-snap`;
|
buildSnapTask.displayName = `vscode-linux-${arch}-build-snap`;
|
||||||
gulp.task(buildSnapTask.displayName, buildSnapTask);
|
gulp.task(buildSnapTask.displayName, buildSnapTask);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ const assert = require('assert');
|
|||||||
const cp = require('child_process');
|
const cp = require('child_process');
|
||||||
const _7z = require('7zip')['7z'];
|
const _7z = require('7zip')['7z'];
|
||||||
const util = require('./lib/util');
|
const util = require('./lib/util');
|
||||||
|
const task = require('./lib/task');
|
||||||
const pkg = require('../package.json');
|
const pkg = require('../package.json');
|
||||||
const product = require('../product.json');
|
const product = require('../product.json');
|
||||||
const vfs = require('vinyl-fs');
|
const vfs = require('vinyl-fs');
|
||||||
@@ -106,7 +107,7 @@ function buildWin32Setup(arch, target) {
|
|||||||
|
|
||||||
function defineWin32SetupTasks(arch, target) {
|
function defineWin32SetupTasks(arch, target) {
|
||||||
const cleanTask = util.rimraf(setupDir(arch, target));
|
const cleanTask = util.rimraf(setupDir(arch, target));
|
||||||
gulp.task(`vscode-win32-${arch}-${target}-setup`, util.task.series(cleanTask, buildWin32Setup(arch, target)));
|
gulp.task(`vscode-win32-${arch}-${target}-setup`, task.series(cleanTask, buildWin32Setup(arch, target)));
|
||||||
}
|
}
|
||||||
|
|
||||||
defineWin32SetupTasks('ia32', 'system');
|
defineWin32SetupTasks('ia32', 'system');
|
||||||
@@ -124,8 +125,8 @@ function archiveWin32Setup(arch) {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
gulp.task('vscode-win32-ia32-archive', util.task.series(util.rimraf(zipDir('ia32')), archiveWin32Setup('ia32')));
|
gulp.task('vscode-win32-ia32-archive', task.series(util.rimraf(zipDir('ia32')), archiveWin32Setup('ia32')));
|
||||||
gulp.task('vscode-win32-x64-archive', util.task.series(util.rimraf(zipDir('x64')), archiveWin32Setup('x64')));
|
gulp.task('vscode-win32-x64-archive', task.series(util.rimraf(zipDir('x64')), archiveWin32Setup('x64')));
|
||||||
|
|
||||||
function copyInnoUpdater(arch) {
|
function copyInnoUpdater(arch) {
|
||||||
return () => {
|
return () => {
|
||||||
@@ -141,5 +142,5 @@ function patchInnoUpdater(arch) {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
gulp.task('vscode-win32-ia32-inno-updater', util.task.series(copyInnoUpdater('ia32'), patchInnoUpdater('ia32')));
|
gulp.task('vscode-win32-ia32-inno-updater', task.series(copyInnoUpdater('ia32'), patchInnoUpdater('ia32')));
|
||||||
gulp.task('vscode-win32-x64-inno-updater', util.task.series(copyInnoUpdater('x64'), patchInnoUpdater('x64')));
|
gulp.task('vscode-win32-x64-inno-updater', task.series(copyInnoUpdater('x64'), patchInnoUpdater('x64')));
|
||||||
@@ -0,0 +1,78 @@
|
|||||||
|
/*---------------------------------------------------------------------------------------------
|
||||||
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
|
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||||
|
*--------------------------------------------------------------------------------------------*/
|
||||||
|
'use strict';
|
||||||
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
|
const fancyLog = require("fancy-log");
|
||||||
|
const ansiColors = require("ansi-colors");
|
||||||
|
function _isPromise(p) {
|
||||||
|
if (typeof p.then === 'function') {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
function _renderTime(time) {
|
||||||
|
if (time < 1000) {
|
||||||
|
return `${time.toFixed(2)} ms`;
|
||||||
|
}
|
||||||
|
let seconds = time / 1000;
|
||||||
|
if (seconds < 60) {
|
||||||
|
return `${seconds.toFixed(1)} s`;
|
||||||
|
}
|
||||||
|
let minutes = Math.floor(seconds / 60);
|
||||||
|
seconds -= minutes * 60;
|
||||||
|
return `${minutes} m and ${seconds} s`;
|
||||||
|
}
|
||||||
|
async function _execute(task) {
|
||||||
|
const name = task.displayName || task.name || `<anonymous>`;
|
||||||
|
fancyLog('Starting', ansiColors.cyan(name), '...');
|
||||||
|
const startTime = process.hrtime();
|
||||||
|
await _doExecute(task);
|
||||||
|
const elapsedArr = process.hrtime(startTime);
|
||||||
|
const elapsedNanoseconds = (elapsedArr[0] * 1e9 + elapsedArr[1]);
|
||||||
|
fancyLog(`Finished`, ansiColors.cyan(name), 'after', ansiColors.green(_renderTime(elapsedNanoseconds / 1e6)));
|
||||||
|
}
|
||||||
|
async function _doExecute(task) {
|
||||||
|
// Always invoke as if it were a callback task
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
if (task.length === 1) {
|
||||||
|
// this is a calback task
|
||||||
|
task((err) => {
|
||||||
|
if (err) {
|
||||||
|
return reject(err);
|
||||||
|
}
|
||||||
|
resolve();
|
||||||
|
});
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
const taskResult = task();
|
||||||
|
if (typeof taskResult === 'undefined') {
|
||||||
|
// this is a sync task
|
||||||
|
resolve();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (_isPromise(taskResult)) {
|
||||||
|
// this is a promise returning task
|
||||||
|
taskResult.then(resolve, reject);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
// this is a stream returning task
|
||||||
|
taskResult.on('end', _ => resolve());
|
||||||
|
taskResult.on('error', err => reject(err));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
function series(...tasks) {
|
||||||
|
return async () => {
|
||||||
|
for (let i = 0; i < tasks.length; i++) {
|
||||||
|
await _execute(tasks[i]);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
exports.series = series;
|
||||||
|
function parallel(...tasks) {
|
||||||
|
return async () => {
|
||||||
|
await Promise.all(tasks.map(t => _execute(t)));
|
||||||
|
};
|
||||||
|
}
|
||||||
|
exports.parallel = parallel;
|
||||||
@@ -0,0 +1,92 @@
|
|||||||
|
/*---------------------------------------------------------------------------------------------
|
||||||
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
|
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||||
|
*--------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
import * as fancyLog from 'fancy-log';
|
||||||
|
import * as ansiColors from 'ansi-colors';
|
||||||
|
|
||||||
|
export type PromiseTask = () => Promise<void>;
|
||||||
|
export type StreamTask = () => NodeJS.ReadWriteStream;
|
||||||
|
export type CallbackTask = (cb?: (err?: any) => void) => void;
|
||||||
|
export type Task = PromiseTask | StreamTask | CallbackTask;
|
||||||
|
|
||||||
|
function _isPromise(p: Promise<void> | NodeJS.ReadWriteStream): p is Promise<void> {
|
||||||
|
if (typeof (<any>p).then === 'function') {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
function _renderTime(time: number): string {
|
||||||
|
if (time < 1000) {
|
||||||
|
return `${time.toFixed(2)} ms`;
|
||||||
|
}
|
||||||
|
let seconds = time / 1000;
|
||||||
|
if (seconds < 60) {
|
||||||
|
return `${seconds.toFixed(1)} s`;
|
||||||
|
}
|
||||||
|
let minutes = Math.floor(seconds / 60);
|
||||||
|
seconds -= minutes * 60;
|
||||||
|
return `${minutes} m and ${seconds} s`;
|
||||||
|
}
|
||||||
|
|
||||||
|
async function _execute(task: Task): Promise<void> {
|
||||||
|
const name = (<any>task).displayName || task.name || `<anonymous>`;
|
||||||
|
fancyLog('Starting', ansiColors.cyan(name), '...');
|
||||||
|
const startTime = process.hrtime();
|
||||||
|
await _doExecute(task);
|
||||||
|
const elapsedArr = process.hrtime(startTime);
|
||||||
|
const elapsedNanoseconds = (elapsedArr[0] * 1e9 + elapsedArr[1]);
|
||||||
|
fancyLog(`Finished`, ansiColors.cyan(name), 'after', ansiColors.green(_renderTime(elapsedNanoseconds / 1e6)));
|
||||||
|
}
|
||||||
|
|
||||||
|
async function _doExecute(task: Task): Promise<void> {
|
||||||
|
// Always invoke as if it were a callback task
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
if (task.length === 1) {
|
||||||
|
// this is a calback task
|
||||||
|
task((err) => {
|
||||||
|
if (err) {
|
||||||
|
return reject(err);
|
||||||
|
}
|
||||||
|
resolve();
|
||||||
|
});
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const taskResult = task();
|
||||||
|
|
||||||
|
if (typeof taskResult === 'undefined') {
|
||||||
|
// this is a sync task
|
||||||
|
resolve();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (_isPromise(taskResult)) {
|
||||||
|
// this is a promise returning task
|
||||||
|
taskResult.then(resolve, reject);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// this is a stream returning task
|
||||||
|
taskResult.on('end', _ => resolve());
|
||||||
|
taskResult.on('error', err => reject(err));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
export function series(...tasks: Task[]): PromiseTask {
|
||||||
|
return async () => {
|
||||||
|
for (let i = 0; i < tasks.length; i++) {
|
||||||
|
await _execute(tasks[i]);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
export function parallel(...tasks: Task[]): PromiseTask {
|
||||||
|
return async () => {
|
||||||
|
await Promise.all(tasks.map(t => _execute(t)));
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -14,8 +14,6 @@ const fs = require("fs");
|
|||||||
const _rimraf = require("rimraf");
|
const _rimraf = require("rimraf");
|
||||||
const git = require("./git");
|
const git = require("./git");
|
||||||
const VinylFile = require("vinyl");
|
const VinylFile = require("vinyl");
|
||||||
const fancyLog = require("fancy-log");
|
|
||||||
const ansiColors = require("ansi-colors");
|
|
||||||
const NoCancellationToken = { isCancellationRequested: () => false };
|
const NoCancellationToken = { isCancellationRequested: () => false };
|
||||||
function incremental(streamProvider, initial, supportsCancellation) {
|
function incremental(streamProvider, initial, supportsCancellation) {
|
||||||
const input = es.through();
|
const input = es.through();
|
||||||
@@ -186,79 +184,6 @@ function rimraf(dir) {
|
|||||||
return retry;
|
return retry;
|
||||||
}
|
}
|
||||||
exports.rimraf = rimraf;
|
exports.rimraf = rimraf;
|
||||||
var task;
|
|
||||||
(function (task_1) {
|
|
||||||
function _isPromise(p) {
|
|
||||||
if (typeof p.then === 'function') {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
function _renderTime(time) {
|
|
||||||
if (time < 1000) {
|
|
||||||
return `${time.toFixed(2)} ms`;
|
|
||||||
}
|
|
||||||
let seconds = time / 1000;
|
|
||||||
if (seconds < 60) {
|
|
||||||
return `${seconds.toFixed(1)} s`;
|
|
||||||
}
|
|
||||||
let minutes = Math.floor(seconds / 60);
|
|
||||||
seconds -= minutes * 60;
|
|
||||||
return `${minutes} m and ${seconds} s`;
|
|
||||||
}
|
|
||||||
async function _execute(task) {
|
|
||||||
const name = task.displayName || task.name || `<anonymous>`;
|
|
||||||
fancyLog('Starting', ansiColors.cyan(name), '...');
|
|
||||||
const startTime = process.hrtime();
|
|
||||||
await _doExecute(task);
|
|
||||||
const elapsedArr = process.hrtime(startTime);
|
|
||||||
const elapsedNanoseconds = (elapsedArr[0] * 1e9 + elapsedArr[1]);
|
|
||||||
fancyLog(`Finished`, ansiColors.cyan(name), 'after', ansiColors.green(_renderTime(elapsedNanoseconds / 1e6)));
|
|
||||||
}
|
|
||||||
async function _doExecute(task) {
|
|
||||||
// Always invoke as if it were a callback task
|
|
||||||
return new Promise((resolve, reject) => {
|
|
||||||
if (task.length === 1) {
|
|
||||||
// this is a calback task
|
|
||||||
task((err) => {
|
|
||||||
if (err) {
|
|
||||||
return reject(err);
|
|
||||||
}
|
|
||||||
resolve();
|
|
||||||
});
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
const taskResult = task();
|
|
||||||
if (typeof taskResult === 'undefined') {
|
|
||||||
// this is a sync task
|
|
||||||
resolve();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (_isPromise(taskResult)) {
|
|
||||||
// this is a promise returning task
|
|
||||||
taskResult.then(resolve, reject);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
// this is a stream returning task
|
|
||||||
taskResult.on('end', _ => resolve());
|
|
||||||
taskResult.on('error', err => reject(err));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
function series(...tasks) {
|
|
||||||
return async () => {
|
|
||||||
for (let i = 0; i < tasks.length; i++) {
|
|
||||||
await _execute(tasks[i]);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
task_1.series = series;
|
|
||||||
function parallel(...tasks) {
|
|
||||||
return async () => {
|
|
||||||
await Promise.all(tasks.map(t => _execute(t)));
|
|
||||||
};
|
|
||||||
}
|
|
||||||
task_1.parallel = parallel;
|
|
||||||
})(task = exports.task || (exports.task = {}));
|
|
||||||
function getVersion(root) {
|
function getVersion(root) {
|
||||||
let version = process.env['BUILD_SOURCEVERSION'];
|
let version = process.env['BUILD_SOURCEVERSION'];
|
||||||
if (!version || !/^[0-9a-f]{40}$/i.test(version)) {
|
if (!version || !/^[0-9a-f]{40}$/i.test(version)) {
|
||||||
|
|||||||
@@ -17,8 +17,6 @@ import * as git from './git';
|
|||||||
import * as VinylFile from 'vinyl';
|
import * as VinylFile from 'vinyl';
|
||||||
import { ThroughStream } from 'through';
|
import { ThroughStream } from 'through';
|
||||||
import * as sm from 'source-map';
|
import * as sm from 'source-map';
|
||||||
import * as fancyLog from 'fancy-log';
|
|
||||||
import * as ansiColors from 'ansi-colors';
|
|
||||||
|
|
||||||
export interface ICancellationToken {
|
export interface ICancellationToken {
|
||||||
isCancellationRequested(): boolean;
|
isCancellationRequested(): boolean;
|
||||||
@@ -239,92 +237,6 @@ export function rimraf(dir: string): (cb: any) => void {
|
|||||||
return retry;
|
return retry;
|
||||||
}
|
}
|
||||||
|
|
||||||
export type PromiseTask = () => Promise<void>;
|
|
||||||
export type StreamTask = () => NodeJS.ReadWriteStream;
|
|
||||||
export type CallbackTask = (cb?: (err?: any) => void) => void;
|
|
||||||
export type Task = PromiseTask | StreamTask | CallbackTask;
|
|
||||||
|
|
||||||
export namespace task {
|
|
||||||
|
|
||||||
function _isPromise(p: Promise<void> | NodeJS.ReadWriteStream): p is Promise<void> {
|
|
||||||
if (typeof (<any>p).then === 'function') {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
function _renderTime(time: number): string {
|
|
||||||
if (time < 1000) {
|
|
||||||
return `${time.toFixed(2)} ms`;
|
|
||||||
}
|
|
||||||
let seconds = time / 1000;
|
|
||||||
if (seconds < 60) {
|
|
||||||
return `${seconds.toFixed(1)} s`;
|
|
||||||
}
|
|
||||||
let minutes = Math.floor(seconds / 60);
|
|
||||||
seconds -= minutes * 60;
|
|
||||||
return `${minutes} m and ${seconds} s`;
|
|
||||||
}
|
|
||||||
|
|
||||||
async function _execute(task: Task): Promise<void> {
|
|
||||||
const name = (<any>task).displayName || task.name || `<anonymous>`;
|
|
||||||
fancyLog('Starting', ansiColors.cyan(name), '...');
|
|
||||||
const startTime = process.hrtime();
|
|
||||||
await _doExecute(task);
|
|
||||||
const elapsedArr = process.hrtime(startTime);
|
|
||||||
const elapsedNanoseconds = (elapsedArr[0] * 1e9 + elapsedArr[1]);
|
|
||||||
fancyLog(`Finished`, ansiColors.cyan(name), 'after', ansiColors.green(_renderTime(elapsedNanoseconds / 1e6)));
|
|
||||||
}
|
|
||||||
|
|
||||||
async function _doExecute(task: Task): Promise<void> {
|
|
||||||
// Always invoke as if it were a callback task
|
|
||||||
return new Promise((resolve, reject) => {
|
|
||||||
if (task.length === 1) {
|
|
||||||
// this is a calback task
|
|
||||||
task((err) => {
|
|
||||||
if (err) {
|
|
||||||
return reject(err);
|
|
||||||
}
|
|
||||||
resolve();
|
|
||||||
});
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
const taskResult = task();
|
|
||||||
|
|
||||||
if (typeof taskResult === 'undefined') {
|
|
||||||
// this is a sync task
|
|
||||||
resolve();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (_isPromise(taskResult)) {
|
|
||||||
// this is a promise returning task
|
|
||||||
taskResult.then(resolve, reject);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// this is a stream returning task
|
|
||||||
taskResult.on('end', _ => resolve());
|
|
||||||
taskResult.on('error', err => reject(err));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
export function series(...tasks: Task[]): PromiseTask {
|
|
||||||
return async () => {
|
|
||||||
for (let i = 0; i < tasks.length; i++) {
|
|
||||||
await _execute(tasks[i]);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
export function parallel(...tasks: Task[]): PromiseTask {
|
|
||||||
return async () => {
|
|
||||||
await Promise.all(tasks.map(t => _execute(t)));
|
|
||||||
};
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
export function getVersion(root: string): string | undefined {
|
export function getVersion(root: string): string | undefined {
|
||||||
let version = process.env['BUILD_SOURCEVERSION'];
|
let version = process.env['BUILD_SOURCEVERSION'];
|
||||||
|
|
||||||
|
|||||||
+5
-4
@@ -10,26 +10,27 @@ require('events').EventEmitter.defaultMaxListeners = 100;
|
|||||||
|
|
||||||
const gulp = require('gulp');
|
const gulp = require('gulp');
|
||||||
const util = require('./build/lib/util');
|
const util = require('./build/lib/util');
|
||||||
|
const task = require('./build/lib/task');
|
||||||
const path = require('path');
|
const path = require('path');
|
||||||
const compilation = require('./build/lib/compilation');
|
const compilation = require('./build/lib/compilation');
|
||||||
const { monacoTypecheckTask/* , monacoTypecheckWatchTask */ } = require('./build/gulpfile.editor');
|
const { monacoTypecheckTask/* , monacoTypecheckWatchTask */ } = require('./build/gulpfile.editor');
|
||||||
const { compileExtensionsTask, watchExtensionsTask } = require('./build/gulpfile.extensions');
|
const { compileExtensionsTask, watchExtensionsTask } = require('./build/gulpfile.extensions');
|
||||||
|
|
||||||
// Fast compile for development time
|
// Fast compile for development time
|
||||||
const compileClientTask = util.task.series(util.rimraf('out'), compilation.compileTask('src', 'out', false));
|
const compileClientTask = task.series(util.rimraf('out'), compilation.compileTask('src', 'out', false));
|
||||||
compileClientTask.displayName = 'compile-client';
|
compileClientTask.displayName = 'compile-client';
|
||||||
gulp.task(compileClientTask.displayName, compileClientTask);
|
gulp.task(compileClientTask.displayName, compileClientTask);
|
||||||
|
|
||||||
const watchClientTask = util.task.series(util.rimraf('out'), compilation.watchTask('out', false));
|
const watchClientTask = task.series(util.rimraf('out'), compilation.watchTask('out', false));
|
||||||
watchClientTask.displayName = 'watch-client';
|
watchClientTask.displayName = 'watch-client';
|
||||||
gulp.task(watchClientTask.displayName, watchClientTask);
|
gulp.task(watchClientTask.displayName, watchClientTask);
|
||||||
|
|
||||||
// All
|
// All
|
||||||
const compileTask = util.task.parallel(monacoTypecheckTask, compileClientTask, compileExtensionsTask);
|
const compileTask = task.parallel(monacoTypecheckTask, compileClientTask, compileExtensionsTask);
|
||||||
compileTask.displayName = 'compile';
|
compileTask.displayName = 'compile';
|
||||||
gulp.task(compileTask.displayName, compileTask);
|
gulp.task(compileTask.displayName, compileTask);
|
||||||
|
|
||||||
gulp.task('watch', util.task.parallel(/* monacoTypecheckWatchTask, */ watchClientTask, watchExtensionsTask));
|
gulp.task('watch', task.parallel(/* monacoTypecheckWatchTask, */ watchClientTask, watchExtensionsTask));
|
||||||
|
|
||||||
// Default
|
// Default
|
||||||
gulp.task('default', compileTask);
|
gulp.task('default', compileTask);
|
||||||
|
|||||||
Reference in New Issue
Block a user