@dipscope/type-manager
Version:
Transform JSON strings or plain objects into JS class instances.
31 lines • 1.2 kB
JavaScript
export class PlainReferenceHandler {
define(serializerContext, referenceKey, referenceValueGetter) {
const referenceMap = serializerContext.referenceMap;
const referenceValue = referenceMap.get(referenceKey);
if (referenceValue === undefined) {
referenceMap.set(referenceKey, referenceKey);
const value = referenceValueGetter();
referenceMap.set(referenceKey, value);
return value;
}
if (referenceValue === referenceKey) {
return undefined;
}
return referenceValue;
}
restore(serializerContext, referenceKey, referenceValueGetter) {
const referenceMap = serializerContext.referenceMap;
const referenceValue = referenceMap.get(referenceKey);
if (referenceValue === undefined) {
referenceMap.set(referenceKey, referenceKey);
const value = referenceValueGetter();
referenceMap.set(referenceKey, value);
return value;
}
if (referenceValue === referenceKey) {
return undefined;
}
return referenceValue;
}
}
//# sourceMappingURL=plain-reference-handler.js.map