UNPKG

@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
"use strict"; 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; } TsBuildActivityAnn = 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