typedash
Version:
modern, type-safe collection of utility functions
31 lines (28 loc) • 983 B
JavaScript
import { createTypeGuard } from './chunk-AM6QCXAM.js';
import { assert } from './chunk-ZVXNSDFG.js';
// src/functions/_internal/isMaliciousObjectPath.ts
var isMaliciousObjectProperty = createTypeGuard(
Object.getOwnPropertyNames(Object.getPrototypeOf({}))
);
// src/functions/set/set.ts
function set(object, path, value) {
const segments = path.match(pathSegmentsRegex);
assert(segments !== null, "Invalid path");
assert(
segments.every((segment) => isMaliciousObjectProperty(segment) === false),
"Potentially malicious path"
);
let currentObject = object;
for (let index = 0; index < segments.length - 1; index++) {
const segment = segments[index];
if (segment in currentObject === false) {
currentObject[segment] = {};
}
currentObject = currentObject[segment];
}
currentObject[segments.at(-1)] = value;
}
var pathSegmentsRegex = /[\w-]+/g;
export { set };
//# sourceMappingURL=out.js.map
//# sourceMappingURL=chunk-ZJEWIX2C.js.map