@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
JavaScript
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