⬅️ Back to Table of Contents
📄 index.ts
📊 Analysis Summary
Metric |
Count |
🔧 Functions |
5 |
📊 Variables & Constants |
2 |
📚 Table of Contents
🛠️ File Location:
📂 packages/shared/makeDestructurable/index.ts
Variables & Constants
Name |
Type |
Kind |
Value |
Exported |
clone |
T |
const |
{ ...obj } |
✗ |
index |
number |
let/var |
0 |
✗ |
Functions
makeDestructurable(obj: T, arr: A): T & A
Code
export function makeDestructurable<
T extends Record<string, unknown>,
A extends readonly any[],
>(obj: T, arr: A): T & A {
if (typeof Symbol !== 'undefined') {
const clone = { ...obj }
Object.defineProperty(clone, Symbol.iterator, {
enumerable: false,
value() {
let index = 0
return {
next: () => ({
value: arr[index++],
done: index > arr.length,
}),
}
},
})
return clone as T & A
}
else {
return Object.assign([...arr], obj) as unknown as T & A
}
}
- Parameters:
obj: T
arr: A
- Return Type:
T & A
- Calls:
Object.defineProperty
Object.assign
next(): { value: any; done: boolean; }
Code
() => ({
value: arr[index++],
done: index > arr.length,
})
- Return Type:
{ value: any; done: boolean; }
next(): { value: any; done: boolean; }
Code
() => ({
value: arr[index++],
done: index > arr.length,
})
- Return Type:
{ value: any; done: boolean; }
next(): { value: any; done: boolean; }
Code
() => ({
value: arr[index++],
done: index > arr.length,
})
- Return Type:
{ value: any; done: boolean; }
next(): { value: any; done: boolean; }
Code
() => ({
value: arr[index++],
done: index > arr.length,
})
- Return Type:
{ value: any; done: boolean; }