forked from loafle/openapi-generator-original
		
	[typescript-axios] Add option to add NodeJS imports (#10990)
* [typescript-axios] Add new option to generate imports from 'url' * Added new option `withImportUrl` to be used to generate the imports needed for NodeJS support without adding DOM to TypeScript libs * [typescript-axios] Add withImportUrl support to templates * Generate imports from 'url' if withImportUrl is set to true * [typescript-axios] Generate new samples using withImportUrl * [typescript-axios] Add withImportUrl to documentation * [typescript-axios] Regenerate docs, build was still ongoing and used old param name * [typescript-axios] Rename withImportUrl to withNodeImports * Rename the parameter to support other Node imports * Add imports for form-data too if using multipartFormData * Add fix for multipart headers when running in Node with form-data package
This commit is contained in:
		
							parent
							
								
									0bbd1e59e9
								
							
						
					
					
						commit
						7ffd0711c3
					
				
							
								
								
									
										7
									
								
								bin/configs/typescript-axios-with-node-imports.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								bin/configs/typescript-axios-with-node-imports.yaml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,7 @@
 | 
				
			|||||||
 | 
					generatorName: typescript-axios
 | 
				
			||||||
 | 
					outputDir: samples/client/petstore/typescript-axios/builds/with-node-imports
 | 
				
			||||||
 | 
					inputSpec: modules/openapi-generator/src/test/resources/2_0/petstore-with-operations-without-required-params.yaml
 | 
				
			||||||
 | 
					templateDir: modules/openapi-generator/src/main/resources/typescript-axios
 | 
				
			||||||
 | 
					additionalProperties:
 | 
				
			||||||
 | 
					  withNodeImports: "true"
 | 
				
			||||||
 | 
					  multipartFormData: "true"
 | 
				
			||||||
@ -26,6 +26,7 @@ These options may be applied as additional-properties (cli) or configOptions (pl
 | 
				
			|||||||
|supportsES6|Generate code that conforms to ES6.| |false|
 | 
					|supportsES6|Generate code that conforms to ES6.| |false|
 | 
				
			||||||
|useSingleRequestParameter|Setting this property to true will generate functions with a single argument containing all API endpoint parameters instead of one argument per parameter.| |false|
 | 
					|useSingleRequestParameter|Setting this property to true will generate functions with a single argument containing all API endpoint parameters instead of one argument per parameter.| |false|
 | 
				
			||||||
|withInterfaces|Setting this property to true will generate interfaces next to the default class implementations.| |false|
 | 
					|withInterfaces|Setting this property to true will generate interfaces next to the default class implementations.| |false|
 | 
				
			||||||
 | 
					|withNodeImports|Setting this property to true adds imports for NodeJS| |false|
 | 
				
			||||||
|withSeparateModelsAndApi|Put the model and api in separate folders and in separate classes| |false|
 | 
					|withSeparateModelsAndApi|Put the model and api in separate folders and in separate classes| |false|
 | 
				
			||||||
|withoutPrefixEnums|Don't prefix enum names with class names| |false|
 | 
					|withoutPrefixEnums|Don't prefix enum names with class names| |false|
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -33,6 +33,7 @@ public class TypeScriptAxiosClientCodegen extends AbstractTypeScriptClientCodege
 | 
				
			|||||||
    public static final String SEPARATE_MODELS_AND_API = "withSeparateModelsAndApi";
 | 
					    public static final String SEPARATE_MODELS_AND_API = "withSeparateModelsAndApi";
 | 
				
			||||||
    public static final String WITHOUT_PREFIX_ENUMS = "withoutPrefixEnums";
 | 
					    public static final String WITHOUT_PREFIX_ENUMS = "withoutPrefixEnums";
 | 
				
			||||||
    public static final String USE_SINGLE_REQUEST_PARAMETER = "useSingleRequestParameter";
 | 
					    public static final String USE_SINGLE_REQUEST_PARAMETER = "useSingleRequestParameter";
 | 
				
			||||||
 | 
					    public static final String WITH_NODE_IMPORTS = "withNodeImports";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    protected String npmRepository = null;
 | 
					    protected String npmRepository = null;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -55,6 +56,7 @@ public class TypeScriptAxiosClientCodegen extends AbstractTypeScriptClientCodege
 | 
				
			|||||||
        this.cliOptions.add(new CliOption(SEPARATE_MODELS_AND_API, "Put the model and api in separate folders and in separate classes", SchemaTypeUtil.BOOLEAN_TYPE).defaultValue(Boolean.FALSE.toString()));
 | 
					        this.cliOptions.add(new CliOption(SEPARATE_MODELS_AND_API, "Put the model and api in separate folders and in separate classes", SchemaTypeUtil.BOOLEAN_TYPE).defaultValue(Boolean.FALSE.toString()));
 | 
				
			||||||
        this.cliOptions.add(new CliOption(WITHOUT_PREFIX_ENUMS, "Don't prefix enum names with class names", SchemaTypeUtil.BOOLEAN_TYPE).defaultValue(Boolean.FALSE.toString()));
 | 
					        this.cliOptions.add(new CliOption(WITHOUT_PREFIX_ENUMS, "Don't prefix enum names with class names", SchemaTypeUtil.BOOLEAN_TYPE).defaultValue(Boolean.FALSE.toString()));
 | 
				
			||||||
        this.cliOptions.add(new CliOption(USE_SINGLE_REQUEST_PARAMETER, "Setting this property to true will generate functions with a single argument containing all API endpoint parameters instead of one argument per parameter.", SchemaTypeUtil.BOOLEAN_TYPE).defaultValue(Boolean.FALSE.toString()));
 | 
					        this.cliOptions.add(new CliOption(USE_SINGLE_REQUEST_PARAMETER, "Setting this property to true will generate functions with a single argument containing all API endpoint parameters instead of one argument per parameter.", SchemaTypeUtil.BOOLEAN_TYPE).defaultValue(Boolean.FALSE.toString()));
 | 
				
			||||||
 | 
					        this.cliOptions.add(new CliOption(WITH_NODE_IMPORTS, "Setting this property to true adds imports for NodeJS", SchemaTypeUtil.BOOLEAN_TYPE).defaultValue(Boolean.FALSE.toString()));
 | 
				
			||||||
        // Templates have no mapping between formatted property names and original base names so use only "original" and remove this option
 | 
					        // Templates have no mapping between formatted property names and original base names so use only "original" and remove this option
 | 
				
			||||||
        removeOption(CodegenConstants.MODEL_PROPERTY_NAMING);
 | 
					        removeOption(CodegenConstants.MODEL_PROPERTY_NAMING);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
				
			|||||||
@ -5,6 +5,14 @@
 | 
				
			|||||||
{{^withSeparateModelsAndApi}}
 | 
					{{^withSeparateModelsAndApi}}
 | 
				
			||||||
import { Configuration } from './configuration';
 | 
					import { Configuration } from './configuration';
 | 
				
			||||||
import globalAxios, { AxiosPromise, AxiosInstance, AxiosRequestConfig } from 'axios';
 | 
					import globalAxios, { AxiosPromise, AxiosInstance, AxiosRequestConfig } from 'axios';
 | 
				
			||||||
 | 
					{{#withNodeImports}}
 | 
				
			||||||
 | 
					// URLSearchParams not necessarily used
 | 
				
			||||||
 | 
					// @ts-ignore
 | 
				
			||||||
 | 
					import { URL, URLSearchParams } from 'url';
 | 
				
			||||||
 | 
					{{#multipartFormData}}
 | 
				
			||||||
 | 
					import FormData from 'form-data'
 | 
				
			||||||
 | 
					{{/multipartFormData}}
 | 
				
			||||||
 | 
					{{/withNodeImports}}
 | 
				
			||||||
// Some imports not used depending on template conditions
 | 
					// Some imports not used depending on template conditions
 | 
				
			||||||
// @ts-ignore
 | 
					// @ts-ignore
 | 
				
			||||||
import { DUMMY_BASE_URL, assertParamExists, setApiKeyToObject, setBasicAuthToObject, setBearerAuthToObject, setOAuthToObject, setSearchParams, serializeDataIfNeeded, toPathString, createRequestFunction } from './common';
 | 
					import { DUMMY_BASE_URL, assertParamExists, setApiKeyToObject, setBasicAuthToObject, setBearerAuthToObject, setOAuthToObject, setSearchParams, serializeDataIfNeeded, toPathString, createRequestFunction } from './common';
 | 
				
			||||||
 | 
				
			|||||||
@ -5,6 +5,14 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
import globalAxios, { AxiosPromise, AxiosInstance, AxiosRequestConfig } from 'axios';
 | 
					import globalAxios, { AxiosPromise, AxiosInstance, AxiosRequestConfig } from 'axios';
 | 
				
			||||||
import { Configuration } from '{{apiRelativeToRoot}}configuration';
 | 
					import { Configuration } from '{{apiRelativeToRoot}}configuration';
 | 
				
			||||||
 | 
					{{#withNodeImports}}
 | 
				
			||||||
 | 
					// URLSearchParams not necessarily used
 | 
				
			||||||
 | 
					// @ts-ignore
 | 
				
			||||||
 | 
					import { URL, URLSearchParams } from 'url';
 | 
				
			||||||
 | 
					{{#multipartFormData}}
 | 
				
			||||||
 | 
					import FormData from 'form-data'
 | 
				
			||||||
 | 
					{{/multipartFormData}}
 | 
				
			||||||
 | 
					{{/withNodeImports}}
 | 
				
			||||||
// Some imports not used depending on template conditions
 | 
					// Some imports not used depending on template conditions
 | 
				
			||||||
// @ts-ignore
 | 
					// @ts-ignore
 | 
				
			||||||
import { DUMMY_BASE_URL, assertParamExists, setApiKeyToObject, setBasicAuthToObject, setBearerAuthToObject, setOAuthToObject, setSearchParams, serializeDataIfNeeded, toPathString, createRequestFunction } from '{{apiRelativeToRoot}}common';
 | 
					import { DUMMY_BASE_URL, assertParamExists, setApiKeyToObject, setBasicAuthToObject, setBearerAuthToObject, setOAuthToObject, setSearchParams, serializeDataIfNeeded, toPathString, createRequestFunction } from '{{apiRelativeToRoot}}common';
 | 
				
			||||||
@ -184,7 +192,7 @@ export const {{classname}}AxiosParamCreator = function (configuration?: Configur
 | 
				
			|||||||
    {{/bodyParam}}
 | 
					    {{/bodyParam}}
 | 
				
			||||||
            setSearchParams(localVarUrlObj, localVarQueryParameter);
 | 
					            setSearchParams(localVarUrlObj, localVarQueryParameter);
 | 
				
			||||||
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
 | 
					            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
 | 
				
			||||||
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
 | 
					            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions,{{#hasFormParams}}{{#multipartFormData}} ...(localVarFormParams as any).getHeaders?.(),{{/multipartFormData}}{{/hasFormParams}} ...options.headers};
 | 
				
			||||||
    {{#hasFormParams}}
 | 
					    {{#hasFormParams}}
 | 
				
			||||||
            localVarRequestOptions.data = localVarFormParams{{#vendorExtensions}}{{^multipartFormData}}.toString(){{/multipartFormData}}{{/vendorExtensions}};
 | 
					            localVarRequestOptions.data = localVarFormParams{{#vendorExtensions}}{{^multipartFormData}}.toString(){{/multipartFormData}}{{/vendorExtensions}};
 | 
				
			||||||
    {{/hasFormParams}}
 | 
					    {{/hasFormParams}}
 | 
				
			||||||
 | 
				
			|||||||
@ -5,6 +5,9 @@
 | 
				
			|||||||
import { Configuration } from "./configuration";
 | 
					import { Configuration } from "./configuration";
 | 
				
			||||||
import { RequiredError, RequestArgs } from "./base";
 | 
					import { RequiredError, RequestArgs } from "./base";
 | 
				
			||||||
import { AxiosInstance, AxiosResponse } from 'axios';
 | 
					import { AxiosInstance, AxiosResponse } from 'axios';
 | 
				
			||||||
 | 
					{{#withNodeImports}}
 | 
				
			||||||
 | 
					import { URL, URLSearchParams } from 'url';
 | 
				
			||||||
 | 
					{{/withNodeImports}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										4
									
								
								samples/client/petstore/typescript-axios/builds/with-node-imports/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								samples/client/petstore/typescript-axios/builds/with-node-imports/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1,4 @@
 | 
				
			|||||||
 | 
					wwwroot/*.js
 | 
				
			||||||
 | 
					node_modules
 | 
				
			||||||
 | 
					typings
 | 
				
			||||||
 | 
					dist
 | 
				
			||||||
@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					# empty npmignore to ensure all required files (e.g., in the dist folder) are published by npm
 | 
				
			||||||
@ -0,0 +1,23 @@
 | 
				
			|||||||
 | 
					# OpenAPI Generator Ignore
 | 
				
			||||||
 | 
					# Generated by openapi-generator https://github.com/openapitools/openapi-generator
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Use this file to prevent files from being overwritten by the generator.
 | 
				
			||||||
 | 
					# The patterns follow closely to .gitignore or .dockerignore.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# As an example, the C# client generator defines ApiClient.cs.
 | 
				
			||||||
 | 
					# You can make changes and tell OpenAPI Generator to ignore just this file by uncommenting the following line:
 | 
				
			||||||
 | 
					#ApiClient.cs
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# You can match any string of characters against a directory, file or extension with a single asterisk (*):
 | 
				
			||||||
 | 
					#foo/*/qux
 | 
				
			||||||
 | 
					# The above matches foo/bar/qux and foo/baz/qux, but not foo/bar/baz/qux
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# You can recursively match patterns against a directory, file or extension with a double asterisk (**):
 | 
				
			||||||
 | 
					#foo/**/qux
 | 
				
			||||||
 | 
					# This matches foo/bar/qux, foo/baz/qux, and foo/bar/baz/qux
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# You can also negate patterns with an exclamation (!).
 | 
				
			||||||
 | 
					# For example, you can ignore all files in a docs folder with the file extension .md:
 | 
				
			||||||
 | 
					#docs/*.md
 | 
				
			||||||
 | 
					# Then explicitly reverse the ignore rule for a single file:
 | 
				
			||||||
 | 
					#!docs/README.md
 | 
				
			||||||
@ -0,0 +1,8 @@
 | 
				
			|||||||
 | 
					.gitignore
 | 
				
			||||||
 | 
					.npmignore
 | 
				
			||||||
 | 
					api.ts
 | 
				
			||||||
 | 
					base.ts
 | 
				
			||||||
 | 
					common.ts
 | 
				
			||||||
 | 
					configuration.ts
 | 
				
			||||||
 | 
					git_push.sh
 | 
				
			||||||
 | 
					index.ts
 | 
				
			||||||
@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					5.3.1-SNAPSHOT
 | 
				
			||||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@ -0,0 +1,71 @@
 | 
				
			|||||||
 | 
					/* tslint:disable */
 | 
				
			||||||
 | 
					/* eslint-disable */
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * OpenAPI Petstore
 | 
				
			||||||
 | 
					 * This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * The version of the OpenAPI document: 1.0.0
 | 
				
			||||||
 | 
					 * 
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 | 
				
			||||||
 | 
					 * https://openapi-generator.tech
 | 
				
			||||||
 | 
					 * Do not edit the class manually.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import { Configuration } from "./configuration";
 | 
				
			||||||
 | 
					// Some imports not used depending on template conditions
 | 
				
			||||||
 | 
					// @ts-ignore
 | 
				
			||||||
 | 
					import globalAxios, { AxiosPromise, AxiosInstance, AxiosRequestConfig } from 'axios';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export const BASE_PATH = "http://petstore.swagger.io/v2".replace(/\/+$/, "");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * @export
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					export const COLLECTION_FORMATS = {
 | 
				
			||||||
 | 
					    csv: ",",
 | 
				
			||||||
 | 
					    ssv: " ",
 | 
				
			||||||
 | 
					    tsv: "\t",
 | 
				
			||||||
 | 
					    pipes: "|",
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * @export
 | 
				
			||||||
 | 
					 * @interface RequestArgs
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					export interface RequestArgs {
 | 
				
			||||||
 | 
					    url: string;
 | 
				
			||||||
 | 
					    options: AxiosRequestConfig;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * @export
 | 
				
			||||||
 | 
					 * @class BaseAPI
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					export class BaseAPI {
 | 
				
			||||||
 | 
					    protected configuration: Configuration | undefined;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    constructor(configuration?: Configuration, protected basePath: string = BASE_PATH, protected axios: AxiosInstance = globalAxios) {
 | 
				
			||||||
 | 
					        if (configuration) {
 | 
				
			||||||
 | 
					            this.configuration = configuration;
 | 
				
			||||||
 | 
					            this.basePath = configuration.basePath || this.basePath;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * @export
 | 
				
			||||||
 | 
					 * @class RequiredError
 | 
				
			||||||
 | 
					 * @extends {Error}
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					export class RequiredError extends Error {
 | 
				
			||||||
 | 
					    name: "RequiredError" = "RequiredError";
 | 
				
			||||||
 | 
					    constructor(public field: string, msg?: string) {
 | 
				
			||||||
 | 
					        super(msg);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -0,0 +1,139 @@
 | 
				
			|||||||
 | 
					/* tslint:disable */
 | 
				
			||||||
 | 
					/* eslint-disable */
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * OpenAPI Petstore
 | 
				
			||||||
 | 
					 * This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * The version of the OpenAPI document: 1.0.0
 | 
				
			||||||
 | 
					 * 
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 | 
				
			||||||
 | 
					 * https://openapi-generator.tech
 | 
				
			||||||
 | 
					 * Do not edit the class manually.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import { Configuration } from "./configuration";
 | 
				
			||||||
 | 
					import { RequiredError, RequestArgs } from "./base";
 | 
				
			||||||
 | 
					import { AxiosInstance, AxiosResponse } from 'axios';
 | 
				
			||||||
 | 
					import { URL, URLSearchParams } from 'url';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * @export
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					export const DUMMY_BASE_URL = 'https://example.com'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * @throws {RequiredError}
 | 
				
			||||||
 | 
					 * @export
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					export const assertParamExists = function (functionName: string, paramName: string, paramValue: unknown) {
 | 
				
			||||||
 | 
					    if (paramValue === null || paramValue === undefined) {
 | 
				
			||||||
 | 
					        throw new RequiredError(paramName, `Required parameter ${paramName} was null or undefined when calling ${functionName}.`);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * @export
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					export const setApiKeyToObject = async function (object: any, keyParamName: string, configuration?: Configuration) {
 | 
				
			||||||
 | 
					    if (configuration && configuration.apiKey) {
 | 
				
			||||||
 | 
					        const localVarApiKeyValue = typeof configuration.apiKey === 'function'
 | 
				
			||||||
 | 
					            ? await configuration.apiKey(keyParamName)
 | 
				
			||||||
 | 
					            : await configuration.apiKey;
 | 
				
			||||||
 | 
					        object[keyParamName] = localVarApiKeyValue;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * @export
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					export const setBasicAuthToObject = function (object: any, configuration?: Configuration) {
 | 
				
			||||||
 | 
					    if (configuration && (configuration.username || configuration.password)) {
 | 
				
			||||||
 | 
					        object["auth"] = { username: configuration.username, password: configuration.password };
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * @export
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					export const setBearerAuthToObject = async function (object: any, configuration?: Configuration) {
 | 
				
			||||||
 | 
					    if (configuration && configuration.accessToken) {
 | 
				
			||||||
 | 
					        const accessToken = typeof configuration.accessToken === 'function'
 | 
				
			||||||
 | 
					            ? await configuration.accessToken()
 | 
				
			||||||
 | 
					            : await configuration.accessToken;
 | 
				
			||||||
 | 
					        object["Authorization"] = "Bearer " + accessToken;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * @export
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					export const setOAuthToObject = async function (object: any, name: string, scopes: string[], configuration?: Configuration) {
 | 
				
			||||||
 | 
					    if (configuration && configuration.accessToken) {
 | 
				
			||||||
 | 
					        const localVarAccessTokenValue = typeof configuration.accessToken === 'function'
 | 
				
			||||||
 | 
					            ? await configuration.accessToken(name, scopes)
 | 
				
			||||||
 | 
					            : await configuration.accessToken;
 | 
				
			||||||
 | 
					        object["Authorization"] = "Bearer " + localVarAccessTokenValue;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * @export
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					export const setSearchParams = function (url: URL, ...objects: any[]) {
 | 
				
			||||||
 | 
					    const searchParams = new URLSearchParams(url.search);
 | 
				
			||||||
 | 
					    for (const object of objects) {
 | 
				
			||||||
 | 
					        for (const key in object) {
 | 
				
			||||||
 | 
					            if (Array.isArray(object[key])) {
 | 
				
			||||||
 | 
					                searchParams.delete(key);
 | 
				
			||||||
 | 
					                for (const item of object[key]) {
 | 
				
			||||||
 | 
					                    searchParams.append(key, item);
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            } else {
 | 
				
			||||||
 | 
					                searchParams.set(key, object[key]);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    url.search = searchParams.toString();
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * @export
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					export const serializeDataIfNeeded = function (value: any, requestOptions: any, configuration?: Configuration) {
 | 
				
			||||||
 | 
					    const nonString = typeof value !== 'string';
 | 
				
			||||||
 | 
					    const needsSerialization = nonString && configuration && configuration.isJsonMime
 | 
				
			||||||
 | 
					        ? configuration.isJsonMime(requestOptions.headers['Content-Type'])
 | 
				
			||||||
 | 
					        : nonString;
 | 
				
			||||||
 | 
					    return needsSerialization
 | 
				
			||||||
 | 
					        ? JSON.stringify(value !== undefined ? value : {})
 | 
				
			||||||
 | 
					        : (value || "");
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * @export
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					export const toPathString = function (url: URL) {
 | 
				
			||||||
 | 
					    return url.pathname + url.search + url.hash
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * @export
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					export const createRequestFunction = function (axiosArgs: RequestArgs, globalAxios: AxiosInstance, BASE_PATH: string, configuration?: Configuration) {
 | 
				
			||||||
 | 
					    return <T = unknown, R = AxiosResponse<T>>(axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {
 | 
				
			||||||
 | 
					        const axiosRequestArgs = {...axiosArgs.options, url: (configuration?.basePath || basePath) + axiosArgs.url};
 | 
				
			||||||
 | 
					        return axios.request<T, R>(axiosRequestArgs);
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -0,0 +1,101 @@
 | 
				
			|||||||
 | 
					/* tslint:disable */
 | 
				
			||||||
 | 
					/* eslint-disable */
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * OpenAPI Petstore
 | 
				
			||||||
 | 
					 * This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * The version of the OpenAPI document: 1.0.0
 | 
				
			||||||
 | 
					 * 
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 | 
				
			||||||
 | 
					 * https://openapi-generator.tech
 | 
				
			||||||
 | 
					 * Do not edit the class manually.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export interface ConfigurationParameters {
 | 
				
			||||||
 | 
					    apiKey?: string | Promise<string> | ((name: string) => string) | ((name: string) => Promise<string>);
 | 
				
			||||||
 | 
					    username?: string;
 | 
				
			||||||
 | 
					    password?: string;
 | 
				
			||||||
 | 
					    accessToken?: string | Promise<string> | ((name?: string, scopes?: string[]) => string) | ((name?: string, scopes?: string[]) => Promise<string>);
 | 
				
			||||||
 | 
					    basePath?: string;
 | 
				
			||||||
 | 
					    baseOptions?: any;
 | 
				
			||||||
 | 
					    formDataCtor?: new () => any;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export class Configuration {
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * parameter for apiKey security
 | 
				
			||||||
 | 
					     * @param name security name
 | 
				
			||||||
 | 
					     * @memberof Configuration
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    apiKey?: string | Promise<string> | ((name: string) => string) | ((name: string) => Promise<string>);
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * parameter for basic security
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * @type {string}
 | 
				
			||||||
 | 
					     * @memberof Configuration
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    username?: string;
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * parameter for basic security
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * @type {string}
 | 
				
			||||||
 | 
					     * @memberof Configuration
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    password?: string;
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * parameter for oauth2 security
 | 
				
			||||||
 | 
					     * @param name security name
 | 
				
			||||||
 | 
					     * @param scopes oauth2 scope
 | 
				
			||||||
 | 
					     * @memberof Configuration
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    accessToken?: string | Promise<string> | ((name?: string, scopes?: string[]) => string) | ((name?: string, scopes?: string[]) => Promise<string>);
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * override base path
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * @type {string}
 | 
				
			||||||
 | 
					     * @memberof Configuration
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    basePath?: string;
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * base options for axios calls
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * @type {any}
 | 
				
			||||||
 | 
					     * @memberof Configuration
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    baseOptions?: any;
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * The FormData constructor that will be used to create multipart form data
 | 
				
			||||||
 | 
					     * requests. You can inject this here so that execution environments that
 | 
				
			||||||
 | 
					     * do not support the FormData class can still run the generated client.
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * @type {new () => FormData}
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    formDataCtor?: new () => any;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    constructor(param: ConfigurationParameters = {}) {
 | 
				
			||||||
 | 
					        this.apiKey = param.apiKey;
 | 
				
			||||||
 | 
					        this.username = param.username;
 | 
				
			||||||
 | 
					        this.password = param.password;
 | 
				
			||||||
 | 
					        this.accessToken = param.accessToken;
 | 
				
			||||||
 | 
					        this.basePath = param.basePath;
 | 
				
			||||||
 | 
					        this.baseOptions = param.baseOptions;
 | 
				
			||||||
 | 
					        this.formDataCtor = param.formDataCtor;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * Check if the given MIME is a JSON MIME.
 | 
				
			||||||
 | 
					     * JSON MIME examples:
 | 
				
			||||||
 | 
					     *   application/json
 | 
				
			||||||
 | 
					     *   application/json; charset=UTF8
 | 
				
			||||||
 | 
					     *   APPLICATION/JSON
 | 
				
			||||||
 | 
					     *   application/vnd.company+json
 | 
				
			||||||
 | 
					     * @param mime - MIME (Multipurpose Internet Mail Extensions)
 | 
				
			||||||
 | 
					     * @return True if the given MIME is JSON, false otherwise.
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    public isJsonMime(mime: string): boolean {
 | 
				
			||||||
 | 
					        const jsonMime: RegExp = new RegExp('^(application\/json|[^;/ \t]+\/[^;/ \t]+[+]json)[ \t]*(;.*)?$', 'i');
 | 
				
			||||||
 | 
					        return mime !== null && (jsonMime.test(mime) || mime.toLowerCase() === 'application/json-patch+json');
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -0,0 +1,57 @@
 | 
				
			|||||||
 | 
					#!/bin/sh
 | 
				
			||||||
 | 
					# ref: https://help.github.com/articles/adding-an-existing-project-to-github-using-the-command-line/
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# Usage example: /bin/sh ./git_push.sh wing328 openapi-petstore-perl "minor update" "gitlab.com"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					git_user_id=$1
 | 
				
			||||||
 | 
					git_repo_id=$2
 | 
				
			||||||
 | 
					release_note=$3
 | 
				
			||||||
 | 
					git_host=$4
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if [ "$git_host" = "" ]; then
 | 
				
			||||||
 | 
					    git_host="github.com"
 | 
				
			||||||
 | 
					    echo "[INFO] No command line input provided. Set \$git_host to $git_host"
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if [ "$git_user_id" = "" ]; then
 | 
				
			||||||
 | 
					    git_user_id="GIT_USER_ID"
 | 
				
			||||||
 | 
					    echo "[INFO] No command line input provided. Set \$git_user_id to $git_user_id"
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if [ "$git_repo_id" = "" ]; then
 | 
				
			||||||
 | 
					    git_repo_id="GIT_REPO_ID"
 | 
				
			||||||
 | 
					    echo "[INFO] No command line input provided. Set \$git_repo_id to $git_repo_id"
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if [ "$release_note" = "" ]; then
 | 
				
			||||||
 | 
					    release_note="Minor update"
 | 
				
			||||||
 | 
					    echo "[INFO] No command line input provided. Set \$release_note to $release_note"
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Initialize the local directory as a Git repository
 | 
				
			||||||
 | 
					git init
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Adds the files in the local repository and stages them for commit.
 | 
				
			||||||
 | 
					git add .
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Commits the tracked changes and prepares them to be pushed to a remote repository.
 | 
				
			||||||
 | 
					git commit -m "$release_note"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Sets the new remote
 | 
				
			||||||
 | 
					git_remote=$(git remote)
 | 
				
			||||||
 | 
					if [ "$git_remote" = "" ]; then # git remote not defined
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if [ "$GIT_TOKEN" = "" ]; then
 | 
				
			||||||
 | 
					        echo "[INFO] \$GIT_TOKEN (environment variable) is not set. Using the git credential in your environment."
 | 
				
			||||||
 | 
					        git remote add origin https://${git_host}/${git_user_id}/${git_repo_id}.git
 | 
				
			||||||
 | 
					    else
 | 
				
			||||||
 | 
					        git remote add origin https://${git_user_id}:"${GIT_TOKEN}"@${git_host}/${git_user_id}/${git_repo_id}.git
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					git pull origin master
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Pushes (Forces) the changes in the local repository up to the remote repository
 | 
				
			||||||
 | 
					echo "Git pushing to https://${git_host}/${git_user_id}/${git_repo_id}.git"
 | 
				
			||||||
 | 
					git push origin master 2>&1 | grep -v 'To https'
 | 
				
			||||||
@ -0,0 +1,18 @@
 | 
				
			|||||||
 | 
					/* tslint:disable */
 | 
				
			||||||
 | 
					/* eslint-disable */
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * OpenAPI Petstore
 | 
				
			||||||
 | 
					 * This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * The version of the OpenAPI document: 1.0.0
 | 
				
			||||||
 | 
					 * 
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 | 
				
			||||||
 | 
					 * https://openapi-generator.tech
 | 
				
			||||||
 | 
					 * Do not edit the class manually.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export * from "./api";
 | 
				
			||||||
 | 
					export * from "./configuration";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user