UNPKG

typedash

Version:

modern, type-safe collection of utility functions

31 lines (28 loc) 983 B
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