UNPKG

ui-ingredients

Version:

Headless component library for Svelte powered by zag

38 lines (37 loc) 794 B
/* Credits to https://github.com/chakra-ui/zag/blob/main/packages/utilities/core/src/split-props.ts */ function splitProps(props, keys) { const rest = {}; const result = {}; const keySet = new Set(keys); for (const key in props) { if (keySet.has(key)) { result[key] = props[key]; } else { rest[key] = props[key]; } } return [result, rest]; } /** * @example * ```ts * const props = { * a: 1, * b: 2, * c: 3, * d: 4, * e: 5 * }; * * const [i, j] = createSplitProps(['a', 'b'])(props); * * console.log(i); // {a: 1, b: 2} * console.log(j); // {c: 3, d: 4, e: 5} * ``` */ export function createSplitProps(keys) { return function split(props) { return splitProps(props, keys); }; }