Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
}
break;
case node instanceof TypeBuilder.RecordType:
// entries: Array.
node.typeName = 'Object';
res = cb(node) || [];
if (node.entries) {
res.concat(node.entries.map(function(subnode) {
subnode.parentElement = node;
_iterateDocTypes(subnode, cb);
}));
}
break;
case node instanceof TypeBuilder.RecordType.Entry:
// name: string,
// typeUnion: TypeUnion
node.typeUnion.collectionNode = node;
res = _iterateDocTypes(node.typeUnion, cb);
break;
case node instanceof TypeBuilder.ModuleName:
node.typeName = node.name;
node.module = true;
res = cb(node);
break;
default:
throw new Error('DocType: Unsupported doc node');
}
var types = (function transform(type) {
if(type instanceof Builder.TypeUnion) {
return type.types.map(transform);
} else if(type instanceof Builder.TypeName) {
return type.name;
} else if(type instanceof Builder.RecordType) {
return type.entries.reduce(function(obj, entry) {
obj[entry.name] = transform(entry.typeUnion);
return obj;
}, {});
} else {
return type.toString();
}
}(result));