UNPKG

@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
'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); }