UNPKG

svelte-meta-tags

Version:

Svelte Meta Tags provides components designed to help you manage SEO for Svelte projects

28 lines (27 loc) 1.03 kB
/* eslint-disable @typescript-eslint/no-explicit-any */ export const deepMerge = (target, source) => { if (!target || !source) return target ?? source ?? {}; const result = { ...target }; for (const [key, value] of Object.entries(source)) { const targetValue = target[key]; if (targetValue instanceof Date || typeof targetValue === 'function') { result[key] = targetValue; } else if (value instanceof Date || typeof value === 'function') { result[key] = value; } else if (isObject(targetValue) && isObject(value)) { result[key] = deepMerge(targetValue, value); } else if (isArray(targetValue) && isArray(value)) { result[key] = value; } else { result[key] = value !== undefined ? value : targetValue; } } return result; }; const isObject = (obj) => obj !== null && typeof obj === 'object' && !Array.isArray(obj); const isArray = (obj) => Array.isArray(obj);