UNPKG

@meta-system/object-definition

Version:

Standard Object Definition For Meta-System

27 lines 1.12 kB
const deepTypesType = ["object", "array"]; function isDeepDefinition(typeDefinition) { if (!deepTypesType.includes(typeDefinition.type)) { throw TypeError("Asserted type is not a flat type definition"); } } export const getAllTypesInDefinition = (objectDefinition) => { const typeDefinitions = Object.values(objectDefinition); const result = []; typeDefinitions.forEach((typeDefinition) => { const listedTypes = Array.isArray(typeDefinition) ? typeDefinition : [typeDefinition]; listedTypes.forEach((aTypeDefinition) => { if (deepTypesType.includes(aTypeDefinition.type)) { isDeepDefinition(aTypeDefinition); if (typeof aTypeDefinition.subtype === "string") { result.push(aTypeDefinition.subtype); return; } result.push(...getAllTypesInDefinition(aTypeDefinition.subtype)); return; } result.push(aTypeDefinition.type); }); }); return result; }; //# sourceMappingURL=get-all-types-in-definition.js.map