All Downloads are FREE. Search and download functionalities are using the official Maven repository.

META-INF.resources.deepFreeze.ts Maven / Gradle / Ivy

/**
 * SPDX-FileCopyrightText: (c) 2000 Liferay, Inc. https://liferay.com
 * SPDX-License-Identifier: LGPL-2.1-or-later OR LicenseRef-Liferay-DXP-EULA-2.0.0-2023-06
 */

import type {Immutable} from './types';

export default function deepFreeze(value: T): Immutable {
	if (process.env.NODE_ENV === 'development') {
		if (Array.isArray(value)) {
			value.forEach(deepFreeze);
		}
		else if (value && typeof value === 'object') {
			Object.values(value).forEach(deepFreeze);
		}

		Object.freeze(value);
	}

	return value as Immutable;
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy