UNPKG

@layerfig/config

Version:

Layer and runtime-validate type-safe configs for JavaScript apps.

79 lines (75 loc) 2.7 kB
//#region rolldown:runtime var __create = Object.create; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __getProtoOf = Object.getPrototypeOf; var __hasOwnProp = Object.prototype.hasOwnProperty; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) { key = keys[i]; if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: ((k) => from[k]).bind(null, key), enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod)); //#endregion //#region src/utils/is-plain-object.ts /** * Type guard to check if value is a plain object */ function isPlainObject(item) { if (item === null || typeof item !== "object") return false; if (item instanceof Date || item instanceof RegExp || item instanceof Error || item instanceof Map || item instanceof Set || item instanceof WeakMap || item instanceof WeakSet || Array.isArray(item)) return false; const proto = Object.getPrototypeOf(item); return proto === null || proto === Object.prototype; } //#endregion //#region src/utils/set.ts /** * Set value at path in object (lodash set replacement) * @param obj - Target object to modify * @param path - Path to set (dot notation string or array of keys) * @param value - Value to set at the path * @returns The modified object */ function set(obj, path, value) { const keys = Array.isArray(path) ? path.filter((key) => key !== "" && key != null) : path.toString().split(".").filter((key) => key !== ""); if (keys.length === 0) return obj; let current = obj; for (let i = 0; i < keys.length - 1; i++) { const key = keys[i]; if (key == null) continue; if (!(key in current) || !isPlainObject(current[key])) current[key] = {}; current = current[key]; } const lastKey = keys[keys.length - 1]; if (lastKey != null) current[lastKey] = value; return obj; } //#endregion Object.defineProperty(exports, '__toESM', { enumerable: true, get: function () { return __toESM; } }); Object.defineProperty(exports, 'isPlainObject', { enumerable: true, get: function () { return isPlainObject; } }); Object.defineProperty(exports, 'set', { enumerable: true, get: function () { return set; } }); //# sourceMappingURL=set-Bl59_6Sr.cjs.map