Compare commits

...

2 Commits

@ -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);

@ -116,6 +116,12 @@ function hashType(type, level = 0, seenTypes = new Map()) {
typeHash: hashType(actualTrait, level + 1, seenTypes)
};
}
} else if (rule._isTypeAlias === true) {
/* Should we wrap this in an `alias` to represent alias-level additional constraints? Or should we just return the canonical rule for the _alias itself? */
props = {
ruleType: "alias",
type: rule._alias
};
} else {
throw new Error(`Unrecognized rule type: ${util.inspect(rule)}`);
}

Loading…
Cancel
Save