Update existing types and rename structured output fields in SDK docs
This commit is contained in:
parent
13006d6d7c
commit
8d71e43508
33 changed files with 7352 additions and 2857 deletions
|
|
@ -12,6 +12,33 @@ import { createClient } from "@hey-api/openapi-ts"
|
|||
const opencode = path.resolve(dir, "../../opencode")
|
||||
|
||||
await $`bun dev generate > ${dir}/openapi.json`.cwd(opencode)
|
||||
await Bun.write(path.join(dir, "openapi-legacy.json"), JSON.stringify(legacyOpenApi(await Bun.file("openapi.json").json())))
|
||||
|
||||
await createClient({
|
||||
input: "./openapi-legacy.json",
|
||||
output: {
|
||||
path: "./src/gen",
|
||||
tsConfigPath: path.join(dir, "tsconfig.json"),
|
||||
clean: true,
|
||||
},
|
||||
plugins: [
|
||||
{
|
||||
name: "@hey-api/typescript",
|
||||
exportFromIndex: false,
|
||||
},
|
||||
{
|
||||
name: "@hey-api/sdk",
|
||||
instance: "OpencodeClient",
|
||||
exportFromIndex: false,
|
||||
auth: false,
|
||||
},
|
||||
{
|
||||
name: "@hey-api/client-fetch",
|
||||
exportFromIndex: false,
|
||||
baseUrl: "http://localhost:4096",
|
||||
},
|
||||
],
|
||||
})
|
||||
|
||||
await createClient({
|
||||
input: "./openapi.json",
|
||||
|
|
@ -45,3 +72,27 @@ await $`bun prettier --write src/v2`
|
|||
await $`rm -rf dist`
|
||||
await $`bun tsc`
|
||||
await $`rm openapi.json`
|
||||
await $`rm openapi-legacy.json`
|
||||
|
||||
type OpenApiSpec = {
|
||||
paths: Record<string, Record<string, { parameters?: Array<{ name: string; in: string }> }>>
|
||||
}
|
||||
|
||||
function legacyOpenApi(input: OpenApiSpec) {
|
||||
const spec = structuredClone(input)
|
||||
spec.paths = Object.fromEntries(
|
||||
Object.entries(spec.paths)
|
||||
.filter(([route]) => route !== "/api" && !route.startsWith("/api/"))
|
||||
.map(([route, item]) => [route.replaceAll("{sessionID}", "{id}"), renameLegacyPathParameters(item)]),
|
||||
)
|
||||
return spec
|
||||
}
|
||||
|
||||
function renameLegacyPathParameters(item: OpenApiSpec["paths"][string]) {
|
||||
for (const operation of Object.values(item)) {
|
||||
for (const parameter of operation.parameters ?? []) {
|
||||
if (parameter.in === "path" && parameter.name === "sessionID") parameter.name = "id"
|
||||
}
|
||||
}
|
||||
return item
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue