UNPKG

corde

Version:

A simple library for Discord bot tests

36 lines (26 loc) 849 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true, }); exports.deepFreeze = void 0; const isPrimitiveValue_1 = require("./isPrimitiveValue"); const typeOf_1 = require("./typeOf"); function deepFreeze(obj) { if ((0, isPrimitiveValue_1.isPrimitiveValue)(obj) || !obj) { return Object.freeze({}); } const propNames = Object.getOwnPropertyNames(obj).filter((name) => !name.startsWith("_")); const freezedObj = {}; for (const propName of propNames) { const prop = obj[propName]; if ((0, typeOf_1.typeOf)(prop) === "object") { freezedObj[propName] = deepFreeze(prop); } else if (Array.isArray(prop)) { freezedObj[propName] = Object.freeze(prop.slice()); } else { freezedObj[propName] = prop; } } return Object.freeze(freezedObj); } exports.deepFreeze = deepFreeze;