UNPKG

@splidejs/svelte-splide

Version:

Svelte component for the Splide slider/carousel.

27 lines (26 loc) 846 B
import { forOwn } from '../forOwn/forOwn'; import { isObject } from '../isObject/isObject'; /** * Recursively merges source properties to the object. * Be aware that this method does not merge arrays. They are just duplicated by `slice()`. * * @param object - An object to merge properties to. * @param source - A source object to merge properties from. * * @return A new object with merged properties. */ export function merge(object, source) { const merged = object; forOwn(source, (value, key) => { if (Array.isArray(value)) { merged[key] = value.slice(); } else if (isObject(value)) { merged[key] = merge(isObject(merged[key]) ? merged[key] : {}, value); } else { merged[key] = value; } }); return merged; }