import { pick as _pick } from "remeda"; import wrap, { wrapFrozen } from "./wrap.js"; const sizeOf = (obj) => Object.keys(obj).length; export interface UPick { ( keys: S[] ): (dataIn: O) => Pick; ( dataIn: O, keys: S[] ): Pick; } function pick(dataIn, keys) { const result = _pick(dataIn, keys); return sizeOf(result) === sizeOf(dataIn) ? dataIn : result; } export default wrap(pick) as UPick; export const pickFrozen = wrapFrozen(pick) as UPick;