Merge pull request #27965 from kevspl/fixtypedrouter

fix: typed router export
This commit is contained in:
Aramis Sennyey
2024-12-04 18:13:01 -07:00
committed by GitHub
6 changed files with 27 additions and 18 deletions
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/backend-openapi-utils': minor
---
Fixed a Typescript error when trying to use the new OpenAPI server-side generated code.
+2 -2
View File
@@ -530,7 +530,6 @@ declare namespace internal {
DocEndpointTemplate,
TemplateToDocEndpoint,
EndpointMapRequestMatcher,
TypedRouter,
};
}
export { internal };
@@ -902,7 +901,8 @@ type TuplifyUnion<
> = true extends N ? [] : Push<TuplifyUnion<Exclude<T, L>>, L>;
// @public (undocumented)
interface TypedRouter<GeneratedEndpointMap extends EndpointMap> extends Router {
export interface TypedRouter<GeneratedEndpointMap extends EndpointMap>
extends Router {
// (undocumented)
delete: EndpointMapRequestMatcher<GeneratedEndpointMap, this, '_delete'>;
// (undocumented)
+1 -1
View File
@@ -30,7 +30,7 @@ export type {
CookieParameters,
PathParameters,
} from './utility';
export type { ApiRouter } from './router';
export type { ApiRouter, TypedRouter } from './router';
export type { PathTemplate } from './types/common';
export { wrapInOpenApiTestServer, wrapServer } from './testUtils';
export {
+17 -1
View File
@@ -14,7 +14,12 @@
* limitations under the License.
*/
import { Router } from 'express';
import { DocRequestMatcher, RequiredDoc } from './types';
import {
DocRequestMatcher,
EndpointMap,
EndpointMapRequestMatcher,
RequiredDoc,
} from './types';
/**
* Typed Express router based on an OpenAPI 3.1 spec.
@@ -37,3 +42,14 @@ export interface ApiRouter<Doc extends RequiredDoc> extends Router {
head: DocRequestMatcher<Doc, this, 'head'>;
}
/**
* @public
*/
export interface TypedRouter<GeneratedEndpointMap extends EndpointMap>
extends Router {
get: EndpointMapRequestMatcher<GeneratedEndpointMap, this, 'get'>;
post: EndpointMapRequestMatcher<GeneratedEndpointMap, this, 'post'>;
put: EndpointMapRequestMatcher<GeneratedEndpointMap, this, 'put'>;
delete: EndpointMapRequestMatcher<GeneratedEndpointMap, this, '_delete'>;
}
+2 -2
View File
@@ -15,8 +15,8 @@
*/
import PromiseRouter from 'express-promise-router';
import { ApiRouter } from './router';
import { EndpointMap, RequiredDoc, TypedRouter } from './types';
import { ApiRouter, TypedRouter } from './router';
import { EndpointMap, RequiredDoc } from './types';
import {
ErrorRequestHandler,
RequestHandler,
@@ -13,7 +13,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import { Router } from 'express';
import type core from 'express-serve-static-core';
import { PathTemplate, ValueOf } from './common';
@@ -209,14 +208,3 @@ export interface EndpointMapRequestMatcher<
>
): T;
}
/**
* @public
*/
export interface TypedRouter<GeneratedEndpointMap extends EndpointMap>
extends Router {
get: EndpointMapRequestMatcher<GeneratedEndpointMap, this, 'get'>;
post: EndpointMapRequestMatcher<GeneratedEndpointMap, this, 'post'>;
put: EndpointMapRequestMatcher<GeneratedEndpointMap, this, 'put'>;
delete: EndpointMapRequestMatcher<GeneratedEndpointMap, this, '_delete'>;
}