()
| 40 | } |
| 41 | |
| 42 | export function defer<T = void>() { |
| 43 | const obj: Partial<IDeferred<T>> = {}; |
| 44 | obj.promise = new Promise<T>((resolve, reject) => { |
| 45 | obj.resolve = resolve; |
| 46 | obj.reject = reject; |
| 47 | }); |
| 48 | return obj as IDeferred<T>; |
| 49 | } |
| 50 | |
| 51 | export function memoize<T extends unknown[], U>(fn: (...args: T) => U) { |
| 52 | const cache: Record<string, Record<'value', U>> = {}; |
no outgoing calls
no test coverage detected