Skip to content

Commit 04b23ca

Browse files
committed
- Added request options to resolvers
1 parent f7b66f5 commit 04b23ca

File tree

10 files changed

+527
-480
lines changed

10 files changed

+527
-480
lines changed

.eslintrc.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
"parser": "@typescript-eslint/parser",
33
"extends": [
44
"plugin:@typescript-eslint/recommended",
5-
"prettier/@typescript-eslint",
6-
"plugin:prettier/recommended"
5+
"plugin:prettier/recommended",
6+
"prettier"
77
],
88
"env": {
99
"es6": true,

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -394,8 +394,8 @@ OpenAPI.TOKEN = getToken;
394394

395395
### References
396396

397-
Local references to schema definitions (those beginning with `#/definitions/schemas/`) will
398-
be converted to type references to the equivalent, generated top-level type.
397+
Local references to schema definitions (those beginning with `#/definitions/schemas/`)
398+
will be converted to type references to the equivalent, generated top-level type.
399399

400400
The OpenAPI generator also supports external references, which allows you to break
401401
down your openapi.yml into multiple sub-files, or incorporate third-party schemas

package.json

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -70,10 +70,10 @@
7070
"rimraf": "^3.0.2"
7171
},
7272
"devDependencies": {
73-
"@babel/cli": "7.12.16",
74-
"@babel/core": "7.12.17",
75-
"@babel/preset-env": "7.12.17",
76-
"@babel/preset-typescript": "7.12.17",
73+
"@babel/cli": "7.13.0",
74+
"@babel/core": "7.13.1",
75+
"@babel/preset-env": "7.13.5",
76+
"@babel/preset-typescript": "7.13.0",
7777
"@rollup/plugin-commonjs": "17.1.0",
7878
"@rollup/plugin-node-resolve": "11.2.0",
7979
"@types/express": "4.17.11",
@@ -82,11 +82,11 @@
8282
"@types/node": "14.14.31",
8383
"@types/node-fetch": "2.5.8",
8484
"@types/qs": "6.9.5",
85-
"@typescript-eslint/eslint-plugin": "4.15.1",
86-
"@typescript-eslint/parser": "4.15.1",
85+
"@typescript-eslint/eslint-plugin": "4.15.2",
86+
"@typescript-eslint/parser": "4.15.2",
8787
"codecov": "3.8.1",
8888
"eslint": "7.20.0",
89-
"eslint-config-prettier": "8.0.0",
89+
"eslint-config-prettier": "8.1.0",
9090
"eslint-plugin-prettier": "3.3.1",
9191
"eslint-plugin-simple-import-sort": "7.0.0",
9292
"express": "4.17.1",
@@ -96,11 +96,11 @@
9696
"jest-cli": "26.6.3",
9797
"node-fetch": "2.6.1",
9898
"prettier": "2.2.1",
99-
"puppeteer": "7.1.0",
99+
"puppeteer": "8.0.0",
100100
"qs": "6.9.6",
101-
"rollup": "2.39.0",
101+
"rollup": "2.40.0",
102102
"rollup-plugin-terser": "7.0.2",
103103
"rollup-plugin-typescript2": "0.30.0",
104-
"typescript": "4.1.5"
104+
"typescript": "4.2.2"
105105
}
106106
}

src/templates/core/OpenAPI.hbs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
{{>header}}
22

3-
type Resolver<T> = () => Promise<T>;
3+
import type { ApiRequestOptions } from './ApiRequestOptions';
4+
5+
type Resolver<T> = (options: ApiRequestOptions) => Promise<T>;
46
type Headers = Record<string, string>;
57

