@thisisagile/easy
Version:
Straightforward library for building domain-driven microservice architectures
30 lines (29 loc) • 812 B
JavaScript
// src/utils/Traverse.ts
var traverse = (subject, property = "") => {
subject ??= {};
const props = property.split(".");
const p = props.shift();
return props.length === 0 ? subject[p] : traverse(subject[p], props.join("."));
};
var traverseSet = (subject, property, value) => {
const props = property.split(".");
const p = props.shift();
return {
...subject,
[p]: props.length === 0 ? value : traverseSet(subject[p], props.join("."), value)
};
};
var accumulate = (items, ...keys) => items.map((t, i, arr) => {
const acc = keys.reduce(
(acc2, v) => traverseSet(acc2, v, i === 0 ? traverse(t, v) : traverse(arr[i - 1], v) + traverse(t, v)),
t
);
arr[i] = acc;
return acc;
});
export {
traverse,
traverseSet,
accumulate
};
//# sourceMappingURL=chunk-SSROJBD5.mjs.map