| 25 | export const getEntries = <T extends object>(obj: T) => Object.entries(obj) as Entries<T>; |
| 26 | |
| 27 | export function passThroughNulls<T extends (arg: any) => any>( |
| 28 | func: T, |
| 29 | ): ((arg: null) => null) & |
| 30 | ((arg: NonNullable<Parameters<T>[0]>) => ReturnType<T>) & |
| 31 | ((arg: Parameters<T>[0] | null) => ReturnType<T> | null) { |
| 32 | return (arg: Parameters<T>[0] | null) => { |
| 33 | if (arg === null) return null; |
| 34 | // eslint-disable-next-line @typescript-eslint/no-unsafe-return |
| 35 | return func(arg as NonNullable<Parameters<T>[0]>); |
| 36 | }; |
| 37 | } |
| 38 | |
| 39 | export const numberWithDefault = ( |
| 40 | num: number | string | bigint | null | undefined, |