json-processing
Version:
JSON Processing Tool
26 lines (25 loc) • 1.07 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const rxjs_1 = require("rxjs");
const lodash_1 = __importDefault(require("lodash"));
const operators_1 = require("rxjs/operators");
function kv(keyName = 'key', elementSelector = (e) => e) {
//elementSelector = elementSelector || ((e:any) => e);
return rxjs_1.pipe(operators_1.map((value) => Object.
keys(value).
map(key => {
let val = elementSelector(value[key]);
if (!lodash_1.default.isObject(val) || lodash_1.default.isArray(val))
val = { value: val };
const result = lodash_1.default.merge({ [keyName]: key }, val);
Object.defineProperties(result, {
__path: { value: value.__path, writable: true },
__key: { value: value.__key, writable: true }
});
return result;
})), operators_1.mergeMap(e => rxjs_1.from(e)));
}
exports.default = kv;