UNPKG

@citation-js/core

Version:

Convert different bibliographic metadata sources

22 lines 613 B
export function deepCopy(value, seen = new Set()) { if (typeof value !== 'object' || value === null || value.constructor !== Object && value.constructor !== Array) { return value; } if (seen.has(value)) { throw new TypeError('Recursively copying circular structure'); } seen.add(value); let copy; if (value.constructor === Array) { copy = value.map(value => deepCopy(value, seen)); } else { const object = {}; for (const key in value) { object[key] = deepCopy(value[key], seen); } copy = object; } seen.delete(value); return copy; } export default deepCopy;