UNPKG

@tsdi/pack

Version:

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

168 lines (166 loc) 8.79 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.TsLibPackBuilder = 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 LibPackBuilder_1 = require("./LibPackBuilder"); var exps_1 = require("../exps"); var rename = require('gulp-rename'); var uglify = require('gulp-uglify-es').default; /** * build ts project by rollup * * @export * @class TsLibPackBuilder * @extends {LibPackBuilder} * @implements {AfterInit} */ var TsLibPackBuilder = /** @class */ (function (_super) { tslib_1.__extends(TsLibPackBuilder, _super); function TsLibPackBuilder() { return _super !== null && _super.apply(this, arguments) || this; } TsLibPackBuilder.prototype.vaidts = function (input) { var inputs = input.input || this.mainFile; if (inputs) { return ioc_1.isArray(inputs) ? inputs.some(function (i) { return exps_1.tsFileExp.test(i); }) : exps_1.tsFileExp.test(inputs); } return false; }; TsLibPackBuilderAnn = function () { return { "name": "TsLibPackBuilder", "params": { "vaidts": ["input"] } }; }; tslib_1.__decorate([ components_1.Input(), tslib_1.__metadata("design:type", String) ], TsLibPackBuilder.prototype, "mainFile", void 0); tslib_1.__decorate([ components_1.Input(), tslib_1.__metadata("design:type", Object) ], TsLibPackBuilder.prototype, "beforeCompile", void 0); TsLibPackBuilder = tslib_1.__decorate([ activities_1.Task({ selector: 'tslibs', template: [ { activity: 'clean', clean: 'binding: outDir' }, { activity: 'test', test: 'binding: test', }, { activity: 'asset', src: ['package.json', '*.md'], dist: 'binding: outDir' }, { activity: 'each', each: 'binding: bundles', body: [ { activity: activities_1.Activities.if, condition: function (ctx, bind) { return bind.getScope().vaidts(ctx.getInput()); }, body: { activity: 'rts', input: function (ctx, bind) { return bind.getScope().transRollupInput(ctx.getInput()); }, sourcemap: 'binding: sourcemap', plugins: function (ctx, bind) { return bind.getScope().transPlugins(ctx); }, external: 'binding: external', options: 'binding: options', globals: 'binding: globals', output: function (ctx, bind) { return bind.getScope().transRollupoutput(ctx.getInput()); } } }, { activity: activities_1.Activities.elseif, condition: function (ctx) { return ctx.getInput().input; }, body: { activity: 'rollup', input: function (ctx, bind) { return bind.getScope().transRollupInput(ctx.getInput()); }, sourcemap: 'binding: sourcemap', plugins: 'binding: transPlugins(ctx)', external: 'binding: external', options: 'binding: options', globals: 'binding: globals', output: function (ctx, bind) { return bind.getScope().transRollupoutput(ctx.getInput()); } } }, { activity: activities_1.Activities.if, condition: function (ctx) { return ctx.getInput().uglify; }, body: { activity: 'asset', src: function (ctx, bind) { return bind.getScope().getBundleSrc(ctx.getInput()); }, dist: function (ctx, bind) { return bind.getScope().toModulePath(bind.getInput()); }, sourcemap: 'binding: sourcemap | path:"./"', pipes: [ function () { return uglify(); }, function () { return rename({ suffix: '.min' }); } ] } }, { activity: activities_1.Activities.if, condition: function (ctx) { return ctx.getInput().moduleName || ctx.getInput().target; }, body: { activity: 'asset', src: function (ctx, bind) { return bind.getScope().toOutputPath('package.json'); }, dist: 'binding: outDir', pipes: [ { activity: 'jsonEdit', json: function (json, bind) { var input = bind.getInput(); var scope = bind.getScope(); // to replace module export. if (input.target) { json[input.target] = ['.', scope.getTargetFolder(input), input.main || 'index.js'].join('/'); } var outmain = ['.', scope.getModuleFolder(input), input.outputFile || 'index.js'].join('/'); if (ioc_1.isArray(input.moduleName)) { input.moduleName.forEach(function (n) { json[n] = outmain; }); } else if (input.moduleName) { json[input.moduleName] = outmain; } if (input.dtsMain) { json['typings'] = ['.', scope.getTargetFolder(input), input.dtsMain].join('/'); } return json; } } ] } } ] } ] // template: ` // <clean [clean]="outDir"></clean> // <test [test]="outDir"></test> // <asset [src]="['package.json', '*.md']" [test]="outDir"></asset> // <sequence *each="let input in bundles"> // <rts *if="vaidts(input)" [input]="transRollupInput(input)" [sourcemap]="sourcemap" [plugins]="transPlugins(ctx)" [external]="external" // [options]="options" [globals]="globals" [output]="transRollupoutput(input)"></rts> // <rollup *elseif="input" [input]="transRollupInput(input)" [sourcemap]="sourcemap" [plugins]="transPlugins(ctx)" [external]="external" // [options]="options" [globals]="globals" [output]="transRollupoutput(input)"></rollup> // <asset *if="input.uglify" [src]="getBundleSrc(input)" [dist]="toModulePath(input)" [sourcemap]="sourcemap | path:'./'" ></asset> // <asset *if="input.moduleName || input.target" [src]="toOutputPath('package.json')" [dist]="outDir"> // <asset.pipes> // <jsonEdit [json]="json($event, input)"></jsonEdit> // </asset.pipes> // </asset> // </sequence> // ` }) ], TsLibPackBuilder); return TsLibPackBuilder; }(LibPackBuilder_1.LibPackBuilder)); exports.TsLibPackBuilder = TsLibPackBuilder; //# sourceMappingURL=../sourcemaps/builds/TsLibPackBuilder.js.map