- Added request options to resolvers

This commit is contained in:
Ferdi Koomen 2021-02-26 23:05:45 +01:00
parent f7b66f578e
commit 04b23cac6f
10 changed files with 528 additions and 481 deletions

View File

@ -2,8 +2,8 @@
"parser": "@typescript-eslint/parser",
"extends": [
"plugin:@typescript-eslint/recommended",
"prettier/@typescript-eslint",
"plugin:prettier/recommended"
"plugin:prettier/recommended",
"prettier"
],
"env": {
"es6": true,

View File

@ -394,8 +394,8 @@ OpenAPI.TOKEN = getToken;
### References
Local references to schema definitions (those beginning with `#/definitions/schemas/`) will
be converted to type references to the equivalent, generated top-level type.
Local references to schema definitions (those beginning with `#/definitions/schemas/`)
will be converted to type references to the equivalent, generated top-level type.
The OpenAPI generator also supports external references, which allows you to break
down your openapi.yml into multiple sub-files, or incorporate third-party schemas

View File

@ -70,10 +70,10 @@
"rimraf": "^3.0.2"
},
"devDependencies": {
"@babel/cli": "7.12.16",
"@babel/core": "7.12.17",
"@babel/preset-env": "7.12.17",
"@babel/preset-typescript": "7.12.17",
"@babel/cli": "7.13.0",
"@babel/core": "7.13.1",
"@babel/preset-env": "7.13.5",
"@babel/preset-typescript": "7.13.0",
"@rollup/plugin-commonjs": "17.1.0",
"@rollup/plugin-node-resolve": "11.2.0",
"@types/express": "4.17.11",
@ -82,11 +82,11 @@
"@types/node": "14.14.31",
"@types/node-fetch": "2.5.8",
"@types/qs": "6.9.5",
"@typescript-eslint/eslint-plugin": "4.15.1",
"@typescript-eslint/parser": "4.15.1",
"@typescript-eslint/eslint-plugin": "4.15.2",
"@typescript-eslint/parser": "4.15.2",
"codecov": "3.8.1",
"eslint": "7.20.0",
"eslint-config-prettier": "8.0.0",
"eslint-config-prettier": "8.1.0",
"eslint-plugin-prettier": "3.3.1",
"eslint-plugin-simple-import-sort": "7.0.0",
"express": "4.17.1",
@ -96,11 +96,11 @@
"jest-cli": "26.6.3",
"node-fetch": "2.6.1",
"prettier": "2.2.1",
"puppeteer": "7.1.0",
"puppeteer": "8.0.0",
"qs": "6.9.6",
"rollup": "2.39.0",
"rollup": "2.40.0",
"rollup-plugin-terser": "7.0.2",
"rollup-plugin-typescript2": "0.30.0",
"typescript": "4.1.5"
"typescript": "4.2.2"
}
}

View File

