literal.js 609 B

123456789101112131415161718192021
  1. export function parseLiteralDef(def, refs) {
  2. const parsedType = typeof def.value;
  3. if (parsedType !== "bigint" &&
  4. parsedType !== "number" &&
  5. parsedType !== "boolean" &&
  6. parsedType !== "string") {
  7. return {
  8. type: Array.isArray(def.value) ? "array" : "object",
  9. };
  10. }
  11. if (refs.target === "openApi3") {
  12. return {
  13. type: parsedType === "bigint" ? "integer" : parsedType,
  14. enum: [def.value],
  15. };
  16. }
  17. return {
  18. type: parsedType === "bigint" ? "integer" : parsedType,
  19. const: def.value,
  20. };
  21. }