UNPKG

@signaldb/core

Version:

SignalDB is a client-side database that provides a simple MongoDB-like interface to the data with first-class typescript support to achieve an optimistic UI. Data persistence can be achieved by using storage providers that store the data through a JSON in

44 lines (43 loc) 1.28 kB
"use strict"; Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } }); function clone(value) { if (typeof value === "function") throw new Error("Cloning functions is not supported"); if (value === null || typeof value !== "object") return value; if (value instanceof Date) return new Date(value); if (Array.isArray(value)) return value.map((item) => clone(item)); if (value instanceof Map) { const result2 = /* @__PURE__ */ new Map(); value.forEach((currentValue, key) => { result2.set(key, clone(currentValue)); }); return result2; } if (value instanceof Set) { const result2 = /* @__PURE__ */ new Set(); value.forEach((currentValue) => { result2.add(clone(currentValue)); }); return result2; } if (value instanceof RegExp) return new RegExp(value); const result = {}; for (const key in value) { if (Object.hasOwnProperty.call(value, key)) { result[key] = clone(value[key]); } } return result; } function deepClone(object) { if (typeof structuredClone === "function") return structuredClone(object); /* istanbul ignore next -- @preserve */ return clone(object); } exports.clone = clone; exports.default = deepClone;