import { equals, pick } from 'remeda' import { GetUid } from './zod' // export function toUid(obj: T, map: Record>) { // return JSON.stringify() // } /** * An object of unknown form (possibly nested) */ export type Uid = unknown // eslint-disable-next-line @typescript-eslint/ban-types export function toUid(obj: T, ...keys: Array) { return pick(obj, keys) } export function fromUid(uid: string): T { return JSON.parse(uid) } export function byUid(getUid: GetUid, holder: UidHolder) { const uid = getUid(holder) // console.log('uid', uid) return function ($obj: Obj) { const $uid = getUid($obj) // console.log('$uid', $uid) return equals(uid, $uid) } } // export function getCompositeUid>(object: O, map: Record>) { // return JSON.stringify(Object.assign({}, object, { items: schedule.items.map(getScheduleItemUid) })) // }