Spaces:
Runtime error
Runtime error
| import { isFunction } from "$lib/utils/is.js"; | |
| import type { MaybeGetter } from "$lib/types.js"; | |
| /** | |
| * Extracts the value from a getter or a value. | |
| * Optionally, a default value can be provided. | |
| */ | |
| export function extract<T, D extends T>( | |
| value: MaybeGetter<T>, | |
| defaultValue?: D, | |
| ): D extends undefined | null ? T : Exclude<T, undefined | null> | D { | |
| if (isFunction(value)) { | |
| const getter = value; | |
| const gotten = getter(); | |
| // eslint-disable-next-line @typescript-eslint/no-explicit-any | |
| return (gotten ?? defaultValue ?? gotten) as any; | |
| } | |
| // eslint-disable-next-line @typescript-eslint/no-explicit-any | |
| return (value ?? defaultValue ?? value) as any; | |
| } | |