@bemedev/decompose
Version:
Decompose object and so more
33 lines (32 loc) • 1.45 kB
JavaScript
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
const require_sortMap = require("./sortMap.cjs");
const require_constants_strings = require("./constants/strings.cjs");
const require_helpers = require("./helpers.cjs");
let _bemedev_types = require("@bemedev/types");
//#region src/decomposeKeys.ts
function ddecomposeKeys(val, prev = "", addObjectKeys = true) {
const _prev = prev ? prev + require_constants_strings.DELIMITER : "";
const output = [];
Object.entries(val).forEach(([key, value]) => {
if (!require_helpers.isPrimitive(value)) {
if (addObjectKeys) output.push(`${_prev}${key}`);
const values = ddecomposeKeys(value, `${_prev}${key}`, addObjectKeys);
output.push(...values);
} else output.push(`${_prev}${key}`);
});
return output;
}
const _decomposeKeys = (val, sorter = require_sortMap.sortMap, addObjectKeys = true) => {
const output1 = ddecomposeKeys(val, "", addObjectKeys);
output1.sort(sorter);
const regex = new RegExp(require_constants_strings.DELIMITER, "g");
return output1.map((value) => value.replace(regex, "."));
};
const decomposeKeys = (val, sorter, addObjectKeys) => {
return _bemedev_types.castings.commons.any(_decomposeKeys(val, sorter, addObjectKeys));
};
decomposeKeys.low = _decomposeKeys;
decomposeKeys.strict = _bemedev_types.castings.commons.unknown(_decomposeKeys);
//#endregion
exports.decomposeKeys = decomposeKeys;
//# sourceMappingURL=decomposeKeys.cjs.map