Files
FastGPT/packages/global/common/tsRest/fastgpt/openapi.ts
Archer 8e07edb99d update tsrest code (#5755)
* doc

* update tsrest code
2025-10-13 16:35:56 +08:00

37 lines
994 B
TypeScript

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);