Files
appwebks/genapi.js
T
zhenyi defde2bca9 feat(schemas): add new API schema definitions for invitation, deployment, and issue management
- Add AcceptInvitationParams and AcceptInvitationRequest schemas
- Add AddDeployKeyParams, AddDomainParams, AddGpgKeyParams, AddMemberParams, AddReplyParams, AddRepoMemberParams, and AddSshKeyParams schemas
- Add ApiEmptyResponse and ApiErrorResponse schemas
- Add ApiResponse schemas for BranchMergeCheck, BranchProtectionRule, CaptchaResponse, ContextMe, CreateInvitationResponse, EmailResponse, Enable2FAResponse, Get2FAStatusResponse
- Add ApiResponse schemas for Issue, IssueAssignee, IssueComment, IssueEvent, IssueLabel, IssueLabelRelation, IssueMilestone, IssuePrRelation, IssueReaction, IssueRepoRelation, IssueSubscriber, and IssueTemplate
- Add ApiResponse schemas for Option_BranchProtectionRule, PrAssignee, PrCheckRun, PrCommit, PrEvent, PrFile, and PrLabel
2026-06-07 21:20:51 +08:00

35 lines
1.0 KiB
JavaScript

import { createRequire } from 'node:module';
import { dirname, resolve } from 'node:path';
import { fileURLToPath } from 'node:url';
import { readFile, writeFile } from 'node:fs/promises';
const require = createRequire(import.meta.url);
const { generate } = require('openapi-typescript-codegen');
const rootDir = dirname(fileURLToPath(import.meta.url));
const input = resolve(rootDir, 'openapi.json');
const output = resolve(rootDir, 'src/client');
await generate({
input,
output,
httpClient: 'axios',
useOptions: true,
useUnionTypes: true,
exportCore: true,
exportServices: true,
exportModels: true,
exportSchemas: true,
indent: 'tab',
});
console.log(`Generated OpenAPI client: ${output}`);
const openApiPath = resolve(output, 'core/OpenAPI.ts');
const openApiContent = await readFile(openApiPath, 'utf8');
const updatedOpenApiContent = openApiContent.replace(
'WITH_CREDENTIALS: false,',
'WITH_CREDENTIALS: true,',
);
await writeFile(openApiPath, updatedOpenApiContent);
console.log(`Updated OpenAPI.ts`);