@bemedev/decompose
Version:
Decompose object and so more
32 lines (31 loc) • 1.24 kB
JavaScript
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
const require_sortMap = require("./sortMap.cjs");
const require_constants_strings = require("./constants/strings.cjs");
let _bemedev_types = require("@bemedev/types");
//#region src/decomposeSV.ts
function ddecompose(val, prev = "") {
const output = [];
const _prev = prev ? prev + require_constants_strings.DELIMITER : "";
if (prev !== "") output.push(prev);
if (typeof val === "string") output.push(`${_prev}${val}`);
else {
const keys = Object.keys(val);
output.push(...keys.map((key) => ddecompose(val[key], `${_prev}${key}`)).flat());
}
return output;
}
const _decomposeSV = (val, sorter = require_sortMap.sortMap) => {
const output1 = ddecompose(val, "");
output1.sort(sorter);
const regex = new RegExp(require_constants_strings.DELIMITER, "g");
return output1.map((value) => value.replace(regex, "."));
};
/* v8 ignore next 3 */
const decomposeSV = (val, sorter) => {
return _bemedev_types.castings.commons.any(_decomposeSV(val, sorter));
};
decomposeSV.low = _decomposeSV;
decomposeSV.strict = _bemedev_types.castings.commons.unknown(_decomposeSV);
//#endregion
exports.decomposeSV = decomposeSV;
//# sourceMappingURL=decomposeSV.cjs.map