MCPcopy
hub / github.com/vitejs/vite / deepClone

Function deepClone

packages/vite/src/node/utils.ts:1159–1180  ·  packages/vite/src/node/utils.ts::deepClone
(value: T)

Source from the content-addressed store, hash-verified

1157 : { -readonly [P in keyof T]: DeepWritable<T[P]> }
1158
1159export function deepClone<T>(value: T): DeepWritable<T> {
1160 if (Array.isArray(value)) {
1161 return value.map((v) => deepClone(v)) as DeepWritable<T>
1162 }
1163 if (isObject(value)) {
1164 const cloned: Record<string, any> = {}
1165 for (const key in value) {
1166 cloned[key] = deepClone(value[key])
1167 }
1168 return cloned as DeepWritable<T>
1169 }
1170 if (typeof value === class="st">'function') {
1171 return value as DeepWritable<T>
1172 }
1173 if (value instanceof RegExp) {
1174 return new RegExp(value) as DeepWritable<T>
1175 }
1176 if (typeof value === class="st">'object' && value != null) {
1177 throw new Error(class="st">'Cannot deep clone non-plain object')
1178 }
1179 return value as DeepWritable<T>
1180}
1181
1182type MaybeFallback<D, V> = undefined extends V ? Exclude<V, undefined> | D : V
1183

Callers 3

resolveConfigFunction · 0.90
prepareRolldownScannerFunction · 0.90
mergeWithDefaultsFunction · 0.85

Calls 1

isObjectFunction · 0.85

Tested by

no test coverage detected