Skip to content

Commit 1b2a95d

Browse files
authored
Merge branch 'openapi-ts:main' into support-custom-path-serializer
2 parents 154558c + 61c176c commit 1b2a95d

File tree

22 files changed

+276
-58
lines changed

22 files changed

+276
-58
lines changed

.github/workflows/ci.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ jobs:
1414
lint:
1515
runs-on: ubuntu-latest
1616
steps:
17-
- uses: actions/checkout@v4
17+
- uses: actions/checkout@v5
1818
- uses: actions/setup-node@v4
1919
with:
2020
node-version: 22
@@ -28,7 +28,7 @@ jobs:
2828
matrix:
2929
node-version: [20, 22]
3030
steps:
31-
- uses: actions/checkout@v4
31+
- uses: actions/checkout@v5
3232
- uses: actions/setup-node@v4
3333
with:
3434
node-version: ${{ matrix.node-version }}
@@ -39,7 +39,7 @@ jobs:
3939
test-e2e:
4040
runs-on: ubuntu-latest
4141
steps:
42-
- uses: actions/checkout@v4
42+
- uses: actions/checkout@v5
4343
- uses: actions/setup-node@v4
4444
with:
4545
node-version: 22
@@ -51,7 +51,7 @@ jobs:
5151
test-macos:
5252
runs-on: macos-latest
5353
steps:
54-
- uses: actions/checkout@v4
54+
- uses: actions/checkout@v5
5555
- uses: actions/setup-node@v4
5656
with:
5757
node-version: 22
@@ -62,7 +62,7 @@ jobs:
6262
test-windows:
6363
runs-on: windows-latest
6464
steps:
65-
- uses: actions/checkout@v4
65+
- uses: actions/checkout@v5
6666
- uses: actions/setup-node@v4
6767
with:
6868
node-version: 22

.github/workflows/release.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ jobs:
1717
pull-requests: write
1818
steps:
1919
- name: Git setup
20-
uses: actions/checkout@v4
20+
uses: actions/checkout@v5
2121

2222
- name: Node setup
2323
uses: actions/setup-node@v4

.github/workflows/size-limit.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ jobs:
1212
pull-requests: write
1313
runs-on: ubuntu-latest
1414
steps:
15-
- uses: actions/checkout@v4
15+
- uses: actions/checkout@v5
1616
- uses: actions/setup-node@v4
1717
with:
1818
node-version: 22

packages/openapi-metadata/CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
# openapi-metadata
22

