UNPKG

@tanstack/svelte-table

Version:

Headless UI for building powerful tables & datagrids for Svelte.

46 lines (45 loc) 1.48 kB
export function mergeObjects(...sources) { const target = {}; for (let source of sources) { if (typeof source === 'function') source = source(); if (source) { const descriptors = Object.getOwnPropertyDescriptors(source); for (const key in descriptors) { if (key in target) continue; Object.defineProperty(target, key, { enumerable: true, get() { for (let i = sources.length - 1; i >= 0; i--) { let v, s = sources[i]; if (typeof s === 'function') s = s(); // eslint-disable-next-line prefer-const v = (s || {})[key]; if (v !== undefined) return v; } }, }); } } } return target; } export function flatMerge(...sources) { const result = {}; for (let source of sources) { if (typeof source === 'function') source = source(); if (!source) continue; for (const key of Reflect.ownKeys(source)) { const value = source[key]; if (value !== undefined) { result[key] = value; } } } return result; }