rttc
Version:
Runtime type-checking for JavaScript.
43 lines (36 loc) • 1.13 kB
JavaScript
/**
* Module dependencies
*/
// N/A
/**
* getRdt()
*
* Get the formal RDT ("RTTC display type") of the provided type schema.
*
* @param {Ref} typeSchema
* The type schema to parse.
* (Note that this should already be verified as a valid type schema.)
*
* @returns {String}
* The formal RDT ("RTTC display type" or "RDT-formatted type") of
* the specified type schema.
*/
module.exports = function getRdt(typeSchema) {
// If the type schema is a simple recognized string, then it's
// already a valid RDT-- so just return it. Otherwise, it should
// always be dictionary or array, so parse that and return accordingly.
if (
typeSchema === 'string' ||
typeSchema === 'number' ||
typeSchema === 'boolean' ||
typeSchema === 'lamda' || //(sic)
typeSchema === 'json' ||
typeSchema === 'ref'
) {
return typeSchema;
} else if (!!typeSchema && typeof typeSchema === 'object') {
return Array.isArray(typeSchema)? 'array' : 'dictionary';
} else {
throw new Error('Could not parse unrecognized type schema: `'+typeSchema+'`');
}
};