UNPKG

@safeapi/safeapi

Version:

SafeAPI: Secure, deterministic, and tamper-resistant API policy engine for Node and browser.

24 lines (23 loc) 579 B
/** @internal */ export function deepFreeze(value, seen = new WeakSet()) { if (value === null || typeof value !== "object") { return value; } const reference = value; if (seen.has(reference)) { return reference; } seen.add(reference); if (Array.isArray(value)) { for (const item of value) { deepFreeze(item, seen); } } else { const record = value; for (const key of Object.keys(record)) { deepFreeze(record[key], seen); } } return Object.freeze(value); }