{"path":"lib/api-spec/orval.config.ts","size":1803,"locked":false,"binary":false,"truncated":false,"content":"import { defineConfig, InputTransformerFn } from \"orval\";\nimport path from \"path\";\n\nconst root = path.resolve(__dirname, \"..\", \"..\");\nconst apiClientReactSrc = path.resolve(root, \"lib\", \"api-client-react\", \"src\");\nconst apiZodSrc = path.resolve(root, \"lib\", \"api-zod\", \"src\");\n\n// Our exports make assumptions about the title of the API being \"Api\" (i.e. generated output is `api.ts`).\nconst titleTransformer: InputTransformerFn = (config) => {\n  config.info ??= {};\n  config.info.title = \"Api\";\n\n  return config;\n};\n\nexport default defineConfig({\n  \"api-client-react\": {\n    input: {\n      target: \"./openapi.yaml\",\n      override: {\n        transformer: titleTransformer,\n      },\n    },\n    output: {\n      workspace: apiClientReactSrc,\n      target: \"generated\",\n      client: \"react-query\",\n      mode: \"split\",\n      baseUrl: \"/api\",\n      clean: true,\n      prettier: true,\n      override: {\n        fetch: {\n          includeHttpResponseReturnType: false,\n        },\n        mutator: {\n          path: path.resolve(apiClientReactSrc, \"custom-fetch.ts\"),\n          name: \"customFetch\",\n        },\n      },\n    },\n  },\n  zod: {\n    input: {\n      target: \"./openapi.yaml\",\n      override: {\n        transformer: titleTransformer,\n      },\n    },\n    output: {\n      workspace: apiZodSrc,\n      client: \"zod\",\n      target: \"generated\",\n      schemas: { path: \"generated/types\", type: \"typescript\" },\n      mode: \"split\",\n      clean: true,\n      prettier: true,\n      override: {\n        zod: {\n          coerce: {\n            query: ['boolean', 'number', 'string'],\n            param: ['boolean', 'number', 'string'],\n            body: ['bigint', 'date'],\n            response: ['bigint', 'date'],\n          },\n        },\n        useDates: true,\n        useBigInt: true,\n      },\n    },\n  },\n});\n"}