3+
## 0.2.2
4+
5+
### Patch Changes
6+
7+
- [#2365](https://github.com/openapi-ts/openapi-typescript/pull/2365) [`b419aee`](https://github.com/openapi-ts/openapi-typescript/commit/b419aee0ded0a329ce0623dacb67159bbb7c7800) Thanks [@spamshaker](https://github.com/spamshaker)! - fix(#2364) for allowing to add params via ApiOperation tag
8+
39
## 0.2.1
410

511
### Patch Changes

packages/openapi-metadata/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "openapi-metadata",
33
"description": "Auto-Generate OpenAPI specifications from Typescript decorators",
4-
"version": "0.2.1",
4+
"version": "0.2.2",
55
"author": {
66
"name": "Martin PAUCOT",
77
"email": "[email protected]"

packages/openapi-metadata/src/decorators/api-operation.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,8 @@
1-
import { type OperationMetadata, OperationMetadataStorage } from "../metadata/operation.js";
1+
import {
2+
type OperationMetadata,
3+
OperationMetadataStorage,
4+
OperationParameterMetadataStorage,
5+
} from "../metadata/index.js";
26

37
export type ApiOperationOptions = OperationMetadata;
48

@@ -11,5 +15,8 @@ export type ApiOperationOptions = OperationMetadata;
1115
export function ApiOperation(options: ApiOperationOptions): MethodDecorator {
1216
return (target, propertyKey) => {
1317
OperationMetadataStorage.defineMetadata(target, options, propertyKey);
18+
if (Array.isArray(options.parameters)) {
19+
OperationParameterMetadataStorage.mergeMetadata(target, options.parameters, propertyKey);
20+
}
1421
};
1522
}

packages/openapi-metadata/src/metadata/operation.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
import type { OpenAPIV3 } from "openapi-types";
22
import type { HttpMethods } from "../types.js";
33
import { createMetadataStorage } from "./factory.js";
4+
import type { OperationParameterMetadata } from "./operation-parameter.js";
45

5-
export type OperationMetadata = Omit<OpenAPIV3.OperationObject, "responses"> & {
6+
export type OperationMetadata = Omit<OpenAPIV3.OperationObject, "responses" | "parameters"> & {
67
/**
78
* Operation path.
89
* Can include parameters.
@@ -13,6 +14,11 @@ export type OperationMetadata = Omit<OpenAPIV3.OperationObject, "responses"> & {
1314
* Available methods for this operation.
1415
*/
1516
methods?: HttpMethods[];
17+
18+
/**
19+
* Represents metadata about an operation parameter.
20+
*/
21+
parameters?: OperationParameterMetadata[];
1622
};
1723

1824
export const OperationMetadataKey = Symbol("Operation");

packages/openapi-metadata/test/decorators.test.ts

Lines changed: 23 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,15 @@
11
import "reflect-metadata";
22
import {
3+
ApiBasicAuth,
4+
ApiBearerAuth,
35
ApiBody,
46
ApiCookie,
7+
ApiCookieAuth,
58
ApiExcludeController,
69
ApiExcludeOperation,
710
ApiExtraModels,
811
ApiHeader,
12+
ApiOauth2,
913
ApiOperation,
1014
ApiParam,
1115
ApiProperty,
@@ -19,26 +23,40 @@ import {
1923
ExtraModelsMetadataStorage,
2024
OperationBodyMetadataStorage,
2125
OperationMetadataStorage,
26+
type OperationParameterMetadata,
2227
OperationParameterMetadataStorage,
2328
OperationResponseMetadataStorage,
2429
OperationSecurityMetadataStorage,
2530
PropertyMetadataStorage,
2631
} from "../src/metadata/index.js";
27-
import { ApiBasicAuth, ApiBearerAuth, ApiCookieAuth, ApiOauth2 } from "../src/decorators/api-security.js";
2832

2933
test("@ApiOperation", () => {
34+
const parameters: OperationParameterMetadata[] = [
35+
{
36+
in: "path",
37+
name: "id",
38+
},
39+
] as const;
40+
3041
class MyController {
31-
@ApiOperation({ summary: "Hello", path: "/test", methods: ["get"] })
42+
@ApiOperation({
43+
summary: "Hello",
44+
path: "/test",
45+
methods: ["get"],
46+
parameters,
47+
})
3248
operation() {}
3349
}
3450

35-
const metadata = OperationMetadataStorage.getMetadata(MyController.prototype, "operation");
36-
37-
expect(metadata).toEqual({
51+
const operationMetadata = OperationMetadataStorage.getMetadata(MyController.prototype, "operation");
52+
const parameterMetadata = OperationParameterMetadataStorage.getMetadata(MyController.prototype, "operation");
53+
expect(operationMetadata).toEqual({
3854
summary: "Hello",
3955
path: "/test",
4056
methods: ["get"],
57+
parameters,
4158
});
59+
expect(parameterMetadata).toEqual(parameters);
4260
});
4361

4462
test("@ApiBody", () => {

packages/openapi-react-query/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@
6060
"@tanstack/react-query": "^5.84.2",
6161
"@testing-library/react": "^16.3.0",
6262
"@types/react": "18.3.21",
63-
"@vitejs/plugin-react": "^4.7.0",
63+
"@vitejs/plugin-react": "^5.0.0",
6464
"execa": "^9.6.0",
6565
"msw": "^2.10.4",
6666
"openapi-fetch": "workspace:^",

packages/openapi-typescript/CHANGELOG.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,13 @@
11
# openapi-typescript
22

3+
## 7.9.1
4+
5+
### Patch Changes
6+
7+
- [#2393](https://github.com/openapi-ts/openapi-typescript/pull/2393) [`6943ccf`](https://github.com/openapi-ts/openapi-typescript/commit/6943ccf216f602f004eb178dd652ffcbafc05346) Thanks [@simon-curtis](https://github.com/simon-curtis)! - Now checking for null & empty string when generating enum description
8+
9+
- [#2375](https://github.com/openapi-ts/openapi-typescript/pull/2375) [`5be22d7`](https://github.com/openapi-ts/openapi-typescript/commit/5be22d7adc8bc36fdfa91f1aa3473919107060f2) Thanks [@ParkerVR](https://github.com/ParkerVR)! - Fix behavior when using enum and export-type flags
10+
311
## 7.9.0
412

513
### Minor Changes

0 commit comments

Comments
 (0)