MCPcopy Index your code
hub / github.com/glideapps/quicktype / fromTypeName

Function fromTypeName

src/JSONSchemaInput.ts:316–373  ·  view source on GitHub ↗
(schema: StringMap, path: Ref, inferredName: string, typeName: string)

Source from the content-addressed store, hash-verified

314 }
315
316 function fromTypeName(schema: StringMap, path: Ref, inferredName: string, typeName: string): TypeRef {
317 const [name, isInferred] = getName(schema, inferredName, true);
318 switch (typeName) {
319 case "object":
320 let required: string[];
321 if (schema.required === undefined) {
322 required = [];
323 } else {
324 required = checkStringArray(schema.required);
325 }
326 if (schema.properties !== undefined) {
327 return makeClass(schema, path, name, isInferred, checkStringMap(schema.properties), required);
328 } else if (schema.additionalProperties !== undefined) {
329 const additional = schema.additionalProperties;
330 if (additional === true) {
331 return typeBuilder.getMapType(typeBuilder.getPrimitiveType("any"));
332 } else if (additional === false) {
333 return makeClass(schema, path, name, isInferred, {}, required);
334 } else {
335 return makeMap(path, name, checkStringMap(additional));
336 }
337 } else {
338 return typeBuilder.getMapType(typeBuilder.getPrimitiveType("any"));
339 }
340 case "array":
341 if (schema.items !== undefined) {
342 path = path.push({ kind: PathElementKind.Items });
343 return typeBuilder.getArrayType(
344 toType(checkStringMap(schema.items), path, pluralize.singular(name), true)
345 );
346 }
347 return typeBuilder.getArrayType(typeBuilder.getPrimitiveType("any"));
348 case "boolean":
349 return typeBuilder.getPrimitiveType("bool");
350 case "string":
351 if (schema.format !== undefined) {
352 switch (schema.format) {
353 case "date":
354 return typeBuilder.getPrimitiveType("date");
355 case "time":
356 return typeBuilder.getPrimitiveType("time");
357 case "date-time":
358 return typeBuilder.getPrimitiveType("date-time");
359 default:
360 return panic(`String format ${schema.format} not supported`);
361 }
362 }
363 return typeBuilder.getPrimitiveType("string");
364 case "null":
365 return typeBuilder.getPrimitiveType("null");
366 case "integer":
367 return typeBuilder.getPrimitiveType("integer");
368 case "number":
369 return typeBuilder.getPrimitiveType("double");
370 default:
371 return panic(`not a type name: ${typeName}`);
372 }
373 }

Callers 1

convertToTypeFunction · 0.85

Calls 7

checkStringMapFunction · 0.90
panicFunction · 0.90
getNameFunction · 0.85
checkStringArrayFunction · 0.85
makeClassFunction · 0.85
makeMapFunction · 0.85
toTypeFunction · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…