Skip to content

Commit ff073b5

Browse files
committed
fix: support parameter serialization style / explode
1 parent e32abf5 commit ff073b5

13 files changed

+870
-29
lines changed

docs/interfaces/openapi.OpenApiParameter.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ ___
9696

9797
### in
9898

99-
**in**: ``"query"`` \| ``"header"`` \| ``"path"`` \| ``"cookie"``
99+
**in**: [`OpenApiParameterIn`](../modules/openapi.md#openapiparameterin)
100100

101101
The location of the parameter. Possible values are "query", "header", "path" or "cookie".
102102

@@ -135,7 +135,7 @@ ___
135135

136136
### style
137137

138-
`Optional` **style**: ``"matrix"`` \| ``"label"`` \| ``"form"`` \| ``"simple"`` \| ``"spaceDelimited"`` \| ``"pipeDelimited"`` \| ``"deepObject"``
138+
`Optional` **style**: [`OpenApiParameterStyle`](../modules/openapi.md#openapiparameterstyle)
139139

140140
Describes how the parameter value will be serialized depending on the type of the parameter value. Default values
141141
(based on value of in): for query - form; for path - simple; for header - simple; for cookie - form.
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
[api-typescript-generator](../../README.md) / [Modules](../modules.md) / [openapi-client](../modules/openapi_client.md) / CommonHttpClientRequestParameterSerializeInfo
2+
3+
# Interface: CommonHttpClientRequestParameterSerializeInfo
4+
5+
[openapi-client](../modules/openapi_client.md).CommonHttpClientRequestParameterSerializeInfo
6+
7+
Information about how to serialize a request parameter.
8+
9+
## Table of contents
10+
11+
### Properties
12+
13+
- [explode](openapi_client.CommonHttpClientRequestParameterSerializeInfo.md#explode)
14+
- [style](openapi_client.CommonHttpClientRequestParameterSerializeInfo.md#style)
15+
16+
## Properties
17+
18+
### explode
19+
20+
`Optional` **explode**: `boolean`
21+
22+
Serialization explode.
23+
24+
___
25+
26+
### style
27+
28+
`Optional` **style**: [`CommonHttpClientRequestParameterSerializeStyle`](../modules/openapi_client.md#commonhttpclientrequestparameterserializestyle)
29+
30+
Serialization style.

docs/modules/openapi.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@
3333
- [OpenApiFormats](openapi.md#openapiformats)
3434
- [OpenApiHeader](openapi.md#openapiheader)
3535
- [OpenApiHttpMethod](openapi.md#openapihttpmethod)
36+
- [OpenApiParameterIn](openapi.md#openapiparameterin)
37+
- [OpenApiParameterStyle](openapi.md#openapiparameterstyle)
3638
- [OpenApiPathItem](openapi.md#openapipathitem)
3739
- [OpenApiPaths](openapi.md#openapipaths)
3840
- [OpenApiPrimitiveTypes](openapi.md#openapiprimitivetypes)
@@ -69,6 +71,22 @@ OpenAPI HTTP method.
6971

7072
___
7173

74+
### OpenApiParameterIn
75+
76+
Ƭ **OpenApiParameterIn**: ``"query"`` \| ``"header"`` \| ``"path"`` \| ``"cookie"``
77+
78+
Parameter locations.
79+
80+
___
81+
82+
### OpenApiParameterStyle
83+
84+
Ƭ **OpenApiParameterStyle**: ``"matrix"`` \| ``"label"`` \| ``"form"`` \| ``"simple"`` \| ``"spaceDelimited"`` \| ``"pipeDelimited"`` \| ``"deepObject"``
85+
86+
The type of serialization to use for the parameter.
87+
88+
___
89+
7290
### OpenApiPathItem
7391

7492
Ƭ **OpenApiPathItem**: \{ `description?`: `string` ; `parameters?`: [`OpenApiParameter`](../interfaces/openapi.OpenApiParameter.md)[] ; `servers?`: [`OpenApiServer`](../interfaces/openapi.OpenApiServer.md)[] ; `summary?`: `string` } & \{ [K in OpenApiHttpMethod]?: OpenApiOperation }

docs/modules/openapi_client.md

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
- [CommonHttpClientFetchResponse](../interfaces/openapi_client.CommonHttpClientFetchResponse.md)
1616
- [CommonHttpClientOptions](../interfaces/openapi_client.CommonHttpClientOptions.md)
1717
- [CommonHttpClientRequestHeaders](../interfaces/openapi_client.CommonHttpClientRequestHeaders.md)
18+
- [CommonHttpClientRequestParameterSerializeInfo](../interfaces/openapi_client.CommonHttpClientRequestParameterSerializeInfo.md)
1819
- [CommonHttpClientResponse](../interfaces/openapi_client.CommonHttpClientResponse.md)
1920
- [OpenApiClientExternalType](../interfaces/openapi_client.OpenApiClientExternalType.md)
2021
- [OpenApiClientExternalValue](../interfaces/openapi_client.OpenApiClientExternalValue.md)
@@ -35,6 +36,9 @@
3536

3637
- [CommonHttpClientFetchResponseBody](openapi_client.md#commonhttpclientfetchresponsebody)
3738
- [CommonHttpClientRequest](openapi_client.md#commonhttpclientrequest)
39+
- [CommonHttpClientRequestParameterLocation](openapi_client.md#commonhttpclientrequestparameterlocation)
40+
- [CommonHttpClientRequestParameterSerializeStyle](openapi_client.md#commonhttpclientrequestparameterserializestyle)
41+
- [CommonHttpClientRequestParameters](openapi_client.md#commonhttpclientrequestparameters)
3842
- [CommonHttpClientResponseHeaders](openapi_client.md#commonhttpclientresponseheaders)
3943
- [GenerateClientErrorJsDoc](openapi_client.md#generateclienterrorjsdoc)
4044
- [GenerateClientJsDoc](openapi_client.md#generateclientjsdoc)
@@ -64,12 +68,36 @@ ___
6468

6569
### CommonHttpClientRequest
6670

67-
Ƭ **CommonHttpClientRequest**: `Omit`\<[`CommonHttpClientFetchRequest`](../interfaces/openapi_client.CommonHttpClientFetchRequest.md), ``"body"`` \| ``"headers"`` \| ``"cache"`` \| ``"credentials"`` \| ``"redirect"``\> & \{ `body?`: `unknown` ; `headers?`: [`CommonHttpClientRequestHeaders`](../interfaces/openapi_client.CommonHttpClientRequestHeaders.md) ; `path`: `string` ; `pathParams?`: `Record`\<`string`, `unknown`\> ; `query?`: `Record`\<`string`, `unknown`\> } & `Partial`\<`Pick`\<[`CommonHttpClientFetchRequest`](../interfaces/openapi_client.CommonHttpClientFetchRequest.md), ``"cache"`` \| ``"credentials"`` \| ``"redirect"``\>\>
71+
Ƭ **CommonHttpClientRequest**: `Omit`\<[`CommonHttpClientFetchRequest`](../interfaces/openapi_client.CommonHttpClientFetchRequest.md), ``"body"`` \| ``"headers"`` \| ``"cache"`` \| ``"credentials"`` \| ``"redirect"``\> & \{ `body?`: `unknown` ; `headers?`: [`CommonHttpClientRequestHeaders`](../interfaces/openapi_client.CommonHttpClientRequestHeaders.md) ; `parameters?`: [`CommonHttpClientRequestParameters`](openapi_client.md#commonhttpclientrequestparameters) ; `path`: `string` ; `pathParams?`: `Record`\<`string`, `unknown`\> ; `query?`: `Record`\<`string`, `unknown`\> } & `Partial`\<`Pick`\<[`CommonHttpClientFetchRequest`](../interfaces/openapi_client.CommonHttpClientFetchRequest.md), ``"cache"`` \| ``"credentials"`` \| ``"redirect"``\>\>
6872

6973
Request in terms of OpenAPI.
7074

7175
___
7276

77+
### CommonHttpClientRequestParameterLocation
78+
79+
Ƭ **CommonHttpClientRequestParameterLocation**: ``"path"`` \| ``"query"`` \| ``"header"`` \| ``"cookie"``
80+
81+
Request parameter location.
82+
83+
___
84+
85+
### CommonHttpClientRequestParameterSerializeStyle
86+
87+
Ƭ **CommonHttpClientRequestParameterSerializeStyle**: ``"simple"`` \| ``"label"`` \| ``"matrix"`` \| ``"form"`` \| ``"spaceDelimited"`` \| ``"pipeDelimited"`` \| ``"deepObject"``
88+
89+
Parameter serialization style.
90+
91+
___
92+
93+
### CommonHttpClientRequestParameters
94+
95+
Ƭ **CommonHttpClientRequestParameters**: \{ [K in CommonHttpClientRequestParameterLocation]?: Record\<string, CommonHttpClientRequestParameterSerializeInfo\> }
96+
97+
Request parameters.
98+
99+
___
100+
73101
### CommonHttpClientResponseHeaders
74102

75103
Ƭ **CommonHttpClientResponseHeaders**: `Record`\<`string`, `string`\> & \{ `set-cookie?`: `string`[] }

jest.config.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
import type {Config} from 'jest';
2+
3+
const config: Config = {
4+
watchPathIgnorePatterns: ['.*/tmp/.*']
5+
};
6+
7+
export default config;

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@
4444
"lint": "eslint {src,test,tools}/**/*.ts",
4545
"lint:fix": "eslint --fix {src,test,tools}/**/*.ts",
4646
"test": "jest",
47-
"test:watch": "jest --watch --watchPathIgnorePatterns tmp",
47+
"test:watch": "jest --watch",
4848
"test:update": "ts-node src/cli/index.ts generate test/pet-store/api-typescript-generator-config.ts",
4949
"release": "npm run build:docs && [ -z \"$(git status --porcelain)\" ] && standard-version || ( echo '\n\nPlease commit all changes first!' && exit 1 )"
5050
},

src/openapi-client.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,10 @@ export type {
3737
CommonHttpClientFetchResponse,
3838
CommonHttpClientError,
3939
CommonHttpClientRequest,
40+
CommonHttpClientRequestParameters,
41+
CommonHttpClientRequestParameterLocation,
42+
CommonHttpClientRequestParameterSerializeInfo,
43+
CommonHttpClientRequestParameterSerializeStyle,
4044
CommonHttpClientResponse,
4145
CommonHttpClientFetchResponseBody,
4246
CommonHttpClientFetchRequestHeaders,

src/openapi.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ export type {
2121
OpenApiExample,
2222
OpenApiExternalDocumentation,
2323
OpenApiParameter,
24+
OpenApiParameterStyle,
25+
OpenApiParameterIn,
2426
OpenApiSchema,
2527
OpenApiServer,
2628
OpenApiContact,

0 commit comments

Comments
 (0)