@ -1,6 +1,8 @@
{{>header}}
type Resolver<T> = () => Promise<T>;
import type { ApiRequestOptions } from './ApiRequestOptions';
type Resolver<T> = (options: ApiRequestOptions) => Promise<T>;
type Headers = Record<string, string>;
type Config = {

View File

@ -1,14 +1,15 @@
async function getHeaders(options: ApiRequestOptions): Promise<Headers> {
const token = await resolve(options, OpenAPI.TOKEN);
const username = await resolve(options, OpenAPI.USERNAME);
const password = await resolve(options, OpenAPI.PASSWORD);
const defaultHeaders = await resolve(options, OpenAPI.HEADERS);
const headers = new Headers({
Accept: 'application/json',
...OpenAPI.HEADERS,
...defaultHeaders,
...options.headers,
});
const token = await resolve(OpenAPI.TOKEN);
const username = await resolve(OpenAPI.USERNAME);
const password = await resolve(OpenAPI.PASSWORD);
if (isStringWithValue(token)) {
headers.append('Authorization', `Bearer ${token}`);
}

View File

@ -1,8 +1,8 @@
type Resolver<T> = () => Promise<T>;
type Resolver<T> = (options: ApiRequestOptions) => Promise<T>;
async function resolve<T>(resolver?: T | Resolver<T>): Promise<T | undefined> {
async function resolve<T>(options: ApiRequestOptions, resolver?: T | Resolver<T>): Promise<T | undefined> {
if (typeof resolver === 'function') {
return (resolver as Resolver<T>)();
return (resolver as Resolver<T>)(options);
}
return resolver;
}

View File

@ -1,14 +1,15 @@
async function getHeaders(options: ApiRequestOptions): Promise<Headers> {
const token = await resolve(options, OpenAPI.TOKEN);
const username = await resolve(options, OpenAPI.USERNAME);
const password = await resolve(options, OpenAPI.PASSWORD);
const defaultHeaders = await resolve(options, OpenAPI.HEADERS);
const headers = new Headers({
Accept: 'application/json',
...OpenAPI.HEADERS,
...defaultHeaders,
...options.headers,
});
const token = await resolve(OpenAPI.TOKEN);
const username = await resolve(OpenAPI.USERNAME);
const password = await resolve(OpenAPI.PASSWORD);
if (isStringWithValue(token)) {
headers.append('Authorization', `Bearer ${token}`);
}

View File

@ -1,14 +1,15 @@
async function getHeaders(options: ApiRequestOptions): Promise<Headers> {
const token = await resolve(options, OpenAPI.TOKEN);
const username = await resolve(options, OpenAPI.USERNAME);
const password = await resolve(options, OpenAPI.PASSWORD);
const defaultHeaders = await resolve(options, OpenAPI.HEADERS);
const headers = new Headers({
Accept: 'application/json',
...OpenAPI.HEADERS,
...defaultHeaders,
...options.headers,
});
const token = await resolve(OpenAPI.TOKEN);
const username = await resolve(OpenAPI.USERNAME);
const password = await resolve(OpenAPI.PASSWORD);
if (isStringWithValue(token)) {
headers.append('Authorization', `Bearer ${token}`);
}

View File

@ -57,7 +57,9 @@ exports[`v2 should generate: ./test/generated/v2/core/OpenAPI.ts 1`] = `
"/* istanbul ignore file */
/* tslint:disable */
/* eslint-disable */
type Resolver<T> = () => Promise<T>;
import type { ApiRequestOptions } from './ApiRequestOptions';
type Resolver<T> = (options: ApiRequestOptions) => Promise<T>;
type Headers = Record<string, string>;
type Config = {
@ -147,26 +149,27 @@ function getFormData(params: Record<string, any>): FormData {
return formData;
}
type Resolver<T> = () => Promise<T>;
type Resolver<T> = (options: ApiRequestOptions) => Promise<T>;
async function resolve<T>(resolver?: T | Resolver<T>): Promise<T | undefined> {
async function resolve<T>(options: ApiRequestOptions, resolver?: T | Resolver<T>): Promise<T | undefined> {
if (typeof resolver === 'function') {
return (resolver as Resolver<T>)();
return (resolver as Resolver<T>)(options);
}
return resolver;
}
async function getHeaders(options: ApiRequestOptions): Promise<Headers> {
const token = await resolve(options, OpenAPI.TOKEN);
const username = await resolve(options, OpenAPI.USERNAME);
const password = await resolve(options, OpenAPI.PASSWORD);
const defaultHeaders = await resolve(options, OpenAPI.HEADERS);
const headers = new Headers({
Accept: 'application/json',
...OpenAPI.HEADERS,
...defaultHeaders,
...options.headers,
});
const token = await resolve(OpenAPI.TOKEN);
const username = await resolve(OpenAPI.USERNAME);
const password = await resolve(OpenAPI.PASSWORD);
if (isStringWithValue(token)) {
headers.append('Authorization', \`Bearer \${token}\`);
}
@ -2354,7 +2357,9 @@ exports[`v3 should generate: ./test/generated/v3/core/OpenAPI.ts 1`] = `
"/* istanbul ignore file */
/* tslint:disable */
/* eslint-disable */
type Resolver<T> = () => Promise<T>;
import type { ApiRequestOptions } from './ApiRequestOptions';
type Resolver<T> = (options: ApiRequestOptions) => Promise<T>;
type Headers = Record<string, string>;
type Config = {
@ -2444,26 +2449,27 @@ function getFormData(params: Record<string, any>): FormData {
return formData;
}
type Resolver<T> = () => Promise<T>;
type Resolver<T> = (options: ApiRequestOptions) => Promise<T>;
async function resolve<T>(resolver?: T | Resolver<T>): Promise<T | undefined> {
async function resolve<T>(options: ApiRequestOptions, resolver?: T | Resolver<T>): Promise<T | undefined> {
if (typeof resolver === 'function') {
return (resolver as Resolver<T>)();
return (resolver as Resolver<T>)(options);
}
return resolver;
}
async function getHeaders(options: ApiRequestOptions): Promise<Headers> {
const token = await resolve(options, OpenAPI.TOKEN);
const username = await resolve(options, OpenAPI.USERNAME);
const password = await resolve(options, OpenAPI.PASSWORD);
const defaultHeaders = await resolve(options, OpenAPI.HEADERS);
const headers = new Headers({
Accept: 'application/json',
...OpenAPI.HEADERS,
...defaultHeaders,
...options.headers,
});
const token = await resolve(OpenAPI.TOKEN);
const username = await resolve(OpenAPI.USERNAME);
const password = await resolve(OpenAPI.PASSWORD);
if (isStringWithValue(token)) {
headers.append('Authorization', \`Bearer \${token}\`);
}

896
yarn.lock

File diff suppressed because it is too large Load Diff