import type { Obj, PH } from './utils/types.ts';import curryN from './utils/curry_n.ts';
type ZipObj_2 = <T>(values: T[]) => Obj<T>;
type ZipObj_1<T> = (keys: string[]) => Obj<T>;
type ZipObj = & ((keys: string[]) => ZipObj_2) & (<T>(keys: PH, values: T[]) => ZipObj_1<T>) & (<T>(keys: string[], values: T[]) => Obj<T>);
function _zipObj<T>(keys: string[], values: T[]): Obj<T> { const result: Obj<T> = {}; const len = Math.min(keys.length, values.length); for (let i = 0; i < len; i++) { result[keys[i]] = values[i]; }
return result;}
export const zipObj: ZipObj = curryN(2, _zipObj);