@tsdi/pack
Version:
@tsdi/pack is simple build tasks, base on AOP, Ioc container, via @tsdi. dev build pack activities.
1,314 lines (1,180 loc) • 124 kB
JavaScript
'use strict';
function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
var tslib = _interopDefault(require('tslib'));
var ioc = _interopDefault(require('@tsdi/ioc'));
var stream = _interopDefault(require('stream'));
var platformServer = _interopDefault(require('@tsdi/platform-server'));
var fs = _interopDefault(require('fs'));
var path = _interopDefault(require('path'));
var shelljs = _interopDefault(require('shelljs'));
var globby = _interopDefault(require('globby'));
var boot = _interopDefault(require('@tsdi/boot'));
var activities = _interopDefault(require('@tsdi/activities'));
var minimist = _interopDefault(require('minimist'));
var del = _interopDefault(require('del'));
var components = _interopDefault(require('@tsdi/components'));
var child_process = _interopDefault(require('child_process'));
var unit = _interopDefault(require('@tsdi/unit'));
var unitConsole = _interopDefault(require('@tsdi/unit-console'));
var rxjs = _interopDefault(require('rxjs'));
var operators = _interopDefault(require('rxjs/operators'));
var chokidar = _interopDefault(require('chokidar'));
var rollup = _interopDefault(require('rollup'));
var typescript = _interopDefault(require('typescript'));
var rollupPluginutils = _interopDefault(require('rollup-pluginutils'));
var annotations = _interopDefault(require('@tsdi/annotations'));
var gulpUglifyEs = _interopDefault(require('gulp-uglify-es'));
var through2 = _interopDefault(require('through2'));
var gulpJsonEditor = _interopDefault(require('gulp-json-editor'));
var jsonInPlace = _interopDefault(require('json-in-place'));
var gulpSourcemaps = _interopDefault(require('gulp-sourcemaps'));
var vinylFs = _interopDefault(require('vinyl-fs'));
var gulpTypescript = _interopDefault(require('gulp-typescript'));
var platformServerBoot = _interopDefault(require('@tsdi/platform-server-boot'));
var rollupPluginNodeResolve = _interopDefault(require('rollup-plugin-node-resolve'));
var rollupPluginSourcemaps = _interopDefault(require('rollup-plugin-sourcemaps'));
var rollupPluginCommonjs = _interopDefault(require('rollup-plugin-commonjs'));
var gulpRename = _interopDefault(require('gulp-rename'));
function unwrapExports (x) {
return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
}
function createCommonjsModule(fn, module) {
return module = { exports: {} }, fn(module, module.exports), module.exports;
}
var ITransform = createCommonjsModule(function (module, exports) {
Object.defineProperty(exports, "__esModule", { value: true });
exports.isTransform = void 0;
/**
*check target is transform or not.
*
* @export
* @param {*} target
* @returns {boolean}
*/
function isTransform(target) {
return (ioc.isObject(target) === true) && (target instanceof stream.Stream || (ioc.isFunction(target.pipe) && !ioc.isObservable(target)));
}
exports.isTransform = isTransform;
});
unwrapExports(ITransform);
var ITransform_1 = ITransform.isTransform;
var IPlatformService = createCommonjsModule(function (module, exports) {
Object.defineProperty(exports, "__esModule", { value: true });
exports.PlatformServiceToken = void 0;
exports.PlatformServiceToken = ioc.tokenId('pack_PlatformService');
});
unwrapExports(IPlatformService);
var IPlatformService_1 = IPlatformService.PlatformServiceToken;
var NodeActivityContext_1 = createCommonjsModule(function (module, exports) {
Object.defineProperty(exports, "__esModule", { value: true });
exports.NodeActivityContext = void 0;
/**
* pipe activity context.
*
* @export
* @class NodeActivityContext
* @extends {ActivityContext}
* @implements {IActivityContext<ITransform>}
*/
var NodeActivityContext = /** @class */ (function (_super) {
tslib.__extends(NodeActivityContext, _super);
function NodeActivityContext() {
return _super !== null && _super.apply(this, arguments) || this;
}
NodeActivityContext_1 = NodeActivityContext;
Object.defineProperty(NodeActivityContext.prototype, "platform", {
get: function () {
var _a;
return (_a = this.context.getValue(IPlatformService.PlatformServiceToken)) !== null && _a !== void 0 ? _a : this.getPlatform();
},
enumerable: false,
configurable: true
});
NodeActivityContext.prototype.getPlatform = function () {
var pf = this.injector.getInstance(IPlatformService.PlatformServiceToken, { provide: NodeActivityContext_1, useValue: this });
pf && this.setValue(IPlatformService.PlatformServiceToken, pf);
return pf;
};
NodeActivityContext.ρAnn = function () {
return { "name": "NodeActivityContext", "params": {} };
};
var NodeActivityContext_1;
NodeActivityContext = NodeActivityContext_1 = tslib.__decorate([
ioc.Injectable,
ioc.Refs(activities.Activity, boot.BuildContext)
], NodeActivityContext);
return NodeActivityContext;
}(activities.ActivityContext));
exports.NodeActivityContext = NodeActivityContext;
});
unwrapExports(NodeActivityContext_1);
var NodeActivityContext_2 = NodeActivityContext_1.NodeActivityContext;
var PlatformService_1 = createCommonjsModule(function (module, exports) {
Object.defineProperty(exports, "__esModule", { value: true });
exports.PlatformService = void 0;
var relChkExp = /^(.{1,2}\/?\\?)?$/;
var notExp = /^!/;
var replNodeMdlExp = /(node_modules)[\\\/]/g;
var PlatformService = /** @class */ (function () {
function PlatformService(ctx) {
this.ctx = ctx;
this.packageFile = 'package.json';
}
/**
* get evn args.
*
* @returns {ObjectMap}
* @memberof NodeContext
*/
PlatformService.prototype.getEnvArgs = function () {
if (!this.envArgs) {
this.envArgs = minimist(tslib.__spreadArrays(this.ctx.workflow.args, process.argv.slice(2)));
}
return this.envArgs;
};
PlatformService.prototype.hasArg = function (arg) {
return process.argv.indexOf(arg) > -1 || process.argv.indexOf('--' + arg) > -1;
};
/**
* get root folders.
*
* @param {Express2<string, string, boolean>} [express]
* @returns {string[]}
* @memberof NodeContext
*/
PlatformService.prototype.getRootFolders = function (express) {
return this.getFolders(this.getRootPath(), express);
};
PlatformService.prototype.getCompilerOptions = function (tsconfig) {
var filename = this.toRootPath(tsconfig);
var cfg = platformServer.syncRequire(filename) || {};
return cfg.compilerOptions || {};
};
PlatformService.prototype.getFileName = function (pathName) {
return path.basename(pathName).replace(path.extname(pathName), '');
};
/**
* get folders of path.
*
* @param {string} pathstr
* @param {Express2<string, string, boolean>} [express]
* @returns {string[]}
* @memberof NodeContext
*/
PlatformService.prototype.getFolders = function (pathstr, express) {
pathstr = path.normalize(pathstr);
var dir = fs.readdirSync(pathstr);
var folders = [];
dir.forEach(function (d) {
var sf = path.join(pathstr, d);
var f = fs.lstatSync(sf);
if (f.isDirectory()) {
if (express) {
var fl = express(sf, d);
if (fl) {
folders.push(fl);
}
}
else {
folders.push(sf);
}
}
});
return folders;
};
PlatformService.prototype.getFiles = function (express, options, filter, mapping) {
return tslib.__awaiter(this, void 0, void 0, function () {
var filePaths;
return tslib.__generator(this, function (_a) {
switch (_a.label) {
case 0:
if (!(ioc.isString(express) || ioc.isArray(express))) {
throw Error('input express param type error!');
}
if (ioc.isFunction(options)) {
filter = options;
mapping = filter;
options = {};
}
return [4 /*yield*/, globby(this.normalizeSrc(express), options)];
case 1:
filePaths = (_a.sent()).map(function (e) { return ioc.isString(e) ? e : e.path; });
if (filter) {
filePaths = filePaths.filter(filter);
}
if (mapping) {
return [2 /*return*/, filePaths.map(mapping)];
}
return [2 /*return*/, filePaths];
}
});
});
};
PlatformService.prototype.join = function () {
var paths = [];
for (var _i = 0; _i < arguments.length; _i++) {
paths[_i] = arguments[_i];
}
return path.join.apply(void 0, paths);
};
PlatformService.prototype.normalize = function (url) {
return url ? url.split('\\').join('/') : url;
};
PlatformService.prototype.normalizeSrc = function (src) {
var _this = this;
if (ioc.isString(src)) {
return this.normalize(src);
}
else {
return src.map(function (s) { return _this.normalize(s); });
}
};
PlatformService.prototype.copyFile = function (src, dist, options) {
if (options && options.force) {
shelljs.rm('-f', dist);
shelljs.cp(src, dist);
}
else {
shelljs.cp(src, dist);
}
};
PlatformService.prototype.existsFile = function (filename) {
return fs.existsSync(this.toRootPath(filename));
};
PlatformService.prototype.copyDir = function (src, dist, options) {
if (!fs.existsSync(dist)) {
shelljs.mkdir('-p', dist);
}
if (options && options.force) {
shelljs.rm('-rf', path.normalize(path.join(dist, '/')));
shelljs.mkdir('-p', path.normalize(path.join(dist, '/')));
shelljs.cp('-R', path.normalize(src + '/*'), path.normalize(path.join(dist, '/')));
}
else {
shelljs.cp('-R', path.normalize(src + '/*'), path.normalize(path.join(dist, '/')));
}
};
PlatformService.prototype.copyTo = function (filePath, dist) {
return tslib.__awaiter(this, void 0, void 0, function () {
var outFile;
return tslib.__generator(this, function (_a) {
outFile = path.join(dist, filePath.replace(replNodeMdlExp, ''));
return [2 /*return*/, new Promise(function (res) {
if (!fs.existsSync(outFile)) {
if (!fs.existsSync(path.dirname(outFile))) {
shelljs.mkdir('-p', path.dirname(outFile));
}
shelljs.cp('-R', path.join(filePath), outFile);
res(true);
}
})];
});
});
};
PlatformService.prototype.del = function (src, opts) {
return del(this.normalizeSrc(src), opts);
};
/**
* to root path.
*
* @param {string} pathstr
* @returns {string}
* @memberof NodeContext
*/
PlatformService.prototype.toRootPath = function (pathstr) {
var root = this.getRootPath();
return root ? platformServer.toAbsolutePath(root, pathstr) : this.normalize(pathstr);
};
/**
* convert path to relative root path.
*
* @param {string} pathstr
* @returns {string}
* @memberof NodeActivityContext
*/
PlatformService.prototype.relativeRoot = function (pathstr) {
if (relChkExp.test(pathstr)) {
return pathstr;
}
var fullpath = this.toRootPath(pathstr);
return path.relative(this.getRootPath(), fullpath) || '.';
};
PlatformService.prototype.getRootPath = function () {
return this.ctx.baseURL;
};
PlatformService.prototype.toRootSrc = function (src) {
var _this = this;
var root = this.getRootPath();
if (root) {
if (ioc.isString(src)) {
return this.prefixSrc(root, src);
}
else {
return src.map(function (s) { return _this.prefixSrc(root, s); });
}
}
return src;
};
PlatformService.prototype.relativePath = function (path1, path2) {
return path.relative(path1, path2);
};
PlatformService.prototype.prefixSrc = function (root, strSrc) {
var prefix = '';
if (notExp.test(strSrc)) {
prefix = '!';
strSrc = strSrc.substring(1, strSrc.length);
}
return prefix + platformServer.toAbsolutePath(root, strSrc);
};
/**
* get package.
*
* @returns {*}
* @memberof NodeContext
*/
PlatformService.prototype.getPackage = function () {
if (!this._package) {
var filename = this.toRootPath(this.packageFile);
this._package = platformServer.syncRequire(filename);
}
return this._package;
};
/**
* get package version.
*
* @returns {string}
* @memberof NodeContext
*/
PlatformService.prototype.getPackageVersion = function () {
var packageCfg = this.getPackage();
if (!packageCfg) {
return '';
}
return packageCfg.version || '';
};
/**
* get module version.
*
* @param {string} name
* @param {boolean} [dependencies=false]
* @returns {string}
* @memberof NodeContext
*/
PlatformService.prototype.getModuleVersion = function (name, dependencies) {
if (dependencies === void 0) { dependencies = false; }
var packageCfg = this.getPackage();
if (!packageCfg) {
return '';
}
var version = '';
if (packageCfg.dependencies) {
version = packageCfg.dependencies[name];
}
if (!dependencies && !version && packageCfg.devDependencies) {
version = packageCfg.devDependencies[name];
}
return version || '';
};
PlatformService.ρAnn = function () {
return { "name": "PlatformService", "params": { "constructor": ["ctx"], "hasArg": ["arg"], "getRootFolders": ["express"], "getCompilerOptions": ["tsconfig"], "getFileName": ["pathName"], "getFolders": ["pathstr", "express"], "getFiles": ["express", "options", "filter", "mapping"], "join": ["paths"], "normalize": ["url"], "normalizeSrc": ["src"], "copyFile": ["src", "dist", "options"], "existsFile": ["filename"], "copyDir": ["src", "dist", "options"], "copyTo": ["filePath", "dist"], "del": ["src", "opts"], "toRootPath": ["pathstr"], "relativeRoot": ["pathstr"], "toRootSrc": ["src"], "relativePath": ["path1", "path2"], "prefixSrc": ["root", "strSrc"], "getModuleVersion": ["name", "dependencies"] } };
};
PlatformService = tslib.__decorate([
ioc.Injectable(IPlatformService.PlatformServiceToken),
tslib.__metadata("design:paramtypes", [NodeActivityContext_1.NodeActivityContext])
], PlatformService);
return PlatformService;
}());
exports.PlatformService = PlatformService;
});
unwrapExports(PlatformService_1);
var PlatformService_2 = PlatformService_1.PlatformService;
var NodeActivity_1 = createCommonjsModule(function (module, exports) {
Object.defineProperty(exports, "__esModule", { value: true });
exports.NodeActivity = void 0;
/**
* activity for server side.
*
* @export
* @abstract
* @class NodeActivity
* @extends {Activity<T>}
* @template T
*/
var NodeActivity = /** @class */ (function (_super) {
tslib.__extends(NodeActivity, _super);
function NodeActivity() {
return _super !== null && _super.apply(this, arguments) || this;
}
NodeActivity.ρAnn = function () {
return { "name": "NodeActivity" };
};
return NodeActivity;
}(activities.Activity));
exports.NodeActivity = NodeActivity;
});
unwrapExports(NodeActivity_1);
var NodeActivity_2 = NodeActivity_1.NodeActivity;
var CleanActivity_1 = createCommonjsModule(function (module, exports) {
Object.defineProperty(exports, "__esModule", { value: true });
exports.CleanActivity = void 0;
/**
* Source activity.
*
* @export
* @class CleanActivity
* @extends {Activity}
*/
var CleanActivity = /** @class */ (function (_super) {
tslib.__extends(CleanActivity, _super);
function CleanActivity() {
return _super !== null && _super.apply(this, arguments) || this;
}
CleanActivity.prototype.execute = function (ctx) {
return tslib.__awaiter(this, void 0, void 0, function () {
var clean;
return tslib.__generator(this, function (_a) {
switch (_a.label) {
case 0: return [4 /*yield*/, ctx.resolveExpression(this.clean)];
case 1:
clean = _a.sent();
if (!clean) return [3 /*break*/, 3];
return [4 /*yield*/, ctx.platform.del(ctx.platform.normalizeSrc(clean), { force: true, cwd: ctx.platform.getRootPath() })];
case 2:
_a.sent();
_a.label = 3;
case 3: return [2 /*return*/];
}
});
});
};
CleanActivity.ρAnn = function () {
return { "name": "CleanActivity", "params": { "execute": ["ctx"] } };
};
tslib.__decorate([
components.Input(),
tslib.__metadata("design:type", Object)
], CleanActivity.prototype, "clean", void 0);
CleanActivity = tslib.__decorate([
activities.Task('clean, [clean]')
], CleanActivity);
return CleanActivity;
}(NodeActivity_1.NodeActivity));
exports.CleanActivity = CleanActivity;
});
unwrapExports(CleanActivity_1);
var CleanActivity_2 = CleanActivity_1.CleanActivity;
var ServeActivity_1 = createCommonjsModule(function (module, exports) {
Object.defineProperty(exports, "__esModule", { value: true });
exports.ServeActivity = void 0;
/**
* Serve activity.
*
* @export
* @class ServeActivity
* @extends {BuildActivity}
*/
var ServeActivity = /** @class */ (function (_super) {
tslib.__extends(ServeActivity, _super);
function ServeActivity() {
return _super !== null && _super.apply(this, arguments) || this;
}
/**
* before run sequence.
*
* @protected
* @returns {Promise<void>}
* @memberof ServeActivity
*/
ServeActivity.prototype.execute = function () {
return tslib.__awaiter(this, void 0, void 0, function () {
return tslib.__generator(this, function (_a) {
return [2 /*return*/];
});
});
};
ServeActivity.ρAnn = function () {
return { "name": "ServeActivity", "params": {} };
};
tslib.__decorate([
components.Input(),
tslib.__metadata("design:type", Number)
], ServeActivity.prototype, "port", void 0);
tslib.__decorate([
components.Input(),
tslib.__metadata("design:type", Object)
], ServeActivity.prototype, "dirs", void 0);
ServeActivity = tslib.__decorate([
activities.Task('serve')
], ServeActivity);
return ServeActivity;
}(NodeActivity_1.NodeActivity));
exports.ServeActivity = ServeActivity;
});
unwrapExports(ServeActivity_1);
var ServeActivity_2 = ServeActivity_1.ServeActivity;
var ShellActivity_1 = createCommonjsModule(function (module, exports) {
Object.defineProperty(exports, "__esModule", { value: true });
exports.ShellActivity = void 0;
var preWordExp = /^[a-zA-Z]/;
/**
* Shell Task
*
* @class ShellActivity
* @implements {ITask}
*/
var ShellActivity = /** @class */ (function (_super) {
tslib.__extends(ShellActivity, _super);
function ShellActivity() {
return _super !== null && _super.apply(this, arguments) || this;
}
ShellActivity.prototype.execute = function (ctx) {
return tslib.__awaiter(this, void 0, void 0, function () {
var shell, options, args, argstrs, allowError, shells;
var _this = this;
return tslib.__generator(this, function (_a) {
switch (_a.label) {
case 0: return [4 /*yield*/, ctx.resolveExpression(this.shell)];
case 1:
shell = _a.sent();
return [4 /*yield*/, ctx.resolveExpression(this.options)];
case 2:
options = _a.sent();
return [4 /*yield*/, ctx.resolveExpression(this.args)];
case 3:
args = _a.sent();
argstrs = ioc.isArray(args) ? args : this.formatArgs(args);
return [4 /*yield*/, ctx.resolveExpression(this.allowError)];
case 4:
allowError = _a.sent();
shells = ioc.isArray(shell) ? shell : [shell];
if (!this.parallel) return [3 /*break*/, 6];
return [4 /*yield*/, Promise.all(shells.map(function (sh) { return _this.execShell(sh, argstrs, options, allowError); }))];
case 5:
_a.sent();
return [3 /*break*/, 8];
case 6: return [4 /*yield*/, ioc.PromiseUtil.step(shells.map(function (sh) { return function () { return _this.execShell(sh, argstrs, options, allowError); }; }))];
case 7:
_a.sent();
_a.label = 8;
case 8: return [2 /*return*/];
}
});
});
};
ShellActivity.prototype.formatShell = function (shell, args) {
if (args.length) {
return shell + ' ' + args.join(' ');
}
return shell;
};
ShellActivity.prototype.formatArgs = function (args) {
var _this = this;
var strArgs = [];
ioc.lang.forIn(args, function (val, k) {
if (k === 'root' || !preWordExp.test(k)) {
return;
}
if (ioc.isArray(val)) {
strArgs.push("--" + k + " " + val.join(','));
}
else if (!ioc.isNullOrUndefined(val)) {
var arg = _this.formatArg(val, k, args);
if (arg) {
strArgs.push(arg);
}
}
});
return strArgs;
};
ShellActivity.prototype.formatArg = function (arg, key, args) {
if (ioc.isBoolean(arg) && arg) {
return "--" + key;
}
if (!ioc.isNullOrUndefined(arg)) {
return "--" + key + " " + arg;
}
return '';
};
ShellActivity.prototype.execShell = function (cmd, args, options, allowError) {
var _this = this;
cmd = this.formatShell(cmd, args);
if (!cmd) {
return Promise.resolve();
}
return new Promise(function (resolve, reject) {
var shell = child_process.exec(cmd, options, function (err, stdout, stderr) {
if (err) {
reject(err);
}
else {
resolve(stdout);
}
});
shell.stdout.on('data', function (data) {
_this.checkStdout(data, resolve, reject);
});
shell.stderr.on('data', function (err) {
_this.checkStderr(err, reject, allowError);
});
shell.on('exit', function (code) {
var msg = "exit child process with code\uFF1A" + code + " ";
console.log(msg);
if (code > 0) {
reject(new Error(msg));
}
});
});
};
ShellActivity.prototype.checkStderr = function (err, reject, allowError) {
console.error(err);
if (allowError === false) {
reject(err);
}
};
ShellActivity.prototype.checkStdout = function (data, resolve, reject) {
console.log(data);
};
ShellActivity.ρAnn = function () {
return { "name": "ShellActivity", "params": { "execute": ["ctx"], "formatShell": ["shell", "args"], "formatArgs": ["args"], "formatArg": ["arg", "key", "args"], "execShell": ["cmd", "args", "options", "allowError"], "checkStderr": ["err", "reject", "allowError"], "checkStdout": ["data", "resolve", "reject"] } };
};
tslib.__decorate([
components.Input(),
tslib.__metadata("design:type", Object)
], ShellActivity.prototype, "shell", void 0);
tslib.__decorate([
components.Input(),
tslib.__metadata("design:type", Object)
], ShellActivity.prototype, "args", void 0);
tslib.__decorate([
components.Input(),
tslib.__metadata("design:type", Object)
], ShellActivity.prototype, "options", void 0);
tslib.__decorate([
components.Input(),
tslib.__metadata("design:type", Object)
], ShellActivity.prototype, "allowError", void 0);
tslib.__decorate([
components.Input(),
tslib.__metadata("design:type", Boolean)
], ShellActivity.prototype, "parallel", void 0);
ShellActivity = tslib.__decorate([
activities.Task('shell')
], ShellActivity);
return ShellActivity;
}(NodeActivity_1.NodeActivity));
exports.ShellActivity = ShellActivity;
});
unwrapExports(ShellActivity_1);
var ShellActivity_2 = ShellActivity_1.ShellActivity;
var UnitTestActivity_1 = createCommonjsModule(function (module, exports) {
Object.defineProperty(exports, "__esModule", { value: true });
exports.UnitTestActivity = void 0;
var UnitTestActivity = /** @class */ (function (_super) {
tslib.__extends(UnitTestActivity, _super);
function UnitTestActivity() {
return _super !== null && _super.apply(this, arguments) || this;
}
UnitTestActivity.prototype.execute = function (ctx) {
return tslib.__awaiter(this, void 0, void 0, function () {
var test, options;
return tslib.__generator(this, function (_a) {
switch (_a.label) {
case 0: return [4 /*yield*/, ctx.resolveExpression(this.test)];
case 1:
test = _a.sent();
return [4 /*yield*/, ctx.resolveExpression(this.options)];
case 2:
options = _a.sent();
if (!test) return [3 /*break*/, 4];
return [4 /*yield*/, unit.runTest(test, tslib.__assign({ baseURL: ctx.platform.getRootPath() }, options), unitConsole.ConsoleReporter)];
case 3:
_a.sent();
_a.label = 4;
case 4: return [2 /*return*/];
}
});
});
};
UnitTestActivity.ρAnn = function () {
return { "name": "UnitTestActivity", "params": { "execute": ["ctx"] } };
};
tslib.__decorate([
components.Input(),
tslib.__metadata("design:type", Object)
], UnitTestActivity.prototype, "test", void 0);
tslib.__decorate([
components.Input('testOptions'),
tslib.__metadata("design:type", Object)
], UnitTestActivity.prototype, "options", void 0);
UnitTestActivity = tslib.__decorate([
activities.Task('test, [test]')
], UnitTestActivity);
return UnitTestActivity;
}(NodeActivity_1.NodeActivity));
exports.UnitTestActivity = UnitTestActivity;
});
unwrapExports(UnitTestActivity_1);
var UnitTestActivity_2 = UnitTestActivity_1.UnitTestActivity;
var WatchActivity_1 = createCommonjsModule(function (module, exports) {
Object.defineProperty(exports, "__esModule", { value: true });
exports.WatchActivity = void 0;
/**
* watch activity.
*
* @export
* @class WatchActivity
* @extends {BuildHandleActivity}
*/
var WatchActivity = /** @class */ (function (_super) {
tslib.__extends(WatchActivity, _super);
function WatchActivity() {
return _super !== null && _super.apply(this, arguments) || this;
}
WatchActivity.prototype.execute = function (ctx) {
return tslib.__awaiter(this, void 0, void 0, function () {
var watchSrc, options, watcher, defer;
var _this = this;
return tslib.__generator(this, function (_a) {
watchSrc = this.watch;
options = this.options;
watcher = chokidar.watch(ctx.platform.normalizeSrc(watchSrc), Object.assign({ ignored: /[\/\\]\./, ignoreInitial: true, cwd: ctx.platform.getRootPath() }, options));
defer = ioc.PromiseUtil.defer();
rxjs.fromEventPattern(function (handler) {
watcher.on('add', function (paths) { return handler(paths); });
watcher.on('change', function (paths) { return handler(paths); });
watcher.on('unlink', function (paths) { return handler(paths); });
watcher.on('unlinkDir', function (paths) { return handler(paths); });
}, function (handler) {
watcher.close();
})
.pipe(operators.bufferTime(300), operators.filter(function (c) { return c.length > 0; }))
.subscribe(function (chg) {
ctx.getExector().runActivity(_this.body);
});
defer.promise;
return [2 /*return*/];
});
});
};
WatchActivity.ρAnn = function () {
return { "name": "WatchActivity", "params": { "execute": ["ctx"] } };
};
tslib.__decorate([
components.Input(),
tslib.__metadata("design:type", Object)
], WatchActivity.prototype, "watch", void 0);
tslib.__decorate([
components.Input('watchOptions'),
tslib.__metadata("design:type", Object)
], WatchActivity.prototype, "options", void 0);
tslib.__decorate([
components.Input({ bindingType: 'dynamic' }),
tslib.__metadata("design:type", Object)
], WatchActivity.prototype, "body", void 0);
WatchActivity = tslib.__decorate([
activities.Task('watch')
], WatchActivity);
return WatchActivity;
}(NodeActivity_1.NodeActivity));
exports.WatchActivity = WatchActivity;
});
unwrapExports(WatchActivity_1);
var WatchActivity_2 = WatchActivity_1.WatchActivity;
var tasks = createCommonjsModule(function (module, exports) {
Object.defineProperty(exports, "__esModule", { value: true });
tslib.__exportStar(CleanActivity_1, exports);
tslib.__exportStar(ServeActivity_1, exports);
tslib.__exportStar(ShellActivity_1, exports);
tslib.__exportStar(UnitTestActivity_1, exports);
tslib.__exportStar(WatchActivity_1, exports);
});
unwrapExports(tasks);
var RollupActivity_1 = createCommonjsModule(function (module, exports) {
Object.defineProperty(exports, "__esModule", { value: true });
exports.RollupActivity = void 0;
/**
* rollup activity.
*
* @export
* @class RollupActivity
* @extends {NodeActivity<void>}
*/
var RollupActivity = /** @class */ (function (_super) {
tslib.__extends(RollupActivity, _super);
function RollupActivity() {
return _super !== null && _super.apply(this, arguments) || this;
}
RollupActivity.prototype.execute = function (ctx) {
return tslib.__awaiter(this, void 0, void 0, function () {
var opts;
var _this = this;
return tslib.__generator(this, function (_a) {
switch (_a.label) {
case 0: return [4 /*yield*/, ctx.resolveExpression(this.options)];
case 1:
opts = _a.sent();
opts = opts || { input: '' };
return [4 /*yield*/, Promise.all(this.getInputProps()
.map(function (n) { return tslib.__awaiter(_this, void 0, void 0, function () {
var val;
return tslib.__generator(this, function (_a) {
switch (_a.label) {
case 0: return [4 /*yield*/, ctx.resolveExpression(this[n])];
case 1:
val = _a.sent();
this.setOptions(ctx, opts, n, val);
return [2 /*return*/];
}
});
}); }))];
case 2:
_a.sent();
return [4 /*yield*/, Promise.all((ioc.isArray(opts.output) ? opts.output : [opts.output]).map(function (output) { return tslib.__awaiter(_this, void 0, void 0, function () {
var sourceMap, globals, bundle;
return tslib.__generator(this, function (_a) {
switch (_a.label) {
case 0:
if (!this.sourcemap) return [3 /*break*/, 2];
return [4 /*yield*/, ctx.resolveExpression(this.sourcemap)];
case 1:
sourceMap = _a.sent();
if (sourceMap) {
output.sourcemap = ioc.isString(sourceMap) ? true : sourceMap;
}
_a.label = 2;
case 2:
if (!this.globals) return [3 /*break*/, 4];
return [4 /*yield*/, ctx.resolveExpression(this.globals)];
case 3:
globals = _a.sent();
output.globals = globals;
return [3 /*break*/, 5];
case 4:
output.globals = {};
_a.label = 5;
case 5:
if (ioc.isArray(opts.external) && opts.external.length) {
opts.external = this.vailfExternal(opts.external);
opts.external.forEach(function (k) {
if (output.globals[k]) {
output.globals[k] = k;
}
});
}
if (output.file) {
output.file = ctx.platform.toRootPath(output.file);
}
if (output.dir) {
output.dir = ctx.platform.toRootPath(output.dir);
}
if (!output.name && output.file) {
output.name = ctx.platform.getFileName(output.file);
}
return [4 /*yield*/, this.resolvePlugins(ctx, opts)];
case 6:
_a.sent();
if (opts.plugins) {
opts.plugins = opts.plugins.filter(function (p) { return p; });
}
return [4 /*yield*/, rollup.rollup(opts)];
case 7:
bundle = _a.sent();
return [4 /*yield*/, bundle.write(output)];
case 8:
_a.sent();
return [2 /*return*/];
}
});
}); })).catch(function (err) {
console.error(err);
throw err;
})];
case 3:
_a.sent();
return [2 /*return*/];
}
});
});
};
RollupActivity.prototype.getInputProps = function () {
return ['input', 'output', 'plugins', 'external', 'cache', 'watch'];
};
RollupActivity.prototype.setOptions = function (ctx, opts, key, val) {
if (key === 'input') {
val = ctx.platform.toRootSrc(val);
}
if (ioc.isArray(val) && val.length) {
val = val.filter(function (f) { return !ioc.isNullOrUndefined(f); });
if (val.length) {
opts[key] = val;
}
}
else if (val) {
opts[key] = val;
}
};
RollupActivity.prototype.vailfExternal = function (external) {
return external || [];
};
RollupActivity.prototype.resolvePlugins = function (ctx, opts) {
return tslib.__awaiter(this, void 0, void 0, function () {
return tslib.__generator(this, function (_a) {
return [2 /*return*/];
});
});
};
RollupActivity.ρAnn = function () {
return { "name": "RollupActivity", "params": { "execute": ["ctx"], "setOptions": ["ctx", "opts", "key", "val"], "vailfExternal": ["external"], "resolvePlugins": ["ctx", "opts"] } };
};
tslib.__decorate([
components.Input(),
tslib.__metadata("design:type", Object)
], RollupActivity.prototype, "input", void 0);
tslib.__decorate([
components.Input(),
tslib.__metadata("design:type", Object)
], RollupActivity.prototype, "output", void 0);
tslib.__decorate([
components.Input(),
tslib.__metadata("design:type", Object)
], RollupActivity.prototype, "plugins", void 0);
tslib.__decorate([
components.Input(),
tslib.__metadata("design:type", Object)
], RollupActivity.prototype, "external", void 0);
tslib.__decorate([
components.Input(),
tslib.__metadata("design:type", Object)
], RollupActivity.prototype, "globals", void 0);
tslib.__decorate([
components.Input(),
tslib.__metadata("design:type", Object)
], RollupActivity.prototype, "sourcemap", void 0);
tslib.__decorate([
components.Input(),
tslib.__metadata("design:type", Object)
], RollupActivity.prototype, "cache", void 0);
tslib.__decorate([
components.Input(),
tslib.__metadata("design:type", Object)
], RollupActivity.prototype, "options", void 0);
tslib.__decorate([
components.Input(),
tslib.__metadata("design:type", Object)
], RollupActivity.prototype, "watch", void 0);
RollupActivity = tslib.__decorate([
activities.Task('rollup')
], RollupActivity);
return RollupActivity;
}(NodeActivity_1.NodeActivity));
exports.RollupActivity = RollupActivity;
});
unwrapExports(RollupActivity_1);
var RollupActivity_2 = RollupActivity_1.RollupActivity;
var exps = createCommonjsModule(function (module, exports) {
Object.defineProperty(exports, "__esModule", { value: true });
exports.jsFileExp = exports.tsFileExp = exports.esmChkExp = exports.mapexp = exports.tsdexp = void 0;
exports.tsdexp = /.d.ts$/;
exports.mapexp = /.map$/;
exports.esmChkExp = /^esm/;
exports.tsFileExp = /.ts$/;
exports.jsFileExp = /.js$/;
});
unwrapExports(exps);
var exps_1 = exps.jsFileExp;
var exps_2 = exps.tsFileExp;
var exps_3 = exps.esmChkExp;
var exps_4 = exps.mapexp;
var exps_5 = exps.tsdexp;
var tsComplie = createCommonjsModule(function (module, exports) {
Object.defineProperty(exports, "__esModule", { value: true });
exports.TsComplie = void 0;
var TsComplie = /** @class */ (function () {
function TsComplie() {
}
TsComplie.prototype.compile = function (options, fileName, sourceText, annotation) {
var host = typescript.createCompilerHost(options);
var outputs = new Map();
console.log(fileName);
var tempSourceFile = typescript.createSourceFile(fileName, annotation ? annotations.iocAnnotations(sourceText) : sourceText, typescript.ScriptTarget.Latest, false, typescript.ScriptKind.TS);
host.getSourceFile = function (name, languageVersion, error) {
if (name === fileName) {
return tempSourceFile;
}
};
host.writeFile = function (fileName, contents) { return outputs.set(fileName, contents); };
var old = this.program;
var program = this.program = typescript.createProgram([fileName], options, host, old);
var emitResult = program.emit();
var allDiagnostics = program.getSyntacticDiagnostics(tempSourceFile).concat(emitResult.diagnostics);
if (!this.validateDiagnostics(allDiagnostics, true)) {
return {
code: null,
map: null,
emitSkipped: true,
};
}
var emitSkipped = emitResult.emitSkipped;
var code, map = null, dts;
outputs.forEach(function (source, f) {
if (exps.tsdexp.test(f)) {
dts = source;
}
else if (exps.jsFileExp.test(f)) {
code = source;
}
else if (exps.mapexp.test(f)) {
map = source;
}
});
outputs.clear();
return { code: code, map: map, dts: dts, emitSkipped: emitSkipped };
};
TsComplie.prototype.transpileModule = function (compilerOptions, fileName, code, annotation) {
var transformed = typescript.transpileModule(annotation ? annotations.iocAnnotations(code) : code, {
fileName: fileName,
reportDiagnostics: true,
compilerOptions: compilerOptions,
transformers: {
afterDeclarations: []
}
});
// All errors except `Cannot compile modules into 'es6' when targeting 'ES5' or lower.`
var diagnostics = transformed.diagnostics ?
transformed.diagnostics.filter(function (diagnostic) { return diagnostic.code !== 1204; }) : [];
if (!this.validateDiagnostics(diagnostics, true)) {
throw new Error("There were TypeScript errors transpiling");
}
return {
code: transformed.outputText,
// Rollup expects `map` to be an object so we must parse the string
map: transformed.sourceMapText ? JSON.parse(transformed.sourceMapText) : null
};
};
TsComplie.prototype.parseTsconfig = function (projectDirectory, tsconfig, settings) {
var compilerOptions;
// let projectReferences: ReadonlyArray<ProjectReference>;
var settingsResult = typescript.convertCompilerOptionsFromJson(settings || {}, projectDirectory);
// if (settingsResult.errors) {
// throw settingsResult.errors;
// }
compilerOptions = settingsResult.options;
var tsConfig = typescript.readConfigFile(tsconfig, typescript.sys.readFile);
if (tsConfig.error) {
console.log(tsConfig.error.messageText);
}
var parsed = typescript.parseJsonConfigFileContent(tsConfig.config || {}, this.getTsconfigSystem(typescript.sys), path.resolve(projectDirectory), compilerOptions, tsconfig);
this.validateDiagnostics(parsed.errors);
return parsed;
};
TsComplie.prototype.getTsconfigSystem = function (sys) {
return {
useCaseSensitiveFileNames: sys.useCaseSensitiveFileNames,
readDirectory: function () { return []; },
fileExists: sys.fileExists,
readFile: sys.readFile
};
};
TsComplie.prototype.validateDiagnostics = function (diagnostics, strict) {
// Print error diagnostics.
var hasError = diagnostics.some(function (diag) { return diag.category === typescript.DiagnosticCategory.Error; });
if (hasError) {
// Throw only if we're in strict mode, otherwise return original content.
if (strict) {
var errorMessages = typescript.formatDiagnostics(diagnostics, {
getCurrentDirectory: function () { return typescript.sys.getCurrentDirectory(); },
getNewLine: function () { return typescript.sys.newLine; },
getCanonicalFileName: function (f) { return f; },
});
throw new Error("\n TS failed with the following error messages:\n " + errorMessages + "\n ");
}
else {
return false;
}
}
return true;
};
TsComplie.ρAnn = function () {
return { "name": "TsComplie", "params": { "compile": ["options", "fileName", "sourceText", "annotation"], "transpileModule": ["compilerOptions", "fileName", "code", "annotation"], "parseTsconfig": ["projectDirectory", "tsconfig", "settings"], "getTsconfigSystem": ["sys"], "validateDiagnostics": ["diagnostics", "strict"] } };
};
TsComplie = tslib.__decorate([
ioc.Injectable()
], TsComplie);
return TsComplie;
}());
exports.TsComplie = TsComplie;
});
unwrapExports(tsComplie);
var tsComplie_1 = tsComplie.TsComplie;
var RollupTsActivity_1 = createCommonjsModule(function (module, exports) {
Object.defineProperty(exports, "__esModule", { value: true });
exports.RollupTsActivity = void 0;
var TSLIB_ID = '\0tslib';
var RollupTsActivity = /** @class */ (function (_super) {
tslib.__extends(RollupTsActivity, _super);
function RollupTsActivity() {
return _super !== null && _super.apply(this, arguments) || this;
}
RollupTsActivity.prototype.execute = function (ctx) {
return tslib.__awaiter(this, void 0, void 0, function () {
return tslib.__generator(this, function (_a) {
switch (_a.label) {
case 0:
this.exeCache = {};
return [4 /*yield*/, _super.prototype.execute.call(this, ctx)];
case 1:
_a.sent();
delete this.exeCache;
return [2 /*return*/];
}
});
});
};
RollupTsActivity.prototype.getInputProps = function () {
return tslib.__spreadArrays(_super.prototype.getInputProps.call(this), ['beforeCompile', 'afterCompile']);
};
RollupTsActivity.prototype.vailfExternal = function (external) {
var _this = this;
if (this.includeLib && this.includeLib.length) {
return (external || []).filter(function (ex) { return _this.includeLib.indexOf(ex) < 0; });
}
return _super.prototype.vailfExternal.call(this, external);
};
RollupTsActivity.prototype.setOptions = function (ctx, opts, key, val) {
if (key === 'beforeCompile') {
this.exeCache.beforeCompile = val;
}
else if (key === 'afterCompile') {
this.exeCache.afterCompile = val;
}
else {
_super.prototype.setOptions.call(this, ctx, opts, key, val);
}
};
RollupTsActivity.prototype.resolvePlugins = function (ctx, opts) {
return tslib.__awaiter(this, void 0, void 0, function () {
var plugins, _a, beforeCompile, afterCompile, compile, _b, _c, ugfy, uglify;
return tslib.__generator(this, function (_d) {
switch (_d.label) {
case 0:
plugins = [];
_a = this.exeCache, beforeCompile = _a.beforeCompile, afterCompile = _a.afterCompile;
if (beforeCompile && beforeCompile.length) {
plugins.push.apply(plugins, beforeCompile);
}
if (!this.tscompile) return [3 /*break*/, 2];
return [4 /*yield*/, ctx.resolveExpression(this.tscompile)];
case 1:
compile = _d.sent();
plugins.push(compile);
return [3 /*break*/, 4];
case 2:
_c = (_b = plugins).push;
return [4 /*yield*/, this.getDefaultTsCompiler(ctx)];
case 3:
_c.apply(_b, [_d.sent()]);
_d.label = 4;
case 4:
if (opts.plugins && opts.plugins.length) {
plugins.push.apply(plugins, opts.plugins);
}