67 lines
1.5 KiB
JavaScript
67 lines
1.5 KiB
JavaScript
|
|
const path = require("path");
|
||
|
|
|
||
|
|
const root = path.resolve(__dirname, "..", "..");
|
||
|
|
const apiClientReactSrc = path.resolve(root, "lib", "api-client-react", "src");
|
||
|
|
const apiZodSrc = path.resolve(root, "lib", "api-zod", "src");
|
||
|
|
|
||
|
|
const titleTransformer = (config) => {
|
||
|
|
config.info ??= {};
|
||
|
|
config.info.title = "Api";
|
||
|
|
return config;
|
||
|
|
};
|
||
|
|
|
||
|
|
module.exports = {
|
||
|
|
"api-client-react": {
|
||
|
|
input: {
|
||
|
|
target: path.resolve(__dirname, "./openapi.yaml"),
|
||
|
|
override: {
|
||
|
|
transformer: titleTransformer,
|
||
|
|
},
|
||
|
|
},
|
||
|
|
output: {
|
||
|
|
workspace: apiClientReactSrc,
|
||
|
|
target: "generated",
|
||
|
|
client: "react-query",
|
||
|
|
mode: "split",
|
||
|
|
baseUrl: "/api",
|
||
|
|
clean: true,
|
||
|
|
prettier: true,
|
||
|
|
override: {
|
||
|
|
fetch: {
|
||
|
|
includeHttpResponseReturnType: false,
|
||
|
|
},
|
||
|
|
mutator: {
|
||
|
|
path: path.resolve(apiClientReactSrc, "custom-fetch.ts"),
|
||
|
|
name: "customFetch",
|
||
|
|
},
|
||
|
|
},
|
||
|
|
},
|
||
|
|
},
|
||
|
|
zod: {
|
||
|
|
input: {
|
||
|
|
target: path.resolve(__dirname, "./openapi.yaml"),
|
||
|
|
override: {
|
||
|
|
transformer: titleTransformer,
|
||
|
|
},
|
||
|
|
},
|
||
|
|
output: {
|
||
|
|
workspace: apiZodSrc,
|
||
|
|
client: "zod",
|
||
|
|
target: "generated",
|
||
|
|
schemas: { path: "generated/types", type: "typescript" },
|
||
|
|
mode: "split",
|
||
|
|
clean: true,
|
||
|
|
prettier: true,
|
||
|
|
override: {
|
||
|
|
zod: {
|
||
|
|
coerce: {
|
||
|
|
query: ["boolean", "number", "string"],
|
||
|
|
param: ["boolean", "number", "string"],
|
||
|
|
},
|
||
|
|
},
|
||
|
|
useDates: true,
|
||
|
|
},
|
||
|
|
},
|
||
|
|
},
|
||
|
|
};
|