UNPKG

@tsdi/pack

Version:

@tsdi/pack is simple build tasks, base on AOP, Ioc container, via @tsdi. dev build pack activities.

229 lines (227 loc) 11.1 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.RollupTsActivity = void 0; var tslib_1 = require("tslib"); var ioc_1 = require("@tsdi/ioc"); var platform_server_1 = require("@tsdi/platform-server"); var components_1 = require("@tsdi/components"); var activities_1 = require("@tsdi/activities"); var typescript_1 = require("typescript"); var rollup_pluginutils_1 = require("rollup-pluginutils"); var RollupActivity_1 = require("./RollupActivity"); var ts_complie_1 = require("../ts-complie"); var exps_1 = require("../exps"); var TSLIB_ID = '\0tslib'; var RollupTsActivity = /** @class */ (function (_super) { tslib_1.__extends(RollupTsActivity, _super); function RollupTsActivity() { return _super !== null && _super.apply(this, arguments) || this; } RollupTsActivity.prototype.execute = function (ctx) { return tslib_1.__awaiter(this, void 0, void 0, function () { return tslib_1.__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_1.__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_1.__awaiter(this, void 0, void 0, function () { var plugins, _a, beforeCompile, afterCompile, compile, _b, _c, ugfy, uglify; return tslib_1.__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); } if (afterCompile && afterCompile.length) { plugins.push.apply(plugins, afterCompile); } if (!this.uglify) return [3 /*break*/, 6]; return [4 /*yield*/, ctx.resolveExpression(this.uglify)]; case 5: ugfy = _d.sent(); uglify = platform_server_1.syncRequire('rollup-plugin-uglify'); if (ioc_1.isBoolean(ugfy)) { ugfy && plugins.push(uglify()); } else { plugins.push(ugfy); } _d.label = 6; case 6: opts.plugins = plugins; return [2 /*return*/]; } }); }); }; RollupTsActivity.prototype.getDefaultTsCompiler = function (ctx) { return tslib_1.__awaiter(this, void 0, void 0, function () { var tslib, include, exclude, annotation, filter, compile, projectDirectory, settings, tsconfig, parsed, allImportedFiles; return tslib_1.__generator(this, function (_a) { switch (_a.label) { case 0: tslib = platform_server_1.syncRequire('tslib'); return [4 /*yield*/, ctx.resolveExpression(this.include)]; case 1: include = _a.sent(); return [4 /*yield*/, ctx.resolveExpression(this.exclude)]; case 2: exclude = _a.sent(); return [4 /*yield*/, ctx.resolveExpression(this.annotation)]; case 3: annotation = _a.sent(); filter = rollup_pluginutils_1.createFilter(include, exclude); compile = ctx.injector.get(ts_complie_1.TsComplie); projectDirectory = ctx.platform.getRootPath(); return [4 /*yield*/, ctx.resolveExpression(this.compileOptions)]; case 4: settings = _a.sent(); return [4 /*yield*/, ctx.resolveExpression(this.tsconfig)]; case 5: tsconfig = _a.sent(); tsconfig = ctx.platform.toRootPath(tsconfig); parsed = compile.parseTsconfig(projectDirectory, tsconfig, settings); allImportedFiles = new Set(); return [2 /*return*/, { name: 'typescript', resolveId: function (importee, importer) { if (importee === 'tslib') { return TSLIB_ID; } if (!importer) { return null; } importer = ctx.platform.normalize(importer); if (!allImportedFiles.has(importer)) { return; } var result = typescript_1.nodeModuleNameResolver(importee, importer, parsed.options, typescript_1.sys); if (result.resolvedModule && result.resolvedModule.resolvedFileName) { if (exps_1.tsdexp.test(result.resolvedModule.resolvedFileName || '')) { return null; } return result.resolvedModule.resolvedFileName; } return null; }, load: function (id) { if (id === TSLIB_ID) { return tslib; } }, transform: function (code, id) { if (!filter(id)) { return undefined; } allImportedFiles.add(id.split('\\').join('/')); return compile.transpileModule(parsed.options, id, code, annotation); } }]; } }); }); }; RollupTsActivity.ρAnn = function () { return { "name": "RollupTsActivity", "params": { "execute": ["ctx"], "vailfExternal": ["external"], "setOptions": ["ctx", "opts", "key", "val"], "resolvePlugins": ["ctx", "opts"], "getDefaultTsCompiler": ["ctx"] } }; }; tslib_1.__decorate([ components_1.Input('beforeCompilePlugins'), tslib_1.__metadata("design:type", Object) ], RollupTsActivity.prototype, "beforeCompile", void 0); tslib_1.__decorate([ components_1.Input(), tslib_1.__metadata("design:type", Object) ], RollupTsActivity.prototype, "tscompile", void 0); tslib_1.__decorate([ components_1.Input('afterCompilePlugins'), tslib_1.__metadata("design:type", Object) ], RollupTsActivity.prototype, "afterCompile", void 0); tslib_1.__decorate([ components_1.Input(), tslib_1.__metadata("design:type", Array) ], RollupTsActivity.prototype, "includeLib", void 0); tslib_1.__decorate([ components_1.Input(), tslib_1.__metadata("design:type", Object) ], RollupTsActivity.prototype, "annotation", void 0); tslib_1.__decorate([ components_1.Input('include', ['*.ts+(|x)', '**/*.ts+(|x)']), tslib_1.__metadata("design:type", Object) ], RollupTsActivity.prototype, "include", void 0); tslib_1.__decorate([ components_1.Input('exclude', ['*.d.ts', '**/*.d.ts']), tslib_1.__metadata("design:type", Object) ], RollupTsActivity.prototype, "exclude", void 0); tslib_1.__decorate([ components_1.Input(), tslib_1.__metadata("design:type", Object) ], RollupTsActivity.prototype, "dts", void 0); tslib_1.__decorate([ components_1.Input('tsconfig', './tsconfig.json'), tslib_1.__metadata("design:type", Object) ], RollupTsActivity.prototype, "tsconfig", void 0); tslib_1.__decorate([ components_1.Input(), tslib_1.__metadata("design:type", Object) ], RollupTsActivity.prototype, "compileOptions", void 0); tslib_1.__decorate([ components_1.Input(), tslib_1.__metadata("design:type", Object) ], RollupTsActivity.prototype, "uglify", void 0); RollupTsActivity = tslib_1.__decorate([ activities_1.Task({ selector: 'rts' }) ], RollupTsActivity); return RollupTsActivity; }(RollupActivity_1.RollupActivity)); exports.RollupTsActivity = RollupTsActivity; //# sourceMappingURL=../sourcemaps/rollups/RollupTsActivity.js.map