diff --git a/src/serialization/deserialize.js b/src/serialization/deserialize.js index 3fdcd0e..ff72ab0 100644 --- a/src/serialization/deserialize.js +++ b/src/serialization/deserialize.js @@ -10,6 +10,8 @@ function isReference(serializedData) { return (serializedData != null && serializedData._d_sT === "cTR"); } +/* FIXME: Pass both key and value to custom deserializer */ + module.exports = function createDeserializer(topLevelType, topLevelData, typeMap, options = {}) { let seen = new Map(); let placeholders = createPlaceholderManager(); @@ -61,7 +63,9 @@ module.exports = function createDeserializer(topLevelType, topLevelData, typeMap } function deserializeEntry(rule, serializedData) { - if (rule._isCustomType) { + if (serializedData == null) { + return customDeserializer(serializedData); + } else if (rule._isCustomType) { return deserializeInstanceOrReference(rule, serializedData); } else if (rule._isCustomRegistryType) { return deserializeInstanceOrReference(rule._registry._getType(rule._name), serializedData);