diff --git a/packages/openapi-generator/src/httpStatus.ts b/packages/openapi-generator/src/httpStatus.ts new file mode 100644 index 00000000..8472923f --- /dev/null +++ b/packages/openapi-generator/src/httpStatus.ts @@ -0,0 +1,58 @@ +export const STATUS_CODES = { + '100': 'Continue', + '101': 'Switching Protocols', + '102': 'Processing', + '200': 'OK', + '201': 'Created', + '202': 'Accepted', + '203': 'Non-Authoritative Information', + '204': 'No Content', + '205': 'Reset Content', + '206': 'Partial Content', + '207': 'Multi-Status', + '226': 'IM Used', + '300': 'Multiple Choices', + '301': 'Moved Permanently', + '302': 'Found', + '303': 'See Other', + '304': 'Not Modified', + '305': 'Use Proxy', + '307': 'Temporary Redirect', + '308': 'Permanent Redirect', + '400': 'Bad Request', + '401': 'Unauthorized', + '402': 'Payment Required', + '403': 'Forbidden', + '404': 'Not Found', + '405': 'Method Not Allowed', + '406': 'Not Acceptable', + '407': 'Proxy Authentication Required', + '408': 'Request Timeout', + '409': 'Conflict', + '410': 'Gone', + '411': 'Length Required', + '412': 'Precondition Failed', + '413': 'Payload Too Large', + '414': 'URI Too Long', + '415': 'Unsupported Media Type', + '416': 'Range Not Satisfiable', + '417': 'Expectation Failed', + '418': "I'm a teapot", + '422': 'Unprocessable Entity', + '423': 'Locked', + '424': 'Failed Dependency', + '426': 'Upgrade Required', + '428': 'Precondition Required', + '429': 'Too Many Requests', + '431': 'Request Header Fields Too Large', + '451': 'Unavailable For Legal Reasons', + '500': 'Internal Server Error', + '501': 'Not Implemented', + '502': 'Bad Gateway', + '503': 'Service Unavailable', + '504': 'Gateway Time-out', + '505': 'HTTP Version Not Supported', + '506': 'Variant Also Negotiates', + '507': 'Insufficient Storage', + '511': 'Network Authentication Required', +}; diff --git a/packages/openapi-generator/src/openapi.ts b/packages/openapi-generator/src/openapi.ts index 3f15e360..2b5afc2b 100644 --- a/packages/openapi-generator/src/openapi.ts +++ b/packages/openapi-generator/src/openapi.ts @@ -1,5 +1,6 @@ import { OpenAPIV3_1 } from 'openapi-types'; +import { STATUS_CODES } from 'http'; import { parseCommentBlock } from './jsdoc'; import type { Components } from './ref'; import type { Route } from './route'; @@ -106,7 +107,7 @@ function routeToOpenAPI(route: Route): [string, string, OpenAPIV3_1.OperationObj ? { requestBody: schemaToOpenAPI(route.body) as any } : {}), responses: Object.entries(route.response).reduce((acc, [code, response]) => { - const description = response.comment?.description ?? ''; + const description = response.comment?.description ?? STATUS_CODES[code] ?? ''; return { ...acc, diff --git a/packages/openapi-generator/test/openapi.test.ts b/packages/openapi-generator/test/openapi.test.ts index bfeafea4..8390f5e6 100644 --- a/packages/openapi-generator/test/openapi.test.ts +++ b/packages/openapi-generator/test/openapi.test.ts @@ -167,7 +167,7 @@ testCase('simple route', SIMPLE, { ], responses: { 200: { - description: '', + description: 'OK', content: { 'application/json': { schema: {