forked from Cutlery/immich
		
	* Add new cli * Remove old readme * Add documentation to readme file * Add github workflow tests for cli * Fix typo in docs * Add usage info to readme * Add package-lock.json * Fix tsconfig * Cleanup * Fix lint * Cleanup package.json * Fix accidental server change * Remove rootdir from cli * Remove tsbuildinfo * Add prettierignore * Make CLI use internal openapi specs * Add ignore and dry-run features * Sort paths alphabetically * Don't remove substring * Remove shorthand for delete * Remove unused import * Remove chokidar * Set correct openapi cli generator script * Add progress bar * Rename target to asset * Add deletion progress bar * Ignore require statement * Use read streams instead of readfile * Fix github feedback * Fix upload requires * More github comments * Cleanup messages * Cleaner pattern concats * Github comments --------- Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
		
			
				
	
	
		
			392 lines
		
	
	
		
			17 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			392 lines
		
	
	
		
			17 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| {{#withSeparateModelsAndApi}}
 | |
| /* tslint:disable */
 | |
| /* eslint-disable */
 | |
| {{>licenseInfo}}
 | |
| 
 | |
| import type { Configuration } from '{{apiRelativeToRoot}}configuration';
 | |
| import type { AxiosPromise, AxiosInstance, AxiosRequestConfig } from 'axios';
 | |
| import globalAxios 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
 | |
| // @ts-ignore
 | |
| import { DUMMY_BASE_URL, assertParamExists, setApiKeyToObject, setBasicAuthToObject, setBearerAuthToObject, setOAuthToObject, setSearchParams, serializeDataIfNeeded, toPathString, createRequestFunction } from '{{apiRelativeToRoot}}common';
 | |
| // @ts-ignore
 | |
| import { BASE_PATH, COLLECTION_FORMATS, RequestArgs, BaseAPI, RequiredError } from '{{apiRelativeToRoot}}base';
 | |
| {{#imports}}
 | |
| // @ts-ignore
 | |
| import { {{classname}} } from '{{apiRelativeToRoot}}{{tsModelPackage}}';
 | |
| {{/imports}}
 | |
| {{/withSeparateModelsAndApi}}
 | |
| {{^withSeparateModelsAndApi}}
 | |
| {{/withSeparateModelsAndApi}}
 | |
| {{#operations}}
 | |
| /**
 | |
|  * {{classname}} - axios parameter creator{{#description}}
 | |
|  * {{&description}}{{/description}}
 | |
|  * @export
 | |
|  */
 | |
| export const {{classname}}AxiosParamCreator = function (configuration?: Configuration) {
 | |
|     return {
 | |
|     {{#operation}}
 | |
|         /**
 | |
|          * {{¬es}}
 | |
|          {{#summary}}
 | |
|          * @summary {{&summary}}
 | |
|          {{/summary}}
 | |
|          {{#allParams}}
 | |
|          * @param {{=<% %>=}}{<%&dataType%>}<%={{ }}=%> {{^required}}[{{/required}}{{paramName}}{{^required}}]{{/required}} {{description}}
 | |
|          {{/allParams}}
 | |
|          * @param {*} [options] Override http request option.{{#isDeprecated}}
 | |
|          * @deprecated{{/isDeprecated}}
 | |
|          * @throws {RequiredError}
 | |
|          */
 | |
|         {{nickname}}: async ({{#allParams}}{{paramName}}{{^required}}?{{/required}}: {{{dataType}}}, {{/allParams}}options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
 | |
|     {{#allParams}}
 | |
|     {{#required}}
 | |
|             // verify required parameter '{{paramName}}' is not null or undefined
 | |
|             assertParamExists('{{nickname}}', '{{paramName}}', {{paramName}})
 | |
|     {{/required}}
 | |
|     {{/allParams}}
 | |
|             const localVarPath = `{{{path}}}`{{#pathParams}}
 | |
|                 .replace(`{${"{{baseName}}"}}`, encodeURIComponent(String({{paramName}}))){{/pathParams}};
 | |
|             // use dummy base URL string because the URL constructor only accepts absolute URLs.
 | |
|             const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
 | |
|             let baseOptions;
 | |
|             if (configuration) {
 | |
|                 baseOptions = configuration.baseOptions;
 | |
|             }
 | |
| 
 | |
|             const localVarRequestOptions = { method: '{{httpMethod}}', ...baseOptions, ...options};
 | |
|             const localVarHeaderParameter = {} as any;
 | |
|             const localVarQueryParameter = {} as any;{{#vendorExtensions}}{{#hasFormParams}}
 | |
|             const localVarFormParams = new {{^multipartFormData}}URLSearchParams(){{/multipartFormData}}{{#multipartFormData}}((configuration && configuration.formDataCtor) || FormData)(){{/multipartFormData}};{{/hasFormParams}}{{/vendorExtensions}}
 | |
| 
 | |
|     {{#authMethods}}
 | |
|             // authentication {{name}} required
 | |
|             {{#isApiKey}}
 | |
|             {{#isKeyInHeader}}
 | |
|             await setApiKeyToObject(localVarHeaderParameter, "{{keyParamName}}", configuration)
 | |
|             {{/isKeyInHeader}}
 | |
|             {{#isKeyInQuery}}
 | |
|             await setApiKeyToObject(localVarQueryParameter, "{{keyParamName}}", configuration)
 | |
|             {{/isKeyInQuery}}
 | |
|             {{/isApiKey}}
 | |
|             {{#isBasicBasic}}
 | |
|             // http basic authentication required
 | |
|             setBasicAuthToObject(localVarRequestOptions, configuration)
 | |
|             {{/isBasicBasic}}
 | |
|             {{#isBasicBearer}}
 | |
|             // http bearer authentication required
 | |
|             await setBearerAuthToObject(localVarHeaderParameter, configuration)
 | |
|             {{/isBasicBearer}}
 | |
|             {{#isOAuth}}
 | |
|             // oauth required
 | |
|             await setOAuthToObject(localVarHeaderParameter, "{{name}}", [{{#scopes}}"{{{scope}}}"{{^-last}}, {{/-last}}{{/scopes}}], configuration)
 | |
|             {{/isOAuth}}
 | |
| 
 | |
|     {{/authMethods}}
 | |
|     {{#queryParams}}
 | |
|             {{#isArray}}
 | |
|             if ({{paramName}}) {
 | |
|             {{#isCollectionFormatMulti}}
 | |
|                 {{#uniqueItems}}
 | |
|                 localVarQueryParameter['{{baseName}}'] = Array.from({{paramName}});
 | |
|                 {{/uniqueItems}}
 | |
|                 {{^uniqueItems}}
 | |
|                 localVarQueryParameter['{{baseName}}'] = {{paramName}};
 | |
|                 {{/uniqueItems}}
 | |
|             {{/isCollectionFormatMulti}}
 | |
|             {{^isCollectionFormatMulti}}
 | |
|                 {{#uniqueItems}}
 | |
|                 localVarQueryParameter['{{baseName}}'] = Array.from({{paramName}}).join(COLLECTION_FORMATS.{{collectionFormat}});
 | |
|                 {{/uniqueItems}}
 | |
|                 {{^uniqueItems}}
 | |
|                 localVarQueryParameter['{{baseName}}'] = {{paramName}}.join(COLLECTION_FORMATS.{{collectionFormat}});
 | |
|                 {{/uniqueItems}}
 | |
|             {{/isCollectionFormatMulti}}
 | |
|             }
 | |
|             {{/isArray}}
 | |
|             {{^isArray}}
 | |
|             if ({{paramName}} !== undefined) {
 | |
|                 {{#isDateTime}}
 | |
|                 localVarQueryParameter['{{baseName}}'] = ({{paramName}} as any instanceof Date) ?
 | |
|                     ({{paramName}} as any).toISOString() :
 | |
|                     {{paramName}};
 | |
|                 {{/isDateTime}}
 | |
|                 {{^isDateTime}}
 | |
|                 {{#isDate}}
 | |
|                 localVarQueryParameter['{{baseName}}'] = ({{paramName}} as any instanceof Date) ?
 | |
|                     ({{paramName}} as any).toISOString().substr(0,10) :
 | |
|                     {{paramName}};
 | |
|                 {{/isDate}}
 | |
|                 {{^isDate}}
 | |
|                 localVarQueryParameter['{{baseName}}'] = {{paramName}};
 | |
|                 {{/isDate}}
 | |
|                 {{/isDateTime}}
 | |
|             }
 | |
|             {{/isArray}}
 | |
| 
 | |
|     {{/queryParams}}
 | |
|     {{#headerParams}}
 | |
|             {{#isArray}}
 | |
|             if ({{paramName}}) {
 | |
|                 {{#uniqueItems}}
 | |
|                 let mapped = Array.from({{paramName}}).map(value => (<any>"{{{dataType}}}" !== "Set<string>") ? JSON.stringify(value) : (value || ""));
 | |
|                 {{/uniqueItems}}
 | |
|                 {{^uniqueItems}}
 | |
|                 let mapped = {{paramName}}.map(value => (<any>"{{{dataType}}}" !== "Array<string>") ? JSON.stringify(value) : (value || ""));
 | |
|                 {{/uniqueItems}}
 | |
|                 localVarHeaderParameter['{{baseName}}'] = mapped.join(COLLECTION_FORMATS["{{collectionFormat}}"]);
 | |
|             }
 | |
|             {{/isArray}}
 | |
|             {{^isArray}}
 | |
|             {{! `val == null` covers for both `null` and `undefined`}}
 | |
|             if ({{paramName}} != null) {
 | |
|                 {{#isString}}
 | |
|                 localVarHeaderParameter['{{baseName}}'] = String({{paramName}});
 | |
|                 {{/isString}}
 | |
|                 {{^isString}}
 | |
|                 {{! isString is falsy also for $ref that defines a string or enum type}}
 | |
|                 localVarHeaderParameter['{{baseName}}'] = typeof {{paramName}} === 'string' 
 | |
|                     ? {{paramName}} 
 | |
|                     : JSON.stringify({{paramName}});
 | |
|                 {{/isString}}
 | |
|             }
 | |
|             {{/isArray}}
 | |
| 
 | |
|     {{/headerParams}}
 | |
|     {{#vendorExtensions}}
 | |
|     {{#formParams}}
 | |
|             {{#isArray}}
 | |
|             if ({{paramName}}) {
 | |
|             {{#isCollectionFormatMulti}}
 | |
|                 {{paramName}}.forEach((element) => {
 | |
|                     localVarFormParams.{{#multipartFormData}}append{{/multipartFormData}}{{^multipartFormData}}set{{/multipartFormData}}('{{baseName}}', element as any);
 | |
|                 })
 | |
|             {{/isCollectionFormatMulti}}
 | |
|             {{^isCollectionFormatMulti}}
 | |
|                 localVarFormParams.{{#multipartFormData}}append{{/multipartFormData}}{{^multipartFormData}}set{{/multipartFormData}}('{{baseName}}', {{paramName}}.join(COLLECTION_FORMATS.{{collectionFormat}}));
 | |
|             {{/isCollectionFormatMulti}}
 | |
|             }{{/isArray}}
 | |
|             {{^isArray}}
 | |
|             if ({{paramName}} !== undefined) { {{^multipartFormData}}
 | |
|                 localVarFormParams.set('{{baseName}}', {{paramName}} as any);{{/multipartFormData}}{{#multipartFormData}}{{#isPrimitiveType}}
 | |
|                 localVarFormParams.append('{{baseName}}', {{paramName}} as any);{{/isPrimitiveType}}{{^isPrimitiveType}}{{#isEnum}}
 | |
|                 localVarFormParams.append('{{baseName}}', {{paramName}} as any);{{/isEnum}}{{^isEnum}}
 | |
|                 localVarFormParams.append('{{baseName}}', new Blob([JSON.stringify({{paramName}})], { type: "application/json", }));{{/isEnum}}{{/isPrimitiveType}}{{/multipartFormData}}
 | |
|             }{{/isArray}}
 | |
|     {{/formParams}}{{/vendorExtensions}}
 | |
|     {{#vendorExtensions}}{{#hasFormParams}}{{^multipartFormData}}
 | |
|             localVarHeaderParameter['Content-Type'] = 'application/x-www-form-urlencoded';{{/multipartFormData}}{{#multipartFormData}}
 | |
|             localVarHeaderParameter['Content-Type'] = 'multipart/form-data';{{/multipartFormData}}
 | |
|     {{/hasFormParams}}{{/vendorExtensions}}
 | |
|     {{#bodyParam}}
 | |
|             {{^consumes}}
 | |
|             localVarHeaderParameter['Content-Type'] = 'application/json';
 | |
|             {{/consumes}}
 | |
|             {{#consumes.0}}
 | |
|             localVarHeaderParameter['Content-Type'] = '{{{mediaType}}}';
 | |
|             {{/consumes.0}}
 | |
| 
 | |
|     {{/bodyParam}}
 | |
|             setSearchParams(localVarUrlObj, localVarQueryParameter);
 | |
|             let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
 | |
|             localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions,{{#hasFormParams}}{{#multipartFormData}} ...(localVarFormParams as any).getHeaders?.(),{{/multipartFormData}}{{/hasFormParams}} ...options.headers};
 | |
|     {{#hasFormParams}}
 | |
|             localVarRequestOptions.data = localVarFormParams{{#vendorExtensions}}{{^multipartFormData}}.toString(){{/multipartFormData}}{{/vendorExtensions}};
 | |
|     {{/hasFormParams}}
 | |
|     {{#bodyParam}}
 | |
|             localVarRequestOptions.data = serializeDataIfNeeded({{paramName}}, localVarRequestOptions, configuration)
 | |
|     {{/bodyParam}}
 | |
| 
 | |
|             return {
 | |
|                 url: toPathString(localVarUrlObj),
 | |
|                 options: localVarRequestOptions,
 | |
|             };
 | |
|         },
 | |
|     {{/operation}}
 | |
|     }
 | |
| };
 | |
| 
 | |
| /**
 | |
|  * {{classname}} - functional programming interface{{#description}}
 | |
|  * {{{.}}}{{/description}}
 | |
|  * @export
 | |
|  */
 | |
| export const {{classname}}Fp = function(configuration?: Configuration) {
 | |
|     const localVarAxiosParamCreator = {{classname}}AxiosParamCreator(configuration)
 | |
|     return {
 | |
|     {{#operation}}
 | |
|         /**
 | |
|          * {{¬es}}
 | |
|          {{#summary}}
 | |
|          * @summary {{&summary}}
 | |
|          {{/summary}}
 | |
|          {{#allParams}}
 | |
|          * @param {{=<% %>=}}{<%&dataType%>}<%={{ }}=%> {{^required}}[{{/required}}{{paramName}}{{^required}}]{{/required}} {{description}}
 | |
|          {{/allParams}}
 | |
|          * @param {*} [options] Override http request option.{{#isDeprecated}}
 | |
|          * @deprecated{{/isDeprecated}}
 | |
|          * @throws {RequiredError}
 | |
|          */
 | |
|         async {{nickname}}({{#allParams}}{{paramName}}{{^required}}?{{/required}}: {{{dataType}}}, {{/allParams}}options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<{{{returnType}}}{{^returnType}}void{{/returnType}}>> {
 | |
|             const localVarAxiosArgs = await localVarAxiosParamCreator.{{nickname}}({{#allParams}}{{paramName}}, {{/allParams}}options);
 | |
|             return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
 | |
|         },
 | |
|     {{/operation}}
 | |
|     }
 | |
| };
 | |
| 
 | |
| /**
 | |
|  * {{classname}} - factory interface{{#description}}
 | |
|  * {{&description}}{{/description}}
 | |
|  * @export
 | |
|  */
 | |
| export const {{classname}}Factory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
 | |
|     const localVarFp = {{classname}}Fp(configuration)
 | |
|     return {
 | |
|     {{#operation}}
 | |
|         /**
 | |
|          * {{¬es}}
 | |
|          {{#summary}}
 | |
|          * @summary {{&summary}}
 | |
|          {{/summary}}
 | |
|         {{#useSingleRequestParameter}}
 | |
|          {{#allParams.0}}
 | |
|          * @param {{=<% %>=}}{<%& classname %><%& operationIdCamelCase %>Request}<%={{ }}=%> requestParameters Request parameters.
 | |
|          {{/allParams.0}}
 | |
|         {{/useSingleRequestParameter}}
 | |
|         {{^useSingleRequestParameter}}
 | |
|          {{#allParams}}
 | |
|          * @param {{=<% %>=}}{<%&dataType%>}<%={{ }}=%> {{^required}}[{{/required}}{{paramName}}{{^required}}]{{/required}} {{description}}
 | |
|          {{/allParams}}
 | |
|         {{/useSingleRequestParameter}}
 | |
|          * @param {*} [options] Override http request option.{{#isDeprecated}}
 | |
|          * @deprecated{{/isDeprecated}}
 | |
|          * @throws {RequiredError}
 | |
|          */
 | |
|         {{#useSingleRequestParameter}}
 | |
|         {{nickname}}({{#allParams.0}}requestParameters: {{classname}}{{operationIdCamelCase}}Request{{^hasRequiredParams}} = {}{{/hasRequiredParams}}, {{/allParams.0}}options?: AxiosRequestConfig): AxiosPromise<{{{returnType}}}{{^returnType}}void{{/returnType}}> {
 | |
|             return localVarFp.{{nickname}}({{#allParams.0}}{{#allParams}}requestParameters.{{paramName}}, {{/allParams}}{{/allParams.0}}options).then((request) => request(axios, basePath));
 | |
|         },
 | |
|         {{/useSingleRequestParameter}}
 | |
|         {{^useSingleRequestParameter}}
 | |
|         {{nickname}}({{#allParams}}{{paramName}}{{^required}}?{{/required}}: {{{dataType}}}, {{/allParams}}options?: any): AxiosPromise<{{{returnType}}}{{^returnType}}void{{/returnType}}> {
 | |
|             return localVarFp.{{nickname}}({{#allParams}}{{paramName}}, {{/allParams}}options).then((request) => request(axios, basePath));
 | |
|         },
 | |
|         {{/useSingleRequestParameter}}
 | |
|     {{/operation}}
 | |
|     };
 | |
| };
 | |
| 
 | |
| {{#withInterfaces}}
 | |
| /**
 | |
|  * {{classname}} - interface{{#description}}
 | |
|  * {{&description}}{{/description}}
 | |
|  * @export
 | |
|  * @interface {{classname}}
 | |
|  */
 | |
| export interface {{classname}}Interface {
 | |
| {{#operation}}
 | |
|     /**
 | |
|      * {{¬es}}
 | |
|      {{#summary}}
 | |
|      * @summary {{&summary}}
 | |
|      {{/summary}}
 | |
|      {{#allParams}}
 | |
|      * @param {{=<% %>=}}{<%&dataType%>}<%={{ }}=%> {{^required}}[{{/required}}{{paramName}}{{^required}}]{{/required}} {{description}}
 | |
|      {{/allParams}}
 | |
|      * @param {*} [options] Override http request option.{{#isDeprecated}}
 | |
|      * @deprecated{{/isDeprecated}}
 | |
|      * @throws {RequiredError}
 | |
|      * @memberof {{classname}}Interface
 | |
|      */
 | |
|     {{nickname}}({{#allParams}}{{paramName}}{{^required}}?{{/required}}: {{{dataType}}}, {{/allParams}}options?: AxiosRequestConfig): AxiosPromise<{{{returnType}}}{{^returnType}}void{{/returnType}}>;
 | |
| 
 | |
| {{/operation}}
 | |
| }
 | |
| 
 | |
| {{/withInterfaces}}
 | |
| {{#useSingleRequestParameter}}
 | |
| {{#operation}}
 | |
| {{#allParams.0}}
 | |
| /**
 | |
|  * Request parameters for {{nickname}} operation in {{classname}}.
 | |
|  * @export
 | |
|  * @interface {{classname}}{{operationIdCamelCase}}Request
 | |
|  */
 | |
| export interface {{classname}}{{operationIdCamelCase}}Request {
 | |
|     {{#allParams}}
 | |
|     /**
 | |
|      * {{description}}
 | |
|      * @type {{=<% %>=}}{<%&dataType%>}<%={{ }}=%>
 | |
|      * @memberof {{classname}}{{operationIdCamelCase}}
 | |
|      */
 | |
|     readonly {{paramName}}{{^required}}?{{/required}}: {{{dataType}}}
 | |
|     {{^-last}}
 | |
| 
 | |
|     {{/-last}}
 | |
|     {{/allParams}}
 | |
| }
 | |
| 
 | |
| {{/allParams.0}}
 | |
| {{/operation}}
 | |
| {{/useSingleRequestParameter}}
 | |
| /**
 | |
|  * {{classname}} - object-oriented interface{{#description}}
 | |
|  * {{{.}}}{{/description}}
 | |
|  * @export
 | |
|  * @class {{classname}}
 | |
|  * @extends {BaseAPI}
 | |
|  */
 | |
| {{#withInterfaces}}
 | |
| export class {{classname}} extends BaseAPI implements {{classname}}Interface {
 | |
| {{/withInterfaces}}
 | |
| {{^withInterfaces}}
 | |
| export class {{classname}} extends BaseAPI {
 | |
| {{/withInterfaces}}
 | |
|     {{#operation}}
 | |
|     /**
 | |
|      * {{¬es}}
 | |
|      {{#summary}}
 | |
|      * @summary {{&summary}}
 | |
|      {{/summary}}
 | |
|      {{#useSingleRequestParameter}}
 | |
|      {{#allParams.0}}
 | |
|      * @param {{=<% %>=}}{<%& classname %><%& operationIdCamelCase %>Request}<%={{ }}=%> requestParameters Request parameters.
 | |
|      {{/allParams.0}}
 | |
|      {{/useSingleRequestParameter}}
 | |
|      {{^useSingleRequestParameter}}
 | |
|      {{#allParams}}
 | |
|      * @param {{=<% %>=}}{<%&dataType%>}<%={{ }}=%> {{^required}}[{{/required}}{{paramName}}{{^required}}]{{/required}} {{description}}
 | |
|      {{/allParams}}
 | |
|      {{/useSingleRequestParameter}}
 | |
|      * @param {*} [options] Override http request option.{{#isDeprecated}}
 | |
|      * @deprecated{{/isDeprecated}}
 | |
|      * @throws {RequiredError}
 | |
|      * @memberof {{classname}}
 | |
|      */
 | |
|     {{#useSingleRequestParameter}}
 | |
|     public {{nickname}}({{#allParams.0}}requestParameters: {{classname}}{{operationIdCamelCase}}Request{{^hasRequiredParams}} = {}{{/hasRequiredParams}}, {{/allParams.0}}options?: AxiosRequestConfig) {
 | |
|         return {{classname}}Fp(this.configuration).{{nickname}}({{#allParams.0}}{{#allParams}}requestParameters.{{paramName}}, {{/allParams}}{{/allParams.0}}options).then((request) => request(this.axios, this.basePath));
 | |
|     }
 | |
|     {{/useSingleRequestParameter}}
 | |
|     {{^useSingleRequestParameter}}
 | |
|     public {{nickname}}({{#allParams}}{{paramName}}{{^required}}?{{/required}}: {{{dataType}}}, {{/allParams}}options?: AxiosRequestConfig) {
 | |
|         return {{classname}}Fp(this.configuration).{{nickname}}({{#allParams}}{{paramName}}, {{/allParams}}options).then((request) => request(this.axios, this.basePath));
 | |
|     }
 | |
|     {{/useSingleRequestParameter}}
 | |
|     {{^-last}}
 | |
| 
 | |
|     {{/-last}}
 | |
|     {{/operation}}
 | |
| }
 | |
| {{/operations}}
 |