update tsrest code (#5755)

* doc

* update tsrest code
This commit is contained in:
Archer
2025-10-12 00:04:51 +08:00
committed by archer
parent bd33873fcf
commit 8e07edb99d
27 changed files with 505 additions and 355 deletions

View File

@@ -0,0 +1,36 @@
import { fastgptContract, type FadtGPTContractType } from './contracts';
import { generateOpenApi } from '@ts-rest/open-api';
const hasCustomTags = (metadata: unknown): metadata is { tags: string[] } => {
return !!metadata && typeof metadata === 'object' && 'tags' in metadata;
};
type OpenAPIObject = ReturnType<typeof generateOpenApi>;
function generateOpenApiDocument(c: FadtGPTContractType): OpenAPIObject {
return generateOpenApi(
c,
{
info: {
title: 'FastGPT OpenAPI',
version: '4.13.2',
description: 'FastGPT OpenAPI'
},
servers: [{ url: '/api' }]
},
{
operationMapper(operation, appRoute) {
return {
...operation,
...(hasCustomTags(appRoute.metadata)
? {
tags: appRoute.metadata.tags
}
: {})
};
},
setOperationId: false
}
);
}
export const fastgptOpenApiDocument = generateOpenApiDocument(fastgptContract);