UNPKG

json-processing

Version:

JSON Processing Tool

26 lines (25 loc) 1.07 kB
"use strict"; 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;