(first: T | T[] | O)
| 20 | } |
| 21 | |
| 22 | export function arrayOrObject<T, O extends Record<string, T>>(first: T | T[] | O) { |
| 23 | if (isArray(first)) { |
| 24 | return { args: first, keys: null }; |
| 25 | } |
| 26 | if (isPOJO(first)) { |
| 27 | const keys = getKeys(first); |
| 28 | return { |
| 29 | args: keys.map((key) => first[key]), |
| 30 | keys, |
| 31 | }; |
| 32 | } |
| 33 | return null; |
| 34 | } |
| 35 | |
| 36 | function isPOJO(obj: any): obj is object { |
| 37 | return obj && typeof obj === 'object' && getPrototypeOf(obj) === objectProto; |
no test coverage detected