in src/docgen/transpile/transpile.ts [696:746]
public typeReference(ref: reflect.TypeReference): TranspiledTypeReference {
if (ref.type) {
const transpiled = this.type(ref.type);
return TranspiledTypeReference.type(this, ref, transpiled);
}
if (ref.unionOfTypes) {
const transpiled = ref.unionOfTypes.map((t) => this.typeReference(t));
return TranspiledTypeReference.unionOfTypes(this, ref, transpiled);
}
if (ref.arrayOfType) {
const transpiled = this.typeReference(ref.arrayOfType);
return TranspiledTypeReference.arrayOfType(this, ref, transpiled);
}
if (ref.mapOfType) {
const transpiled = this.typeReference(ref.mapOfType);
return TranspiledTypeReference.mapOfType(this, ref, transpiled);
}
if (ref.isAny) {
return TranspiledTypeReference.any(this, ref);
}
if (ref.primitive) {
let transpiled;
switch (ref.primitive) {
case 'string':
transpiled = this.str();
break;
case 'boolean':
transpiled = this.boolean();
break;
case 'number':
transpiled = this.number();
break;
case 'date':
transpiled = this.date();
break;
case 'json':
transpiled = this.json();
break;
default:
throw new Error(`Unsupported primitive type '${ref.primitive}'`);
}
return TranspiledTypeReference.primitive(this, ref, transpiled);
}
throw new Error(`Unsupported type: ${ref.toString()}`);
}