@tsdi/pack
Version:
@tsdi/pack is simple build tasks, base on AOP, Ioc container, via @tsdi. dev build pack activities.
176 lines (174 loc) • 8.09 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.TsBuildActivity = 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 AssetActivity_1 = require("./AssetActivity");
var ITransform_1 = require("../ITransform");
var sourcemaps = require('gulp-sourcemaps');
var ts = require('gulp-typescript');
var TsBuildActivity = /** @class */ (function (_super) {
tslib_1.__extends(TsBuildActivity, _super);
function TsBuildActivity() {
return _super !== null && _super.apply(this, arguments) || this;
}
TsBuildActivity.ρAnn = function () {
return { "name": "TsBuildActivity", "params": {} };
};
tslib_1.__decorate([
components_1.Input(),
tslib_1.__metadata("design:type", Object)
], TsBuildActivity.prototype, "dts", void 0);
tslib_1.__decorate([
components_1.Input(),
tslib_1.__metadata("design:type", Object)
], TsBuildActivity.prototype, "annotation", void 0);
tslib_1.__decorate([
components_1.Input('annotationFramework'),
tslib_1.__metadata("design:type", Object)
], TsBuildActivity.prototype, "annotationFramework", void 0);
tslib_1.__decorate([
components_1.Input('beforePipes'),
tslib_1.__metadata("design:type", Array)
], TsBuildActivity.prototype, "beforePipes", void 0);
tslib_1.__decorate([
components_1.Input('tsconfig', './tsconfig.json'),
tslib_1.__metadata("design:type", Object)
], TsBuildActivity.prototype, "tsconfig", void 0);
tslib_1.__decorate([
components_1.Input(),
tslib_1.__metadata("design:type", Object)
], TsBuildActivity.prototype, "uglify", void 0);
tslib_1.__decorate([
components_1.Input('uglifyOptions'),
tslib_1.__metadata("design:type", Object)
], TsBuildActivity.prototype, "uglifyOptions", void 0);
TsBuildActivity = tslib_1.__decorate([
activities_1.Task({
selector: 'ts',
template: [
{
activity: 'src',
src: 'binding: src',
},
{
activity: 'annotation',
annotationFramework: 'binding: annotationFramework',
annotation: 'binding: annotation'
},
{
activity: activities_1.Activities.if,
condition: 'binding: sourcemap',
body: {
name: 'sourcemap-init',
activity: activities_1.Activities.execute,
action: function (ctx, bind) {
var scope = bind.getScope();
var framework = scope.framework || sourcemaps;
return ctx.getData().pipe(framework.init());
}
}
},
{
activity: activities_1.Activities.if,
condition: function (ctx, bind) { var _a; return ((_a = bind.getScope().beforePipes) === null || _a === void 0 ? void 0 : _a.length) > 0; },
body: {
activity: 'pipes',
pipes: 'binding: beforePipes'
}
},
{
activity: activities_1.Activities.execute,
name: 'tscompile',
action: function (ctx, bind) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
var scope, tsconfig, tsCompile, dts, tsProject, tsProject;
return tslib_1.__generator(this, function (_a) {
switch (_a.label) {
case 0:
scope = bind.getScope();
if (!scope.tsconfig) {
return [2 /*return*/];
}
return [4 /*yield*/, ctx.resolveExpression(scope.tsconfig)];
case 1:
tsconfig = _a.sent();
return [4 /*yield*/, ctx.resolveExpression(scope.dts)];
case 2:
dts = _a.sent();
if (ioc_1.isString(tsconfig)) {
tsProject = ts.createProject(ctx.platform.relativeRoot(tsconfig), { declaration: !!dts });
tsCompile = tsProject();
}
else {
tsconfig.declaration = !!dts;
tsProject = ts.createProject(ctx.platform.relativeRoot('./tsconfig.json'), tsconfig);
tsCompile = tsProject();
}
return [2 /*return*/, ctx.getData().pipe(tsCompile)];
}
});
}); }
},
{
activity: activities_1.Activities.if,
externals: {
data: 'ctx.getData() | tsjs'
},
condition: function (ctx) { return ITransform_1.isTransform(ctx.getData()); },
body: [
{
activity: 'pipes',
pipes: 'binding: pipes'
},
{
activity: 'if',
condition: 'binding: uglify',
body: {
activity: 'uglify',
uglifyOptions: 'binding: uglifyOptions'
}
},
{
activity: activities_1.Activities.if,
condition: 'binding: sourcemap',
body: {
name: 'sourcemap-write',
activity: activities_1.Activities.execute,
action: function (ctx, bind) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
var scope, framework;
return tslib_1.__generator(this, function (_a) {
scope = bind.getScope();
framework = scope.framework || sourcemaps;
return [2 /*return*/, ctx.getData().pipe(framework.write(ioc_1.isString(scope.sourcemap) ? scope.sourcemap : './sourcemaps'))];
});
}); }
}
},
{
name: 'write-js',
activity: 'dist',
dist: 'binding: dist'
}
]
},
{
activity: activities_1.Activities.if,
externals: {
data: 'ctx.getData() | dts'
},
condition: 'binding: dts',
body: {
name: 'write-dts',
activity: 'dist',
dist: 'binding: dts'
}
}
]
})
], TsBuildActivity);
return TsBuildActivity;
}(AssetActivity_1.AssetActivity));
exports.TsBuildActivity = TsBuildActivity;
//# sourceMappingURL=../sourcemaps/transforms/TsBuildActivity.js.map