UNPKG

@tsdi/pack

Version:

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

56 lines (54 loc) 1.69 kB
import { __awaiter } from "tslib"; import { isDefined, PromiseUtil } from '@tsdi/ioc'; import { NodeActivity } from '../NodeActivity'; import { isTransform } from '../ITransform'; /** * transform activity. * * @export * @abstract * @class TransfrmActivity * @extends {NodeActivity<ITransform>} */ export class TransformActivity extends NodeActivity { /** * execute stream pipe. * * @protected * @param {NodeActivityContext} ctx * @param {ITransform} stream stream pipe from * @param {GActivityType<ITransform>} transform steam pipe to. * @param {boolean} [waitend=false] wait pipe end or not. * @returns {Promise<ITransform>} * @memberof TransformActivity */ pipeStream(ctx, stream, transform, waitend = false) { return __awaiter(this, void 0, void 0, function* () { let transPipe; if (isTransform(transform)) { transPipe = transform; } else { transPipe = yield ctx.resolveExpression(transform); } let next = stream.pipe(transPipe); next.once('error', err => { console.error(err); if (isDefined(process)) { process.exit(1); } throw err; }); if (waitend) { let defer = PromiseUtil.defer(); next.once('end', defer.resolve); yield defer.promise; } return next; }); } static ρAnn() { return { "name": "TransformActivity" }; } } //# sourceMappingURL=../sourcemaps/transforms/TransformActivity.js.map