signal-desktop/ts/util/deepClone.ts

12 lines
391 B
TypeScript
Raw Normal View History

// Copyright 2024 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { WritableDeep } from 'type-fest';
/**
* Takes a readonly object and returns a writable deep clone of it.
* @see https://developer.mozilla.org/en-US/docs/Web/API/structuredClone
*/
export function deepClone<T>(value: T): WritableDeep<T> {
return structuredClone(value) as WritableDeep<T>;
}