UNPKG

@dipscope/type-manager

Version:

Transform JSON strings or plain objects into JS class instances.

39 lines 1.71 kB
var CircularReferenceHandler = (function () { function CircularReferenceHandler() { } CircularReferenceHandler.prototype.define = function (serializerContext, referenceKey, referenceValueGetter) { var referenceMap = serializerContext.referenceMap; var referenceValue = referenceMap.get(referenceKey); if (referenceValue === undefined) { referenceMap.set(referenceKey, referenceKey); var value = referenceValueGetter(); referenceMap.set(referenceKey, value); serializerContext.resolveReferenceCallbacks(referenceKey); return value; } if (referenceValue === referenceKey) { serializerContext.registerReferenceCallback(referenceKey); return undefined; } return referenceValue; }; CircularReferenceHandler.prototype.restore = function (serializerContext, referenceKey, referenceValueGetter) { var referenceMap = serializerContext.referenceMap; var referenceValue = referenceMap.get(referenceKey); if (referenceValue === undefined) { referenceMap.set(referenceKey, referenceKey); var value = referenceValueGetter(); referenceMap.set(referenceKey, value); serializerContext.resolveReferenceCallbacks(referenceKey); return value; } if (referenceValue === referenceKey) { serializerContext.registerReferenceCallback(referenceKey); return undefined; } return referenceValue; }; return CircularReferenceHandler; }()); export { CircularReferenceHandler }; //# sourceMappingURL=circular-reference-handler.js.map