@tsdi/pack
Version:
@tsdi/pack is simple build tasks, base on AOP, Ioc container, via @tsdi. dev build pack activities.
188 lines (186 loc) • 9.25 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.RollupActivity = void 0;
var tslib_1 = require("tslib");
var ioc_1 = require("@tsdi/ioc");
var components_1 = require("@tsdi/components");
var activities_1 = require("@tsdi/activities");
var rollup_1 = require("rollup");
var NodeActivity_1 = require("../NodeActivity");
/**
* rollup activity.
*
* @export
* @class RollupActivity
* @extends {NodeActivity<void>}
*/
var RollupActivity = /** @class */ (function (_super) {
tslib_1.__extends(RollupActivity, _super);
function RollupActivity() {
return _super !== null && _super.apply(this, arguments) || this;
}
RollupActivity.prototype.execute = function (ctx) {
return tslib_1.__awaiter(this, void 0, void 0, function () {
var opts;
var _this = this;
return tslib_1.__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_1.__awaiter(_this, void 0, void 0, function () {
var val;
return tslib_1.__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_1.isArray(opts.output) ? opts.output : [opts.output]).map(function (output) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
var sourceMap, globals, bundle;
return tslib_1.__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_1.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_1.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_1.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_1.isArray(val) && val.length) {
val = val.filter(function (f) { return !ioc_1.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_1.__awaiter(this, void 0, void 0, function () {
return tslib_1.__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_1.__decorate([
components_1.Input(),
tslib_1.__metadata("design:type", Object)
], RollupActivity.prototype, "input", void 0);
tslib_1.__decorate([
components_1.Input(),
tslib_1.__metadata("design:type", Object)
], RollupActivity.prototype, "output", void 0);
tslib_1.__decorate([
components_1.Input(),
tslib_1.__metadata("design:type", Object)
], RollupActivity.prototype, "plugins", void 0);
tslib_1.__decorate([
components_1.Input(),
tslib_1.__metadata("design:type", Object)
], RollupActivity.prototype, "external", void 0);
tslib_1.__decorate([
components_1.Input(),
tslib_1.__metadata("design:type", Object)
], RollupActivity.prototype, "globals", void 0);
tslib_1.__decorate([
components_1.Input(),
tslib_1.__metadata("design:type", Object)
], RollupActivity.prototype, "sourcemap", void 0);
tslib_1.__decorate([
components_1.Input(),
tslib_1.__metadata("design:type", Object)
], RollupActivity.prototype, "cache", void 0);
tslib_1.__decorate([
components_1.Input(),
tslib_1.__metadata("design:type", Object)
], RollupActivity.prototype, "options", void 0);
tslib_1.__decorate([
components_1.Input(),
tslib_1.__metadata("design:type", Object)
], RollupActivity.prototype, "watch", void 0);
RollupActivity = tslib_1.__decorate([
activities_1.Task('rollup')
], RollupActivity);
return RollupActivity;
}(NodeActivity_1.NodeActivity));
exports.RollupActivity = RollupActivity;
//# sourceMappingURL=../sourcemaps/rollups/RollupActivity.js.map