@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
JavaScript
"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