Formatting

This commit is contained in:
2026-08-10 02:32:32 +00:00
parent 95dc998b93
commit c5b0d484d4
4 changed files with 15 additions and 16 deletions
+7 -10
View File
@@ -1,4 +1,4 @@
import { DeeplyReadonly } from "./types";
import type { DeeplyReadonly } from './types';
/**
* Recursively freezes an object by iterating over all properties and freezing them.
@@ -6,20 +6,17 @@ import { DeeplyReadonly } from "./types";
* @returns The frozen object.
*/
export const deepFreeze = <T>(value: T): DeeplyReadonly<T> => {
if (
value !== null &&
(typeof value === 'object' || typeof value === 'function')
) {
if (value !== null && (typeof value === 'object' || typeof value === 'function')) {
for (const key of Reflect.ownKeys(value)) {
const descriptor = Reflect.getOwnPropertyDescriptor(value, key);
const descriptor = Reflect.getOwnPropertyDescriptor(value, key);
if (descriptor && 'value' in descriptor) {
deepFreeze(descriptor.value);
}
if (descriptor && 'value' in descriptor) {
deepFreeze(descriptor.value);
}
}
Object.freeze(value);
}
return value;
}
};