import type { Args, GenericFn, GenericResolver } from "../HKT"; import type { List, Pair } from "../List"; /** * Convert a {@link List} (i.e., fixed-length tuple) of key-value pairs into an object. * * Sig: `(entries: List) => Record` */ export type FromEntries>> = { [K in Entries[number] as K[0]]: K[1] } extends infer R ? { [K in keyof R]: R[K] } : never; interface Resolver extends GenericResolver<[List>], object> { on1: ([entries]: Args) => [ [], Record<(typeof entries)[number][0], (typeof entries)[number][1]>, ]; } /** * [Fn] Convert a {@link List} (i.e., fixed-length tuple) of key-value pairs into an object. * * Sig: `(entries: List) => Record` */ export default interface FromEntriesFn extends GenericFn { def: ([entries]: Args) => FromEntries; }