@bemedev/decompose
Version:
Decompose object and so more
26 lines (23 loc) • 896 B
JavaScript
import { DEFAULT_FLAT_OPTIONS } from './types.types.js';
const _flat = (val, omitKey, options, path = '') => {
const _options = { ...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;
export { flatByKey };
//# sourceMappingURL=flatByKey.js.map