@bemedev/decompose
Version:
Decompose object and so more
28 lines (24 loc) • 924 B
JavaScript
;
var types_types = require('./types.types.cjs');
const _flat = (val, omitKey, options, path = '') => {
const _options = { ...types_types.DEFAULT_FLAT_OPTIONS, ...options };
const { [omitKey]: recursives, ...rest } = val;
const check = _options.children;
let out = {};
out[path === '' ? _options.sep : path] = check ? val : rest;
if (recursives) {
for (const key in recursives) {
if (Object.prototype.hasOwnProperty.call(recursives, key)) {
const element = recursives[key];
const inner = _flat(element, omitKey, options, `${path}${_options.sep}${key}`);
out = { ...out, ...inner };
}
}
}
return out;
};
const flatByKey = (val, key, options) => _flat(val, key, options);
flatByKey.low = _flat;
flatByKey.strict = _flat;
exports.flatByKey = flatByKey;
//# sourceMappingURL=flatByKey.cjs.map