UNPKG

@tsdi/pack

Version:

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

156 lines (154 loc) 5.9 kB
import { __awaiter, __decorate, __metadata } from "tslib"; import { isString } from '@tsdi/ioc'; import { Input } from '@tsdi/components'; import { Task, Activities } from '@tsdi/activities'; import { AssetActivity } from './AssetActivity'; import { isTransform } from '../ITransform'; const sourcemaps = require('gulp-sourcemaps'); const ts = require('gulp-typescript'); let TsBuildActivity = class TsBuildActivity extends AssetActivity { static ρAnn() { return { "name": "TsBuildActivity", "params": {} }; } }; __decorate([ Input(), __metadata("design:type", Object) ], TsBuildActivity.prototype, "dts", void 0); __decorate([ Input(), __metadata("design:type", Object) ], TsBuildActivity.prototype, "annotation", void 0); __decorate([ Input('annotationFramework'), __metadata("design:type", Object) ], TsBuildActivity.prototype, "annotationFramework", void 0); __decorate([ Input('beforePipes'), __metadata("design:type", Array) ], TsBuildActivity.prototype, "beforePipes", void 0); __decorate([ Input('tsconfig', './tsconfig.json'), __metadata("design:type", Object) ], TsBuildActivity.prototype, "tsconfig", void 0); __decorate([ Input(), __metadata("design:type", Object) ], TsBuildActivity.prototype, "uglify", void 0); __decorate([ Input('uglifyOptions'), __metadata("design:type", Object) ], TsBuildActivity.prototype, "uglifyOptions", void 0); TsBuildActivity = __decorate([ Task({ selector: 'ts', template: [ { activity: 'src', src: 'binding: src', }, { activity: 'annotation', annotationFramework: 'binding: annotationFramework', annotation: 'binding: annotation' }, { activity: Activities.if, condition: 'binding: sourcemap', body: { name: 'sourcemap-init', activity: Activities.execute, action: (ctx, bind) => { let scope = bind.getScope(); let framework = scope.framework || sourcemaps; return ctx.getData().pipe(framework.init()); } } }, { activity: Activities.if, condition: (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.execute, name: 'tscompile', action: (ctx, bind) => __awaiter(void 0, void 0, void 0, function* () { let scope = bind.getScope(); if (!scope.tsconfig) { return; } let tsconfig = yield ctx.resolveExpression(scope.tsconfig); let tsCompile; let dts = yield ctx.resolveExpression(scope.dts); if (isString(tsconfig)) { let tsProject = ts.createProject(ctx.platform.relativeRoot(tsconfig), { declaration: !!dts }); tsCompile = tsProject(); } else { tsconfig.declaration = !!dts; let tsProject = ts.createProject(ctx.platform.relativeRoot('./tsconfig.json'), tsconfig); tsCompile = tsProject(); } return ctx.getData().pipe(tsCompile); }) }, { activity: Activities.if, externals: { data: 'ctx.getData() | tsjs' }, condition: ctx => isTransform(ctx.getData()), body: [ { activity: 'pipes', pipes: 'binding: pipes' }, { activity: 'if', condition: 'binding: uglify', body: { activity: 'uglify', uglifyOptions: 'binding: uglifyOptions' } }, { activity: Activities.if, condition: 'binding: sourcemap', body: { name: 'sourcemap-write', activity: Activities.execute, action: (ctx, bind) => __awaiter(void 0, void 0, void 0, function* () { let scope = bind.getScope(); let framework = scope.framework || sourcemaps; return ctx.getData().pipe(framework.write(isString(scope.sourcemap) ? scope.sourcemap : './sourcemaps')); }) } }, { name: 'write-js', activity: 'dist', dist: 'binding: dist' } ] }, { activity: Activities.if, externals: { data: 'ctx.getData() | dts' }, condition: 'binding: dts', body: { name: 'write-dts', activity: 'dist', dist: 'binding: dts' } } ] }) ], TsBuildActivity); export { TsBuildActivity }; //# sourceMappingURL=../sourcemaps/transforms/TsBuildActivity.js.map