diff --git a/.changeset/rich-suns-drive.md b/.changeset/rich-suns-drive.md new file mode 100644 index 0000000000..0b2eb85a5b --- /dev/null +++ b/.changeset/rich-suns-drive.md @@ -0,0 +1,5 @@ +--- +'@backstage/backend-openapi-utils': minor +--- + +Fixed a Typescript error when trying to use the new OpenAPI server-side generated code. diff --git a/packages/backend-openapi-utils/src/index.ts b/packages/backend-openapi-utils/src/index.ts index a66894d473..9389fe3be6 100644 --- a/packages/backend-openapi-utils/src/index.ts +++ b/packages/backend-openapi-utils/src/index.ts @@ -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 { diff --git a/packages/backend-openapi-utils/src/router.ts b/packages/backend-openapi-utils/src/router.ts index 253fc1596e..48d89054ba 100644 --- a/packages/backend-openapi-utils/src/router.ts +++ b/packages/backend-openapi-utils/src/router.ts @@ -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 extends Router { head: DocRequestMatcher; } + +/** + * @public + */ +export interface TypedRouter + extends Router { + get: EndpointMapRequestMatcher; + post: EndpointMapRequestMatcher; + put: EndpointMapRequestMatcher; + delete: EndpointMapRequestMatcher; +} diff --git a/packages/backend-openapi-utils/src/types/generated.ts b/packages/backend-openapi-utils/src/types/generated.ts index b0b80f45fb..e4d5dada72 100644 --- a/packages/backend-openapi-utils/src/types/generated.ts +++ b/packages/backend-openapi-utils/src/types/generated.ts @@ -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 - extends Router { - get: EndpointMapRequestMatcher; - post: EndpointMapRequestMatcher; - put: EndpointMapRequestMatcher; - delete: EndpointMapRequestMatcher; -}