feat: Gemini AI integration — conversations, messages, image gen
- Fixed YAML parse error (unquoted colon in description broke @scalar/json-magic) - Converted orval.config.ts → orval.config.cjs (fixes orval v8 TypeScript config loading) - Codegen now works: zod schemas + React Query hooks regenerated with Gemini types - Added Gemini tag, 4 path groups, 8 schemas to openapi.yaml - lib/integrations-gemini-ai wired: tsconfig refs, api-server package.json dep - Created routes/gemini.ts: CRUD conversations/messages + SSE chat stream + image gen - Mounted /gemini router in routes/index.ts
This commit is contained in:
66
lib/api-spec/orval.config.cjs
Normal file
66
lib/api-spec/orval.config.cjs
Normal file
@@ -0,0 +1,66 @@
|
||||
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,
|
||||
},
|
||||
},
|
||||
},
|
||||
};
|
||||
Reference in New Issue
Block a user