UNPKG

@tsdi/pack

Version:

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

98 lines (96 loc) 3.15 kB
import { __awaiter, __decorate, __metadata } from "tslib"; import { isFunction, lang } from '@tsdi/ioc'; import { Input } from '@tsdi/components'; import { Task } from '@tsdi/activities'; import * as through from 'through2'; import { TransformActivity } from './TransformActivity'; const jeditor = require('gulp-json-editor'); const inplace = require('json-in-place'); /** * edit json, will format new json string. * * @export * @class JsonEditActivity * @extends {TransformActivity} */ let JsonEditActivity = class JsonEditActivity extends TransformActivity { execute(ctx) { return __awaiter(this, void 0, void 0, function* () { if (!this.json) { return; } if (isFunction(this.json)) { let jsonFunc = this.json; return jeditor((json) => jsonFunc(json)); } else { return jeditor(this.json); } }); } static ρAnn() { return { "name": "JsonEditActivity", "params": { "execute": ["ctx"] } }; } }; __decorate([ Input(), __metadata("design:type", Object) ], JsonEditActivity.prototype, "json", void 0); JsonEditActivity = __decorate([ Task('jsonEdit') ], JsonEditActivity); export { JsonEditActivity }; /** * replace json value of key. no format. * * @export * @class JsonReplaceActivity * @extends {TransformActivity} */ let JsonReplaceActivity = class JsonReplaceActivity extends TransformActivity { execute(ctx) { return __awaiter(this, void 0, void 0, function* () { let fields = this.fields; if (!isFunction(fields)) { return; } return through.obj(function (file, encoding, callback) { if (file.isNull()) { return callback(null, file); } if (file.isStream()) { return callback('doesn\'t support Streams'); } let contents = file.contents.toString('utf8'); let json = JSON.parse(contents); let replaced = inplace(contents); let changs = fields(json); if (changs instanceof Map) { changs.forEach((val, key) => { replaced.set(key, val); }); } else { lang.forIn(fields(json), (val, key) => { replaced.set(key, val); }); } contents = replaced.toString(); file.contents = Buffer.from(contents); callback(null, file); }); }); } static ρAnn() { return { "name": "JsonReplaceActivity", "params": { "execute": ["ctx"] } }; } }; __decorate([ Input(), __metadata("design:type", Function) ], JsonReplaceActivity.prototype, "fields", void 0); JsonReplaceActivity = __decorate([ Task('jsonReplace') ], JsonReplaceActivity); export { JsonReplaceActivity }; //# sourceMappingURL=../sourcemaps/transforms/JsonEditActivity.js.map