68
type Config = {

src/templates/core/fetch/getHeaders.hbs

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,15 @@
11
async function getHeaders(options: ApiRequestOptions): Promise<Headers> {
2+
const token = await resolve(options, OpenAPI.TOKEN);
3+
const username = await resolve(options, OpenAPI.USERNAME);
4+
const password = await resolve(options, OpenAPI.PASSWORD);
5+
const defaultHeaders = await resolve(options, OpenAPI.HEADERS);
6+
27
const headers = new Headers({
38
Accept: 'application/json',
4-
...OpenAPI.HEADERS,
9+
...defaultHeaders,
510
...options.headers,
611
});
712

8-
const token = await resolve(OpenAPI.TOKEN);
9-
const username = await resolve(OpenAPI.USERNAME);
10-
const password = await resolve(OpenAPI.PASSWORD);
11-
1213
if (isStringWithValue(token)) {
1314
headers.append('Authorization', `Bearer ${token}`);
1415
}
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
type Resolver<T> = () => Promise<T>;
1+
type Resolver<T> = (options: ApiRequestOptions) => Promise<T>;
22

3-
async function resolve<T>(resolver?: T | Resolver<T>): Promise<T | undefined> {
3+
async function resolve<T>(options: ApiRequestOptions, resolver?: T | Resolver<T>): Promise<T | undefined> {
44
if (typeof resolver === 'function') {
5-
return (resolver as Resolver<T>)();
5+
return (resolver as Resolver<T>)(options);
66
}
77
return resolver;
88
}

src/templates/core/node/getHeaders.hbs

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,15 @@
11
async function getHeaders(options: ApiRequestOptions): Promise<Headers> {
2+
const token = await resolve(options, OpenAPI.TOKEN);
3+
const username = await resolve(options, OpenAPI.USERNAME);
4+
const password = await resolve(options, OpenAPI.PASSWORD);
5+
const defaultHeaders = await resolve(options, OpenAPI.HEADERS);
6+
27
const headers = new Headers({
38
Accept: 'application/json',
4-
...OpenAPI.HEADERS,
9+
...defaultHeaders,
510
...options.headers,
611
});
712

8-
const token = await resolve(OpenAPI.TOKEN);
9-
const username = await resolve(OpenAPI.USERNAME);
10-
const password = await resolve(OpenAPI.PASSWORD);
11-
1213
if (isStringWithValue(token)) {
1314
headers.append('Authorization', `Bearer ${token}`);
1415
}

src/templates/core/xhr/getHeaders.hbs

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,15 @@
11
async function getHeaders(options: ApiRequestOptions): Promise<Headers> {
2+
const token = await resolve(options, OpenAPI.TOKEN);
3+
const username = await resolve(options, OpenAPI.USERNAME);
4+
const password = await resolve(options, OpenAPI.PASSWORD);
5+
const defaultHeaders = await resolve(options, OpenAPI.HEADERS);
6+
27
const headers = new Headers({
38
Accept: 'application/json',
4-
...OpenAPI.HEADERS,
9+
...defaultHeaders,
510
...options.headers,
611
});
712

8-
const token = await resolve(OpenAPI.TOKEN);
9-
const username = await resolve(OpenAPI.USERNAME);
10-
const password = await resolve(OpenAPI.PASSWORD);
11-
1213
if (isStringWithValue(token)) {
1314
headers.append('Authorization', `Bearer ${token}`);
1415
}

test/__snapshots__/index.spec.js.snap

Lines changed: 24 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,9 @@ exports[`v2 should generate: ./test/generated/v2/core/OpenAPI.ts 1`] = `
5757
"/* istanbul ignore file */
5858
/* tslint:disable */
5959
/* eslint-disable */
60-
type Resolver<T> = () => Promise<T>;
60+
import type { ApiRequestOptions } from './ApiRequestOptions';
61+
62+
type Resolver<T> = (options: ApiRequestOptions) => Promise<T>;
6163
type Headers = Record<string, string>;
6264

6365
type Config = {
@@ -147,26 +149,27 @@ function getFormData(params: Record<string, any>): FormData {
147149
return formData;
148150
}
149151

150-
type Resolver<T> = () => Promise<T>;
152+
type Resolver<T> = (options: ApiRequestOptions) => Promise<T>;
151153

152-
async function resolve<T>(resolver?: T | Resolver<T>): Promise<T | undefined> {
154+
async function resolve<T>(options: ApiRequestOptions, resolver?: T | Resolver<T>): Promise<T | undefined> {
153155
if (typeof resolver === 'function') {
154-
return (resolver as Resolver<T>)();
156+
return (resolver as Resolver<T>)(options);
155157
}
156158
return resolver;
157159
}
158160

159161
async function getHeaders(options: ApiRequestOptions): Promise<Headers> {
162+
const token = await resolve(options, OpenAPI.TOKEN);
163+
const username = await resolve(options, OpenAPI.USERNAME);
164+
const password = await resolve(options, OpenAPI.PASSWORD);
165+
const defaultHeaders = await resolve(options, OpenAPI.HEADERS);
166+
160167
const headers = new Headers({
161168
Accept: 'application/json',
162-
...OpenAPI.HEADERS,
169+
...defaultHeaders,
163170
...options.headers,
164171
});
165172

166-
const token = await resolve(OpenAPI.TOKEN);
167-
const username = await resolve(OpenAPI.USERNAME);
168-
const password = await resolve(OpenAPI.PASSWORD);
169-
170173
if (isStringWithValue(token)) {
171174
headers.append('Authorization', \`Bearer \${token}\`);
172175
}
@@ -2354,7 +2357,9 @@ exports[`v3 should generate: ./test/generated/v3/core/OpenAPI.ts 1`] = `
23542357
"/* istanbul ignore file */
23552358
/* tslint:disable */
23562359
/* eslint-disable */
2357-
type Resolver<T> = () => Promise<T>;
2360+
import type { ApiRequestOptions } from './ApiRequestOptions';
2361+
2362+
type Resolver<T> = (options: ApiRequestOptions) => Promise<T>;
23582363
type Headers = Record<string, string>;
23592364

23602365
type Config = {
@@ -2444,26 +2449,27 @@ function getFormData(params: Record<string, any>): FormData {
24442449
return formData;
24452450
}
24462451

2447-
type Resolver<T> = () => Promise<T>;
2452+
type Resolver<T> = (options: ApiRequestOptions) => Promise<T>;
24482453

2449-
async function resolve<T>(resolver?: T | Resolver<T>): Promise<T | undefined> {
2454+
async function resolve<T>(options: ApiRequestOptions, resolver?: T | Resolver<T>): Promise<T | undefined> {
24502455
if (typeof resolver === 'function') {
2451-
return (resolver as Resolver<T>)();
2456+
return (resolver as Resolver<T>)(options);
24522457
}
24532458
return resolver;
24542459
}
24552460

24562461
async function getHeaders(options: ApiRequestOptions): Promise<Headers> {
2462+
const token = await resolve(options, OpenAPI.TOKEN);
2463+
const username = await resolve(options, OpenAPI.USERNAME);
2464+
const password = await resolve(options, OpenAPI.PASSWORD);
2465+
const defaultHeaders = await resolve(options, OpenAPI.HEADERS);
2466+
24572467
const headers = new Headers({
24582468
Accept: 'application/json',
2459-
...OpenAPI.HEADERS,
2469+
...defaultHeaders,
24602470
...options.headers,
24612471
});
24622472

2463-
const token = await resolve(OpenAPI.TOKEN);
2464-
const username = await resolve(OpenAPI.USERNAME);
2465-
const password = await resolve(OpenAPI.PASSWORD);
2466-
24672473
if (isStringWithValue(token)) {
24682474
headers.append('Authorization', \`Bearer \${token}\`);
24692475
}

0 commit comments

Comments
 (0)