diff --git a/eslint.config.js b/eslint.config.js index 57124fefd..eda9487eb 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -66,8 +66,7 @@ export default tseslint.config( '**/dist/', '**/node_modules/', 'temp/', - 'packages/openapi-ts/src/legacy/handlebars/compiled/**/*.js', - 'packages/openapi-ts/src/legacy/handlebars/templates/**/*.hbs', + 'packages/openapi-ts/templates/**/*.hbs', '**/test/e2e/generated/', '**/test/generated/', '**/__snapshots__/', diff --git a/packages/openapi-ts/package.json b/packages/openapi-ts/package.json index af83e36d5..a2bcf2692 100644 --- a/packages/openapi-ts/package.json +++ b/packages/openapi-ts/package.json @@ -60,13 +60,13 @@ "files": [ "bin", "dist", + "templates", "LICENSE.md" ], "scripts": { "build": "tsup && pnpm check-exports", "check-exports": "attw --pack .", "dev": "tsup --watch", - "handlebars": "node src/legacy/handlebars/handlebars.cjs", "prepublishOnly": "pnpm build", "test:coverage": "vitest run --config vitest.config.unit.ts --coverage", "test:e2e": "vitest run --config vitest.config.e2e.ts", diff --git a/packages/openapi-ts/src/index.ts b/packages/openapi-ts/src/index.ts index 21bd98fc3..2d28c529d 100644 --- a/packages/openapi-ts/src/index.ts +++ b/packages/openapi-ts/src/index.ts @@ -29,7 +29,7 @@ export const createClient = async ( Performance.end('config'); Performance.start('handlebars'); - const templates = registerHandlebarTemplates(); + const templates = await registerHandlebarTemplates(); Performance.end('handlebars'); const clients = await Promise.all( diff --git a/packages/openapi-ts/src/initConfigs.ts b/packages/openapi-ts/src/initConfigs.ts index d0e7d4a76..ba92e7645 100644 --- a/packages/openapi-ts/src/initConfigs.ts +++ b/packages/openapi-ts/src/initConfigs.ts @@ -267,6 +267,7 @@ export const initConfigs = async ( exportCore = true, name, request, + templatesPath, useOptions = true, } = userConfig; @@ -311,6 +312,7 @@ export const initConfigs = async ( name, output, request, + templatesPath, useOptions, watch: getWatch({ ...userConfig, input }), }); diff --git a/packages/openapi-ts/src/legacy/handlebars/compiled/client.js b/packages/openapi-ts/src/legacy/handlebars/compiled/client.js deleted file mode 100644 index 66155fce4..000000000 --- a/packages/openapi-ts/src/legacy/handlebars/compiled/client.js +++ /dev/null @@ -1,457 +0,0 @@ -export default { - 1: function (container, depth0, helpers, partials, data) { - return "import { NgModule} from '@angular/core';\nimport { HttpClientModule } from '@angular/common/http';\n\nimport { AngularHttpRequest } from './core/AngularHttpRequest';\nimport { BaseHttpRequest } from './core/BaseHttpRequest';\nimport type { OpenAPIConfig } from './core/OpenAPI';\nimport { OpenAPI } from './core/OpenAPI';\nimport { Interceptors } from './core/OpenAPI';\n"; - }, - 3: function (container, depth0, helpers, partials, data) { - var stack1, - alias1 = container.strict, - alias2 = container.lambda; - - return ( - "import type { BaseHttpRequest } from './core/BaseHttpRequest';\nimport type { OpenAPIConfig } from './core/OpenAPI';\nimport { Interceptors } from './core/OpenAPI';\nimport { " + - ((stack1 = alias2( - alias1(depth0, 'httpRequest', { - start: { line: 14, column: 12 }, - end: { line: 14, column: 23 }, - }), - depth0, - )) != null - ? stack1 - : '') + - " } from './core/" + - ((stack1 = alias2( - alias1(depth0, 'httpRequest', { - start: { line: 14, column: 45 }, - end: { line: 14, column: 56 }, - }), - depth0, - )) != null - ? stack1 - : '') + - "';\n" - ); - }, - 5: function (container, depth0, helpers, partials, data) { - var stack1, - lookupProperty = - container.lookupProperty || - function (parent, propertyName) { - if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { - return parent[propertyName]; - } - return undefined; - }; - - return (stack1 = lookupProperty(helpers, 'each').call( - depth0 != null ? depth0 : container.nullContext || {}, - lookupProperty(depth0, 'services'), - { - name: 'each', - hash: {}, - fn: container.program(6, data, 0), - inverse: container.noop, - data: data, - loc: { start: { line: 18, column: 0 }, end: { line: 20, column: 9 } }, - }, - )) != null - ? stack1 - : ''; - }, - 6: function (container, depth0, helpers, partials, data) { - var stack1, - lookupProperty = - container.lookupProperty || - function (parent, propertyName) { - if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { - return parent[propertyName]; - } - return undefined; - }; - - return ( - 'import { ' + - ((stack1 = lookupProperty(helpers, 'transformServiceName').call( - depth0 != null ? depth0 : container.nullContext || {}, - lookupProperty(depth0, 'name'), - { - name: 'transformServiceName', - hash: {}, - data: data, - loc: { - start: { line: 19, column: 9 }, - end: { line: 19, column: 40 }, - }, - }, - )) != null - ? stack1 - : '') + - " } from './sdk.gen';\n" - ); - }, - 8: function (container, depth0, helpers, partials, data) { - var stack1, - alias1 = container.strict, - alias2 = container.lambda, - lookupProperty = - container.lookupProperty || - function (parent, propertyName) { - if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { - return parent[propertyName]; - } - return undefined; - }; - - return ( - "@NgModule({\n imports: [HttpClientModule],\n providers: [\n {\n provide: OpenAPI,\n useValue: {\n BASE: OpenAPI?.BASE ?? '" + - ((stack1 = alias2( - alias1(depth0, 'server', { - start: { line: 30, column: 31 }, - end: { line: 30, column: 37 }, - }), - depth0, - )) != null - ? stack1 - : '') + - "',\n VERSION: OpenAPI?.VERSION ?? '" + - ((stack1 = alias2( - alias1(depth0, 'version', { - start: { line: 31, column: 37 }, - end: { line: 31, column: 44 }, - }), - depth0, - )) != null - ? stack1 - : '') + - "',\n WITH_CREDENTIALS: OpenAPI?.WITH_CREDENTIALS ?? false,\n CREDENTIALS: OpenAPI?.CREDENTIALS ?? 'include',\n TOKEN: OpenAPI?.TOKEN,\n USERNAME: OpenAPI?.USERNAME,\n PASSWORD: OpenAPI?.PASSWORD,\n HEADERS: OpenAPI?.HEADERS,\n ENCODE_PATH: OpenAPI?.ENCODE_PATH,\n interceptors: {\n response: OpenAPI?.interceptors?.response ?? new Interceptors(),\n },\n } as OpenAPIConfig,\n },\n {\n provide: BaseHttpRequest,\n useClass: AngularHttpRequest,\n },\n" + - ((stack1 = lookupProperty(helpers, 'each').call( - depth0 != null ? depth0 : container.nullContext || {}, - lookupProperty(depth0, 'services'), - { - name: 'each', - hash: {}, - fn: container.program(9, data, 0), - inverse: container.noop, - data: data, - loc: { - start: { line: 48, column: 2 }, - end: { line: 50, column: 11 }, - }, - }, - )) != null - ? stack1 - : '') + - ' ]\n})\nexport class ' + - ((stack1 = alias2( - alias1( - lookupProperty(lookupProperty(data, 'root'), '$config'), - 'name', - { start: { line: 53, column: 16 }, end: { line: 53, column: 34 } }, - ), - depth0, - )) != null - ? stack1 - : '') + - ' {}\n' - ); - }, - 9: function (container, depth0, helpers, partials, data) { - var stack1, - lookupProperty = - container.lookupProperty || - function (parent, propertyName) { - if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { - return parent[propertyName]; - } - return undefined; - }; - - return ( - ' ' + - ((stack1 = lookupProperty(helpers, 'transformServiceName').call( - depth0 != null ? depth0 : container.nullContext || {}, - lookupProperty(depth0, 'name'), - { - name: 'transformServiceName', - hash: {}, - data: data, - loc: { - start: { line: 49, column: 2 }, - end: { line: 49, column: 33 }, - }, - }, - )) != null - ? stack1 - : '') + - ',\n' - ); - }, - 11: function (container, depth0, helpers, partials, data) { - var stack1, - alias1 = container.strict, - alias2 = container.lambda, - alias3 = depth0 != null ? depth0 : container.nullContext || {}, - lookupProperty = - container.lookupProperty || - function (parent, propertyName) { - if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { - return parent[propertyName]; - } - return undefined; - }; - - return ( - 'type HttpRequestConstructor = new (config: OpenAPIConfig) => BaseHttpRequest;\n\nexport class ' + - ((stack1 = alias2( - alias1( - lookupProperty(lookupProperty(data, 'root'), '$config'), - 'name', - { start: { line: 57, column: 16 }, end: { line: 57, column: 34 } }, - ), - depth0, - )) != null - ? stack1 - : '') + - ' {\n\n' + - ((stack1 = lookupProperty(helpers, 'each').call( - alias3, - lookupProperty(depth0, 'services'), - { - name: 'each', - hash: {}, - fn: container.program(12, data, 0), - inverse: container.noop, - data: data, - loc: { - start: { line: 59, column: 1 }, - end: { line: 61, column: 10 }, - }, - }, - )) != null - ? stack1 - : '') + - '\n public readonly request: BaseHttpRequest;\n\n constructor(config?: Partial, HttpRequest: HttpRequestConstructor = ' + - ((stack1 = alias2( - alias1(depth0, 'httpRequest', { - start: { line: 65, column: 87 }, - end: { line: 65, column: 98 }, - }), - depth0, - )) != null - ? stack1 - : '') + - ") {\n this.request = new HttpRequest({\n BASE: config?.BASE ?? '" + - ((stack1 = alias2( - alias1(depth0, 'server', { - start: { line: 67, column: 29 }, - end: { line: 67, column: 35 }, - }), - depth0, - )) != null - ? stack1 - : '') + - "',\n VERSION: config?.VERSION ?? '" + - ((stack1 = alias2( - alias1(depth0, 'version', { - start: { line: 68, column: 35 }, - end: { line: 68, column: 42 }, - }), - depth0, - )) != null - ? stack1 - : '') + - "',\n WITH_CREDENTIALS: config?.WITH_CREDENTIALS ?? false,\n CREDENTIALS: config?.CREDENTIALS ?? 'include',\n TOKEN: config?.TOKEN,\n USERNAME: config?.USERNAME,\n PASSWORD: config?.PASSWORD,\n HEADERS: config?.HEADERS,\n ENCODE_PATH: config?.ENCODE_PATH,\n interceptors: {\n request: config?.interceptors?.request ?? new Interceptors(),\n response: config?.interceptors?.response ?? new Interceptors(),\n },\n });\n\n" + - ((stack1 = lookupProperty(helpers, 'each').call( - alias3, - lookupProperty(depth0, 'services'), - { - name: 'each', - hash: {}, - fn: container.program(14, data, 0), - inverse: container.noop, - data: data, - loc: { - start: { line: 82, column: 2 }, - end: { line: 84, column: 11 }, - }, - }, - )) != null - ? stack1 - : '') + - ' }\n}\n' - ); - }, - 12: function (container, depth0, helpers, partials, data) { - var stack1, - alias1 = depth0 != null ? depth0 : container.nullContext || {}, - lookupProperty = - container.lookupProperty || - function (parent, propertyName) { - if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { - return parent[propertyName]; - } - return undefined; - }; - - return ( - ' public readonly ' + - ((stack1 = lookupProperty(helpers, 'camelCase').call( - alias1, - lookupProperty(depth0, 'name'), - { - name: 'camelCase', - hash: {}, - data: data, - loc: { - start: { line: 60, column: 17 }, - end: { line: 60, column: 37 }, - }, - }, - )) != null - ? stack1 - : '') + - ': ' + - ((stack1 = lookupProperty(helpers, 'transformServiceName').call( - alias1, - lookupProperty(depth0, 'name'), - { - name: 'transformServiceName', - hash: {}, - data: data, - loc: { - start: { line: 60, column: 39 }, - end: { line: 60, column: 70 }, - }, - }, - )) != null - ? stack1 - : '') + - ';\n' - ); - }, - 14: function (container, depth0, helpers, partials, data) { - var stack1, - alias1 = depth0 != null ? depth0 : container.nullContext || {}, - lookupProperty = - container.lookupProperty || - function (parent, propertyName) { - if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { - return parent[propertyName]; - } - return undefined; - }; - - return ( - ' this.' + - ((stack1 = lookupProperty(helpers, 'camelCase').call( - alias1, - lookupProperty(depth0, 'name'), - { - name: 'camelCase', - hash: {}, - data: data, - loc: { - start: { line: 83, column: 7 }, - end: { line: 83, column: 27 }, - }, - }, - )) != null - ? stack1 - : '') + - ' = new ' + - ((stack1 = lookupProperty(helpers, 'transformServiceName').call( - alias1, - lookupProperty(depth0, 'name'), - { - name: 'transformServiceName', - hash: {}, - data: data, - loc: { - start: { line: 83, column: 34 }, - end: { line: 83, column: 65 }, - }, - }, - )) != null - ? stack1 - : '') + - '(this.request);\n' - ); - }, - compiler: [8, '>= 4.3.0'], - main: function (container, depth0, helpers, partials, data) { - var stack1, - alias1 = depth0 != null ? depth0 : container.nullContext || {}, - lookupProperty = - container.lookupProperty || - function (parent, propertyName) { - if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { - return parent[propertyName]; - } - return undefined; - }; - - return ( - ((stack1 = lookupProperty(helpers, 'equals').call( - alias1, - lookupProperty( - lookupProperty( - lookupProperty(lookupProperty(data, 'root'), '$config'), - 'client', - ), - 'name', - ), - 'legacy/angular', - { - name: 'equals', - hash: {}, - fn: container.program(1, data, 0), - inverse: container.program(3, data, 0), - data: data, - loc: { start: { line: 1, column: 0 }, end: { line: 15, column: 11 } }, - }, - )) != null - ? stack1 - : '') + - '\n' + - ((stack1 = lookupProperty(helpers, 'if').call( - alias1, - lookupProperty(depth0, 'services'), - { - name: 'if', - hash: {}, - fn: container.program(5, data, 0), - inverse: container.noop, - data: data, - loc: { start: { line: 17, column: 0 }, end: { line: 21, column: 7 } }, - }, - )) != null - ? stack1 - : '') + - '\n' + - ((stack1 = lookupProperty(helpers, 'equals').call( - alias1, - lookupProperty( - lookupProperty( - lookupProperty(lookupProperty(data, 'root'), '$config'), - 'client', - ), - 'name', - ), - 'legacy/angular', - { - name: 'equals', - hash: {}, - fn: container.program(8, data, 0), - inverse: container.program(11, data, 0), - data: data, - loc: { - start: { line: 23, column: 0 }, - end: { line: 87, column: 11 }, - }, - }, - )) != null - ? stack1 - : '') - ); - }, - useData: true, -}; diff --git a/packages/openapi-ts/src/legacy/handlebars/compiled/core/ApiError.js b/packages/openapi-ts/src/legacy/handlebars/compiled/core/ApiError.js deleted file mode 100644 index 4cb06ccc6..000000000 --- a/packages/openapi-ts/src/legacy/handlebars/compiled/core/ApiError.js +++ /dev/null @@ -1,7 +0,0 @@ -export default { - compiler: [8, '>= 4.3.0'], - main: function (container, depth0, helpers, partials, data) { - return "import type { ApiRequestOptions } from './ApiRequestOptions';\nimport type { ApiResult } from './ApiResult';\n\nexport class ApiError extends Error {\n public readonly url: string;\n public readonly status: number;\n public readonly statusText: string;\n public readonly body: unknown;\n public readonly request: ApiRequestOptions;\n\n constructor(request: ApiRequestOptions, response: ApiResult, message: string) {\n super(message);\n\n this.name = 'ApiError';\n this.url = response.url;\n this.status = response.status;\n this.statusText = response.statusText;\n this.body = response.body;\n this.request = request;\n }\n}"; - }, - useData: true, -}; diff --git a/packages/openapi-ts/src/legacy/handlebars/compiled/core/ApiRequestOptions.js b/packages/openapi-ts/src/legacy/handlebars/compiled/core/ApiRequestOptions.js deleted file mode 100644 index b63eb8a02..000000000 --- a/packages/openapi-ts/src/legacy/handlebars/compiled/core/ApiRequestOptions.js +++ /dev/null @@ -1,7 +0,0 @@ -export default { - compiler: [8, '>= 4.3.0'], - main: function (container, depth0, helpers, partials, data) { - return "export type ApiRequestOptions = {\n readonly body?: any;\n readonly cookies?: Record;\n readonly errors?: Record;\n readonly formData?: Record | any[] | Blob | File;\n readonly headers?: Record;\n readonly mediaType?: string;\n readonly method:\n | 'DELETE'\n | 'GET'\n | 'HEAD'\n | 'OPTIONS'\n | 'PATCH'\n | 'POST'\n | 'PUT';\n readonly path?: Record;\n readonly query?: Record;\n readonly responseHeader?: string;\n readonly responseTransformer?: (data: unknown) => Promise;\n readonly url: string;\n};"; - }, - useData: true, -}; diff --git a/packages/openapi-ts/src/legacy/handlebars/compiled/core/ApiResult.js b/packages/openapi-ts/src/legacy/handlebars/compiled/core/ApiResult.js deleted file mode 100644 index 6d87d8336..000000000 --- a/packages/openapi-ts/src/legacy/handlebars/compiled/core/ApiResult.js +++ /dev/null @@ -1,7 +0,0 @@ -export default { - compiler: [8, '>= 4.3.0'], - main: function (container, depth0, helpers, partials, data) { - return 'export type ApiResult = {\n readonly body: TData;\n readonly ok: boolean;\n readonly status: number;\n readonly statusText: string;\n readonly url: string;\n};'; - }, - useData: true, -}; diff --git a/packages/openapi-ts/src/legacy/handlebars/compiled/core/BaseHttpRequest.js b/packages/openapi-ts/src/legacy/handlebars/compiled/core/BaseHttpRequest.js deleted file mode 100644 index 2d4bf78e2..000000000 --- a/packages/openapi-ts/src/legacy/handlebars/compiled/core/BaseHttpRequest.js +++ /dev/null @@ -1,109 +0,0 @@ -export default { - 1: function (container, depth0, helpers, partials, data) { - return "import type { HttpClient } from '@angular/common/http';\nimport type { Observable } from 'rxjs';\n\nimport type { ApiRequestOptions } from './ApiRequestOptions';\nimport type { OpenAPIConfig } from './OpenAPI';\n"; - }, - 3: function (container, depth0, helpers, partials, data) { - return "import type { ApiRequestOptions } from './ApiRequestOptions';\nimport type { CancelablePromise } from './CancelablePromise';\nimport type { OpenAPIConfig } from './OpenAPI';\n"; - }, - 5: function (container, depth0, helpers, partials, data) { - return ' constructor(\n public readonly config: OpenAPIConfig,\n public readonly http: HttpClient,\n ) {}\n'; - }, - 7: function (container, depth0, helpers, partials, data) { - return ' constructor(public readonly config: OpenAPIConfig) {}\n'; - }, - 9: function (container, depth0, helpers, partials, data) { - return ' public abstract request(options: ApiRequestOptions): Observable;\n'; - }, - 11: function (container, depth0, helpers, partials, data) { - return ' public abstract request(options: ApiRequestOptions): CancelablePromise;\n'; - }, - compiler: [8, '>= 4.3.0'], - main: function (container, depth0, helpers, partials, data) { - var stack1, - alias1 = depth0 != null ? depth0 : container.nullContext || {}, - lookupProperty = - container.lookupProperty || - function (parent, propertyName) { - if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { - return parent[propertyName]; - } - return undefined; - }; - - return ( - ((stack1 = lookupProperty(helpers, 'equals').call( - alias1, - lookupProperty( - lookupProperty( - lookupProperty(lookupProperty(data, 'root'), '$config'), - 'client', - ), - 'name', - ), - 'legacy/angular', - { - name: 'equals', - hash: {}, - fn: container.program(1, data, 0), - inverse: container.program(3, data, 0), - data: data, - loc: { start: { line: 1, column: 0 }, end: { line: 11, column: 11 } }, - }, - )) != null - ? stack1 - : '') + - '\nexport abstract class BaseHttpRequest {\n\n' + - ((stack1 = lookupProperty(helpers, 'equals').call( - alias1, - lookupProperty( - lookupProperty( - lookupProperty(lookupProperty(data, 'root'), '$config'), - 'client', - ), - 'name', - ), - 'legacy/angular', - { - name: 'equals', - hash: {}, - fn: container.program(5, data, 0), - inverse: container.program(7, data, 0), - data: data, - loc: { - start: { line: 15, column: 1 }, - end: { line: 22, column: 12 }, - }, - }, - )) != null - ? stack1 - : '') + - '\n' + - ((stack1 = lookupProperty(helpers, 'equals').call( - alias1, - lookupProperty( - lookupProperty( - lookupProperty(lookupProperty(data, 'root'), '$config'), - 'client', - ), - 'name', - ), - 'legacy/angular', - { - name: 'equals', - hash: {}, - fn: container.program(9, data, 0), - inverse: container.program(11, data, 0), - data: data, - loc: { - start: { line: 24, column: 1 }, - end: { line: 28, column: 12 }, - }, - }, - )) != null - ? stack1 - : '') + - '}' - ); - }, - useData: true, -}; diff --git a/packages/openapi-ts/src/legacy/handlebars/compiled/core/CancelablePromise.js b/packages/openapi-ts/src/legacy/handlebars/compiled/core/CancelablePromise.js deleted file mode 100644 index b2154cde4..000000000 --- a/packages/openapi-ts/src/legacy/handlebars/compiled/core/CancelablePromise.js +++ /dev/null @@ -1,7 +0,0 @@ -export default { - compiler: [8, '>= 4.3.0'], - main: function (container, depth0, helpers, partials, data) { - return "export class CancelError extends Error {\n constructor(message: string) {\n super(message);\n this.name = 'CancelError';\n }\n\n public get isCancelled(): boolean {\n return true;\n }\n}\n\nexport interface OnCancel {\n readonly isResolved: boolean;\n readonly isRejected: boolean;\n readonly isCancelled: boolean;\n\n (cancelHandler: () => void): void;\n}\n\nexport class CancelablePromise implements Promise {\n private _isResolved: boolean;\n private _isRejected: boolean;\n private _isCancelled: boolean;\n readonly cancelHandlers: (() => void)[];\n readonly promise: Promise;\n private _resolve?: (value: T | PromiseLike) => void;\n private _reject?: (reason?: unknown) => void;\n\n constructor(\n executor: (\n resolve: (value: T | PromiseLike) => void,\n reject: (reason?: unknown) => void,\n onCancel: OnCancel\n ) => void\n ) {\n this._isResolved = false;\n this._isRejected = false;\n this._isCancelled = false;\n this.cancelHandlers = [];\n this.promise = new Promise((resolve, reject) => {\n this._resolve = resolve;\n this._reject = reject;\n\n const onResolve = (value: T | PromiseLike): void => {\n if (this._isResolved || this._isRejected || this._isCancelled) {\n return;\n }\n this._isResolved = true;\n if (this._resolve) this._resolve(value);\n };\n\n const onReject = (reason?: unknown): void => {\n if (this._isResolved || this._isRejected || this._isCancelled) {\n return;\n }\n this._isRejected = true;\n if (this._reject) this._reject(reason);\n };\n\n const onCancel = (cancelHandler: () => void): void => {\n if (this._isResolved || this._isRejected || this._isCancelled) {\n return;\n }\n this.cancelHandlers.push(cancelHandler);\n };\n\n Object.defineProperty(onCancel, 'isResolved', {\n get: (): boolean => this._isResolved,\n });\n\n Object.defineProperty(onCancel, 'isRejected', {\n get: (): boolean => this._isRejected,\n });\n\n Object.defineProperty(onCancel, 'isCancelled', {\n get: (): boolean => this._isCancelled,\n });\n\n return executor(onResolve, onReject, onCancel as OnCancel);\n });\n }\n\n get [Symbol.toStringTag]() {\n return \"Cancellable Promise\";\n }\n\n public then(\n onFulfilled?: ((value: T) => TResult1 | PromiseLike) | null,\n onRejected?: ((reason: unknown) => TResult2 | PromiseLike) | null\n ): Promise {\n return this.promise.then(onFulfilled, onRejected);\n }\n\n public catch(\n onRejected?: ((reason: unknown) => TResult | PromiseLike) | null\n ): Promise {\n return this.promise.catch(onRejected);\n }\n\n public finally(onFinally?: (() => void) | null): Promise {\n return this.promise.finally(onFinally);\n }\n\n public cancel(): void {\n if (this._isResolved || this._isRejected || this._isCancelled) {\n return;\n }\n this._isCancelled = true;\n if (this.cancelHandlers.length) {\n try {\n for (const cancelHandler of this.cancelHandlers) {\n cancelHandler();\n }\n } catch (error) {\n console.warn('Cancellation threw an error', error);\n return;\n }\n }\n this.cancelHandlers.length = 0;\n if (this._reject) this._reject(new CancelError('Request aborted'));\n }\n\n public get isCancelled(): boolean {\n return this._isCancelled;\n }\n}"; - }, - useData: true, -}; diff --git a/packages/openapi-ts/src/legacy/handlebars/compiled/core/HttpRequest.js b/packages/openapi-ts/src/legacy/handlebars/compiled/core/HttpRequest.js deleted file mode 100644 index de89e82e7..000000000 --- a/packages/openapi-ts/src/legacy/handlebars/compiled/core/HttpRequest.js +++ /dev/null @@ -1,147 +0,0 @@ -export default { - 1: function (container, depth0, helpers, partials, data) { - return "import { Inject, Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport type { Observable } from 'rxjs';\n\nimport type { ApiRequestOptions } from './ApiRequestOptions';\nimport { BaseHttpRequest } from './BaseHttpRequest';\nimport type { OpenAPIConfig } from './OpenAPI';\nimport { OpenAPI } from './OpenAPI';\nimport { request as __request } from './request';\n"; - }, - 3: function (container, depth0, helpers, partials, data) { - return "import type { ApiRequestOptions } from './ApiRequestOptions';\nimport { BaseHttpRequest } from './BaseHttpRequest';\nimport type { CancelablePromise } from './CancelablePromise';\nimport type { OpenAPIConfig } from './OpenAPI';\nimport { request as __request } from './request';\n"; - }, - 5: function (container, depth0, helpers, partials, data) { - return '@Injectable()\n'; - }, - 7: function (container, depth0, helpers, partials, data) { - return ' constructor(\n @Inject(OpenAPI)\n config: OpenAPIConfig,\n http: HttpClient,\n ) {\n super(config, http);\n }\n'; - }, - 9: function (container, depth0, helpers, partials, data) { - return ' constructor(config: OpenAPIConfig) {\n super(config);\n }\n'; - }, - 11: function (container, depth0, helpers, partials, data) { - return ' /**\n * Request method\n * @param options The request options from the service\n * @returns Observable\n * @throws ApiError\n */\n public override request(options: ApiRequestOptions): Observable {\n return __request(this.config, this.http, options);\n }\n'; - }, - 13: function (container, depth0, helpers, partials, data) { - return ' /**\n * Request method\n * @param options The request options from the service\n * @returns CancelablePromise\n * @throws ApiError\n */\n public override request(options: ApiRequestOptions): CancelablePromise {\n return __request(this.config, options);\n }\n'; - }, - compiler: [8, '>= 4.3.0'], - main: function (container, depth0, helpers, partials, data) { - var stack1, - alias1 = depth0 != null ? depth0 : container.nullContext || {}, - lookupProperty = - container.lookupProperty || - function (parent, propertyName) { - if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { - return parent[propertyName]; - } - return undefined; - }; - - return ( - ((stack1 = lookupProperty(helpers, 'equals').call( - alias1, - lookupProperty( - lookupProperty( - lookupProperty(lookupProperty(data, 'root'), '$config'), - 'client', - ), - 'name', - ), - 'legacy/angular', - { - name: 'equals', - hash: {}, - fn: container.program(1, data, 0), - inverse: container.program(3, data, 0), - data: data, - loc: { start: { line: 1, column: 0 }, end: { line: 17, column: 11 } }, - }, - )) != null - ? stack1 - : '') + - '\n' + - ((stack1 = lookupProperty(helpers, 'equals').call( - alias1, - lookupProperty( - lookupProperty( - lookupProperty(lookupProperty(data, 'root'), '$config'), - 'client', - ), - 'name', - ), - 'legacy/angular', - { - name: 'equals', - hash: {}, - fn: container.program(5, data, 0), - inverse: container.noop, - data: data, - loc: { - start: { line: 19, column: 0 }, - end: { line: 21, column: 11 }, - }, - }, - )) != null - ? stack1 - : '') + - 'export class ' + - ((stack1 = container.lambda( - container.strict(depth0, 'httpRequest', { - start: { line: 22, column: 15 }, - end: { line: 22, column: 26 }, - }), - depth0, - )) != null - ? stack1 - : '') + - ' extends BaseHttpRequest {\n\n' + - ((stack1 = lookupProperty(helpers, 'equals').call( - alias1, - lookupProperty( - lookupProperty( - lookupProperty(lookupProperty(data, 'root'), '$config'), - 'client', - ), - 'name', - ), - 'legacy/angular', - { - name: 'equals', - hash: {}, - fn: container.program(7, data, 0), - inverse: container.program(9, data, 0), - data: data, - loc: { - start: { line: 24, column: 1 }, - end: { line: 36, column: 12 }, - }, - }, - )) != null - ? stack1 - : '') + - '\n' + - ((stack1 = lookupProperty(helpers, 'equals').call( - alias1, - lookupProperty( - lookupProperty( - lookupProperty(lookupProperty(data, 'root'), '$config'), - 'client', - ), - 'name', - ), - 'legacy/angular', - { - name: 'equals', - hash: {}, - fn: container.program(11, data, 0), - inverse: container.program(13, data, 0), - data: data, - loc: { - start: { line: 38, column: 1 }, - end: { line: 58, column: 12 }, - }, - }, - )) != null - ? stack1 - : '') + - '}' - ); - }, - useData: true, -}; diff --git a/packages/openapi-ts/src/legacy/handlebars/compiled/core/OpenAPI.js b/packages/openapi-ts/src/legacy/handlebars/compiled/core/OpenAPI.js deleted file mode 100644 index 6fef4a7c3..000000000 --- a/packages/openapi-ts/src/legacy/handlebars/compiled/core/OpenAPI.js +++ /dev/null @@ -1,275 +0,0 @@ -export default { - 1: function (container, depth0, helpers, partials, data) { - return "import type { HttpResponse } from '@angular/common/http';\n"; - }, - 3: function (container, depth0, helpers, partials, data) { - return "import type { AxiosRequestConfig, AxiosResponse } from 'axios';\n"; - }, - 5: function (container, depth0, helpers, partials, data) { - return "import type { RequestInit, Response } from 'node-fetch';\n"; - }, - 7: function (container, depth0, helpers, partials, data) { - return ' response: Interceptors>;\n'; - }, - 9: function (container, depth0, helpers, partials, data) { - return ' request: Interceptors;\n response: Interceptors;\n'; - }, - 11: function (container, depth0, helpers, partials, data) { - return ' request: Interceptors;\n response: Interceptors;\n'; - }, - 13: function (container, depth0, helpers, partials, data) { - return ' request: Interceptors;\n response: Interceptors;\n'; - }, - 15: function (container, depth0, helpers, partials, data) { - return ' request: new Interceptors(),\n'; - }, - compiler: [8, '>= 4.3.0'], - main: function (container, depth0, helpers, partials, data) { - var stack1, - alias1 = depth0 != null ? depth0 : container.nullContext || {}, - alias2 = container.strict, - alias3 = container.lambda, - lookupProperty = - container.lookupProperty || - function (parent, propertyName) { - if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { - return parent[propertyName]; - } - return undefined; - }; - - return ( - ((stack1 = lookupProperty(helpers, 'equals').call( - alias1, - lookupProperty( - lookupProperty( - lookupProperty(lookupProperty(data, 'root'), '$config'), - 'client', - ), - 'name', - ), - 'legacy/angular', - { - name: 'equals', - hash: {}, - fn: container.program(1, data, 0), - inverse: container.noop, - data: data, - loc: { start: { line: 1, column: 0 }, end: { line: 3, column: 11 } }, - }, - )) != null - ? stack1 - : '') + - ((stack1 = lookupProperty(helpers, 'equals').call( - alias1, - lookupProperty( - lookupProperty( - lookupProperty(lookupProperty(data, 'root'), '$config'), - 'client', - ), - 'name', - ), - 'legacy/axios', - { - name: 'equals', - hash: {}, - fn: container.program(3, data, 0), - inverse: container.noop, - data: data, - loc: { start: { line: 4, column: 0 }, end: { line: 6, column: 11 } }, - }, - )) != null - ? stack1 - : '') + - ((stack1 = lookupProperty(helpers, 'equals').call( - alias1, - lookupProperty( - lookupProperty( - lookupProperty(lookupProperty(data, 'root'), '$config'), - 'client', - ), - 'name', - ), - 'legacy/node', - { - name: 'equals', - hash: {}, - fn: container.program(5, data, 0), - inverse: container.noop, - data: data, - loc: { start: { line: 7, column: 0 }, end: { line: 9, column: 11 } }, - }, - )) != null - ? stack1 - : '') + - "import type { ApiRequestOptions } from './ApiRequestOptions';\n\ntype Headers = Record;\ntype Middleware = (value: T) => T | Promise;\ntype Resolver = (options: ApiRequestOptions) => Promise;\n\nexport class Interceptors {\n _fns: Middleware[];\n\n constructor() {\n this._fns = [];\n }\n\n eject(fn: Middleware): void {\n const index = this._fns.indexOf(fn);\n if (index !== -1) {\n this._fns = [...this._fns.slice(0, index), ...this._fns.slice(index + 1)];\n }\n }\n\n use(fn: Middleware): void {\n this._fns = [...this._fns, fn];\n }\n}\n\nexport type OpenAPIConfig = {\n BASE: string;\n CREDENTIALS: 'include' | 'omit' | 'same-origin';\n ENCODE_PATH?: ((path: string) => string) | undefined;\n HEADERS?: Headers | Resolver | undefined;\n PASSWORD?: string | Resolver | undefined;\n TOKEN?: string | Resolver | undefined;\n USERNAME?: string | Resolver | undefined;\n VERSION: string;\n WITH_CREDENTIALS: boolean;\n interceptors: {\n" + - ((stack1 = lookupProperty(helpers, 'equals').call( - alias1, - lookupProperty( - lookupProperty( - lookupProperty(lookupProperty(data, 'root'), '$config'), - 'client', - ), - 'name', - ), - 'legacy/angular', - { - name: 'equals', - hash: {}, - fn: container.program(7, data, 0), - inverse: container.noop, - data: data, - loc: { - start: { line: 46, column: 2 }, - end: { line: 48, column: 13 }, - }, - }, - )) != null - ? stack1 - : '') + - ((stack1 = lookupProperty(helpers, 'equals').call( - alias1, - lookupProperty( - lookupProperty( - lookupProperty(lookupProperty(data, 'root'), '$config'), - 'client', - ), - 'name', - ), - 'legacy/axios', - { - name: 'equals', - hash: {}, - fn: container.program(9, data, 0), - inverse: container.noop, - data: data, - loc: { - start: { line: 49, column: 2 }, - end: { line: 52, column: 13 }, - }, - }, - )) != null - ? stack1 - : '') + - ((stack1 = lookupProperty(helpers, 'equals').call( - alias1, - lookupProperty( - lookupProperty( - lookupProperty(lookupProperty(data, 'root'), '$config'), - 'client', - ), - 'name', - ), - 'legacy/fetch', - { - name: 'equals', - hash: {}, - fn: container.program(11, data, 0), - inverse: container.noop, - data: data, - loc: { - start: { line: 53, column: 2 }, - end: { line: 56, column: 13 }, - }, - }, - )) != null - ? stack1 - : '') + - ((stack1 = lookupProperty(helpers, 'equals').call( - alias1, - lookupProperty( - lookupProperty( - lookupProperty(lookupProperty(data, 'root'), '$config'), - 'client', - ), - 'name', - ), - 'legacy/node', - { - name: 'equals', - hash: {}, - fn: container.program(11, data, 0), - inverse: container.noop, - data: data, - loc: { - start: { line: 57, column: 2 }, - end: { line: 60, column: 13 }, - }, - }, - )) != null - ? stack1 - : '') + - ((stack1 = lookupProperty(helpers, 'equals').call( - alias1, - lookupProperty( - lookupProperty( - lookupProperty(lookupProperty(data, 'root'), '$config'), - 'client', - ), - 'name', - ), - 'legacy/xhr', - { - name: 'equals', - hash: {}, - fn: container.program(13, data, 0), - inverse: container.noop, - data: data, - loc: { - start: { line: 61, column: 2 }, - end: { line: 64, column: 13 }, - }, - }, - )) != null - ? stack1 - : '') + - " };\n};\n\nexport const OpenAPI: OpenAPIConfig = {\n BASE: '" + - ((stack1 = alias3( - alias2(depth0, 'server', { - start: { line: 69, column: 11 }, - end: { line: 69, column: 17 }, - }), - depth0, - )) != null - ? stack1 - : '') + - "',\n CREDENTIALS: 'include',\n ENCODE_PATH: undefined,\n HEADERS: undefined,\n PASSWORD: undefined,\n TOKEN: undefined,\n USERNAME: undefined,\n VERSION: '" + - ((stack1 = alias3( - alias2(depth0, 'version', { - start: { line: 76, column: 14 }, - end: { line: 76, column: 21 }, - }), - depth0, - )) != null - ? stack1 - : '') + - "',\n WITH_CREDENTIALS: false,\n interceptors: {\n" + - ((stack1 = lookupProperty(helpers, 'notEquals').call( - alias1, - lookupProperty( - lookupProperty( - lookupProperty(lookupProperty(data, 'root'), '$config'), - 'client', - ), - 'name', - ), - 'legacy/angular', - { - name: 'notEquals', - hash: {}, - fn: container.program(15, data, 0), - inverse: container.noop, - data: data, - loc: { - start: { line: 79, column: 2 }, - end: { line: 81, column: 16 }, - }, - }, - )) != null - ? stack1 - : '') + - ' response: new Interceptors(),\n },\n};' - ); - }, - useData: true, -}; diff --git a/packages/openapi-ts/src/legacy/handlebars/compiled/core/angular/getHeaders.js b/packages/openapi-ts/src/legacy/handlebars/compiled/core/angular/getHeaders.js deleted file mode 100644 index 107171f6b..000000000 --- a/packages/openapi-ts/src/legacy/handlebars/compiled/core/angular/getHeaders.js +++ /dev/null @@ -1,7 +0,0 @@ -export default { - compiler: [8, '>= 4.3.0'], - main: function (container, depth0, helpers, partials, data) { - return "export const getHeaders = (config: OpenAPIConfig, options: ApiRequestOptions): Observable => {\n return forkJoin({\n // @ts-ignore\n token: resolve(options, config.TOKEN),\n // @ts-ignore\n username: resolve(options, config.USERNAME),\n // @ts-ignore\n password: resolve(options, config.PASSWORD),\n // @ts-ignore\n additionalHeaders: resolve(options, config.HEADERS),\n }).pipe(\n map(({ token, username, password, additionalHeaders }) => {\n const headers = Object.entries({\n Accept: 'application/json',\n ...additionalHeaders,\n ...options.headers,\n })\n .filter(([, value]) => value !== undefined && value !== null)\n .reduce((headers, [key, value]) => ({\n ...headers,\n [key]: String(value),\n }), {} as Record);\n\n if (isStringWithValue(token)) {\n headers['Authorization'] = `Bearer ${token}`;\n }\n\n if (isStringWithValue(username) && isStringWithValue(password)) {\n const credentials = base64(`${username}:${password}`);\n headers['Authorization'] = `Basic ${credentials}`;\n }\n\n if (options.body !== undefined) {\n if (options.mediaType) {\n headers['Content-Type'] = options.mediaType;\n } else if (isBlob(options.body)) {\n headers['Content-Type'] = options.body.type || 'application/octet-stream';\n } else if (isString(options.body)) {\n headers['Content-Type'] = 'text/plain';\n } else if (!isFormData(options.body)) {\n headers['Content-Type'] = 'application/json';\n }\n }\n\n return new HttpHeaders(headers);\n }),\n );\n};"; - }, - useData: true, -}; diff --git a/packages/openapi-ts/src/legacy/handlebars/compiled/core/angular/getRequestBody.js b/packages/openapi-ts/src/legacy/handlebars/compiled/core/angular/getRequestBody.js deleted file mode 100644 index 180b22abe..000000000 --- a/packages/openapi-ts/src/legacy/handlebars/compiled/core/angular/getRequestBody.js +++ /dev/null @@ -1,7 +0,0 @@ -export default { - compiler: [8, '>= 4.3.0'], - main: function (container, depth0, helpers, partials, data) { - return "export const getRequestBody = (options: ApiRequestOptions): unknown => {\n if (options.body) {\n if (options.mediaType?.includes('application/json') || options.mediaType?.includes('+json')) {\n return JSON.stringify(options.body);\n } else if (isString(options.body) || isBlob(options.body) || isFormData(options.body)) {\n return options.body;\n } else {\n return JSON.stringify(options.body);\n }\n }\n return undefined;\n};"; - }, - useData: true, -}; diff --git a/packages/openapi-ts/src/legacy/handlebars/compiled/core/angular/getResponseBody.js b/packages/openapi-ts/src/legacy/handlebars/compiled/core/angular/getResponseBody.js deleted file mode 100644 index 42fe81e07..000000000 --- a/packages/openapi-ts/src/legacy/handlebars/compiled/core/angular/getResponseBody.js +++ /dev/null @@ -1,7 +0,0 @@ -export default { - compiler: [8, '>= 4.3.0'], - main: function (container, depth0, helpers, partials, data) { - return 'export const getResponseBody = (response: HttpResponse): T | undefined => {\n if (response.status !== 204 && response.body !== null) {\n return response.body;\n }\n return undefined;\n};'; - }, - useData: true, -}; diff --git a/packages/openapi-ts/src/legacy/handlebars/compiled/core/angular/getResponseHeader.js b/packages/openapi-ts/src/legacy/handlebars/compiled/core/angular/getResponseHeader.js deleted file mode 100644 index 6fdbaff37..000000000 --- a/packages/openapi-ts/src/legacy/handlebars/compiled/core/angular/getResponseHeader.js +++ /dev/null @@ -1,7 +0,0 @@ -export default { - compiler: [8, '>= 4.3.0'], - main: function (container, depth0, helpers, partials, data) { - return 'export const getResponseHeader = (response: HttpResponse, responseHeader?: string): string | undefined => {\n if (responseHeader) {\n const value = response.headers.get(responseHeader);\n if (isString(value)) {\n return value;\n }\n }\n return undefined;\n};'; - }, - useData: true, -}; diff --git a/packages/openapi-ts/src/legacy/handlebars/compiled/core/angular/request.js b/packages/openapi-ts/src/legacy/handlebars/compiled/core/angular/request.js deleted file mode 100644 index f9fe239aa..000000000 --- a/packages/openapi-ts/src/legacy/handlebars/compiled/core/angular/request.js +++ /dev/null @@ -1,230 +0,0 @@ -export default { - compiler: [8, '>= 4.3.0'], - main: function (container, depth0, helpers, partials, data) { - var stack1, - lookupProperty = - container.lookupProperty || - function (parent, propertyName) { - if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { - return parent[propertyName]; - } - return undefined; - }; - - return ( - "import { HttpClient, HttpHeaders } from '@angular/common/http';\nimport type { HttpResponse, HttpErrorResponse } from '@angular/common/http';\nimport { forkJoin, of, throwError } from 'rxjs';\nimport { catchError, map, switchMap } from 'rxjs/operators';\nimport type { Observable } from 'rxjs';\n\nimport { ApiError } from './ApiError';\nimport type { ApiRequestOptions } from './ApiRequestOptions';\nimport type { ApiResult } from './ApiResult';\nimport type { OpenAPIConfig } from './OpenAPI';\n\n" + - ((stack1 = container.invokePartial( - lookupProperty(partials, 'functions/isString'), - depth0, - { - name: 'functions/isString', - data: data, - helpers: helpers, - partials: partials, - decorators: container.decorators, - }, - )) != null - ? stack1 - : '') + - '\n\n' + - ((stack1 = container.invokePartial( - lookupProperty(partials, 'functions/isStringWithValue'), - depth0, - { - name: 'functions/isStringWithValue', - data: data, - helpers: helpers, - partials: partials, - decorators: container.decorators, - }, - )) != null - ? stack1 - : '') + - '\n\n' + - ((stack1 = container.invokePartial( - lookupProperty(partials, 'functions/isBlob'), - depth0, - { - name: 'functions/isBlob', - data: data, - helpers: helpers, - partials: partials, - decorators: container.decorators, - }, - )) != null - ? stack1 - : '') + - '\n\n' + - ((stack1 = container.invokePartial( - lookupProperty(partials, 'functions/isFormData'), - depth0, - { - name: 'functions/isFormData', - data: data, - helpers: helpers, - partials: partials, - decorators: container.decorators, - }, - )) != null - ? stack1 - : '') + - '\n\n' + - ((stack1 = container.invokePartial( - lookupProperty(partials, 'functions/base64'), - depth0, - { - name: 'functions/base64', - data: data, - helpers: helpers, - partials: partials, - decorators: container.decorators, - }, - )) != null - ? stack1 - : '') + - '\n\n' + - ((stack1 = container.invokePartial( - lookupProperty(partials, 'functions/getQueryString'), - depth0, - { - name: 'functions/getQueryString', - data: data, - helpers: helpers, - partials: partials, - decorators: container.decorators, - }, - )) != null - ? stack1 - : '') + - '\n\n' + - ((stack1 = container.invokePartial( - lookupProperty(partials, 'functions/getUrl'), - depth0, - { - name: 'functions/getUrl', - data: data, - helpers: helpers, - partials: partials, - decorators: container.decorators, - }, - )) != null - ? stack1 - : '') + - '\n\n' + - ((stack1 = container.invokePartial( - lookupProperty(partials, 'functions/getFormData'), - depth0, - { - name: 'functions/getFormData', - data: data, - helpers: helpers, - partials: partials, - decorators: container.decorators, - }, - )) != null - ? stack1 - : '') + - '\n\n' + - ((stack1 = container.invokePartial( - lookupProperty(partials, 'functions/resolve'), - depth0, - { - name: 'functions/resolve', - data: data, - helpers: helpers, - partials: partials, - decorators: container.decorators, - }, - )) != null - ? stack1 - : '') + - '\n\n' + - ((stack1 = container.invokePartial( - lookupProperty(partials, 'angular/getHeaders'), - depth0, - { - name: 'angular/getHeaders', - data: data, - helpers: helpers, - partials: partials, - decorators: container.decorators, - }, - )) != null - ? stack1 - : '') + - '\n\n' + - ((stack1 = container.invokePartial( - lookupProperty(partials, 'angular/getRequestBody'), - depth0, - { - name: 'angular/getRequestBody', - data: data, - helpers: helpers, - partials: partials, - decorators: container.decorators, - }, - )) != null - ? stack1 - : '') + - '\n\n' + - ((stack1 = container.invokePartial( - lookupProperty(partials, 'angular/sendRequest'), - depth0, - { - name: 'angular/sendRequest', - data: data, - helpers: helpers, - partials: partials, - decorators: container.decorators, - }, - )) != null - ? stack1 - : '') + - '\n\n' + - ((stack1 = container.invokePartial( - lookupProperty(partials, 'angular/getResponseHeader'), - depth0, - { - name: 'angular/getResponseHeader', - data: data, - helpers: helpers, - partials: partials, - decorators: container.decorators, - }, - )) != null - ? stack1 - : '') + - '\n\n' + - ((stack1 = container.invokePartial( - lookupProperty(partials, 'angular/getResponseBody'), - depth0, - { - name: 'angular/getResponseBody', - data: data, - helpers: helpers, - partials: partials, - decorators: container.decorators, - }, - )) != null - ? stack1 - : '') + - '\n\n' + - ((stack1 = container.invokePartial( - lookupProperty(partials, 'functions/catchErrorCodes'), - depth0, - { - name: 'functions/catchErrorCodes', - data: data, - helpers: helpers, - partials: partials, - decorators: container.decorators, - }, - )) != null - ? stack1 - : '') + - '\n\n/**\n * Request method\n * @param config The OpenAPI configuration object\n * @param http The Angular HTTP client\n * @param options The request options from the service\n * @returns Observable\n * @throws ApiError\n */\nexport const request = (config: OpenAPIConfig, http: HttpClient, options: ApiRequestOptions): Observable => {\n const url = getUrl(config, options);\n const formData = getFormData(options);\n const body = getRequestBody(options);\n\n return getHeaders(config, options).pipe(\n switchMap(headers => {\n return sendRequest(config, options, http, url, body, formData, headers);\n }),\n switchMap(async response => {\n for (const fn of config.interceptors.response._fns) {\n response = await fn(response);\n }\n const responseBody = getResponseBody(response);\n const responseHeader = getResponseHeader(response, options.responseHeader);\n\n let transformedBody = responseBody;\n if (options.responseTransformer && response.ok) {\n transformedBody = await options.responseTransformer(responseBody)\n }\n\n return {\n url,\n ok: response.ok,\n status: response.status,\n statusText: response.statusText,\n body: responseHeader ?? transformedBody,\n } as ApiResult;\n }),\n catchError((error: HttpErrorResponse) => {\n if (!error.status) {\n return throwError(() => error);\n }\n return of({\n url,\n ok: error.ok,\n status: error.status,\n statusText: error.statusText,\n body: error.error ?? error.statusText,\n } as ApiResult);\n }),\n map(result => {\n catchErrorCodes(options, result);\n return result.body as T;\n }),\n catchError((error: ApiError) => {\n return throwError(() => error);\n }),\n );\n};' - ); - }, - usePartial: true, - useData: true, -}; diff --git a/packages/openapi-ts/src/legacy/handlebars/compiled/core/angular/sendRequest.js b/packages/openapi-ts/src/legacy/handlebars/compiled/core/angular/sendRequest.js deleted file mode 100644 index 509435921..000000000 --- a/packages/openapi-ts/src/legacy/handlebars/compiled/core/angular/sendRequest.js +++ /dev/null @@ -1,7 +0,0 @@ -export default { - compiler: [8, '>= 4.3.0'], - main: function (container, depth0, helpers, partials, data) { - return "export const sendRequest = (\n config: OpenAPIConfig,\n options: ApiRequestOptions,\n http: HttpClient,\n url: string,\n body: unknown,\n formData: FormData | undefined,\n headers: HttpHeaders\n): Observable> => {\n return http.request(options.method, url, {\n headers,\n body: body ?? formData,\n withCredentials: config.WITH_CREDENTIALS,\n observe: 'response',\n });\n};"; - }, - useData: true, -}; diff --git a/packages/openapi-ts/src/legacy/handlebars/compiled/core/axios/getHeaders.js b/packages/openapi-ts/src/legacy/handlebars/compiled/core/axios/getHeaders.js deleted file mode 100644 index b6bbde16d..000000000 --- a/packages/openapi-ts/src/legacy/handlebars/compiled/core/axios/getHeaders.js +++ /dev/null @@ -1,7 +0,0 @@ -export default { - compiler: [8, '>= 4.3.0'], - main: function (container, depth0, helpers, partials, data) { - return "export const getHeaders = async (config: OpenAPIConfig, options: ApiRequestOptions): Promise> => {\n const [token, username, password, additionalHeaders] = await Promise.all([\n // @ts-ignore\n resolve(options, config.TOKEN),\n // @ts-ignore\n resolve(options, config.USERNAME),\n // @ts-ignore\n resolve(options, config.PASSWORD),\n // @ts-ignore\n resolve(options, config.HEADERS),\n ]);\n\n const headers = Object.entries({\n Accept: 'application/json',\n ...additionalHeaders,\n ...options.headers,\n })\n .filter(([, value]) => value !== undefined && value !== null)\n .reduce((headers, [key, value]) => ({\n ...headers,\n [key]: String(value),\n }), {} as Record);\n\n if (isStringWithValue(token)) {\n headers['Authorization'] = `Bearer ${token}`;\n }\n\n if (isStringWithValue(username) && isStringWithValue(password)) {\n const credentials = base64(`${username}:${password}`);\n headers['Authorization'] = `Basic ${credentials}`;\n }\n\n if (options.body !== undefined) {\n if (options.mediaType) {\n headers['Content-Type'] = options.mediaType;\n } else if (isBlob(options.body)) {\n headers['Content-Type'] = options.body.type || 'application/octet-stream';\n } else if (isString(options.body)) {\n headers['Content-Type'] = 'text/plain';\n } else if (!isFormData(options.body)) {\n headers['Content-Type'] = 'application/json';\n }\n } else if (options.formData !== undefined) {\n if (options.mediaType) {\n headers['Content-Type'] = options.mediaType;\n }\n }\n\n return headers;\n};"; - }, - useData: true, -}; diff --git a/packages/openapi-ts/src/legacy/handlebars/compiled/core/axios/getRequestBody.js b/packages/openapi-ts/src/legacy/handlebars/compiled/core/axios/getRequestBody.js deleted file mode 100644 index 063582829..000000000 --- a/packages/openapi-ts/src/legacy/handlebars/compiled/core/axios/getRequestBody.js +++ /dev/null @@ -1,7 +0,0 @@ -export default { - compiler: [8, '>= 4.3.0'], - main: function (container, depth0, helpers, partials, data) { - return 'export const getRequestBody = (options: ApiRequestOptions): unknown => {\n if (options.body) {\n return options.body;\n }\n return undefined;\n};'; - }, - useData: true, -}; diff --git a/packages/openapi-ts/src/legacy/handlebars/compiled/core/axios/getResponseBody.js b/packages/openapi-ts/src/legacy/handlebars/compiled/core/axios/getResponseBody.js deleted file mode 100644 index 800f8ddbe..000000000 --- a/packages/openapi-ts/src/legacy/handlebars/compiled/core/axios/getResponseBody.js +++ /dev/null @@ -1,7 +0,0 @@ -export default { - compiler: [8, '>= 4.3.0'], - main: function (container, depth0, helpers, partials, data) { - return 'export const getResponseBody = (response: AxiosResponse): unknown => {\n if (response.status !== 204) {\n return response.data;\n }\n return undefined;\n};'; - }, - useData: true, -}; diff --git a/packages/openapi-ts/src/legacy/handlebars/compiled/core/axios/getResponseHeader.js b/packages/openapi-ts/src/legacy/handlebars/compiled/core/axios/getResponseHeader.js deleted file mode 100644 index 3d79fee5e..000000000 --- a/packages/openapi-ts/src/legacy/handlebars/compiled/core/axios/getResponseHeader.js +++ /dev/null @@ -1,7 +0,0 @@ -export default { - compiler: [8, '>= 4.3.0'], - main: function (container, depth0, helpers, partials, data) { - return 'export const getResponseHeader = (response: AxiosResponse, responseHeader?: string): string | undefined => {\n if (responseHeader) {\n const content = response.headers[responseHeader];\n if (isString(content)) {\n return content;\n }\n }\n return undefined;\n};'; - }, - useData: true, -}; diff --git a/packages/openapi-ts/src/legacy/handlebars/compiled/core/axios/request.js b/packages/openapi-ts/src/legacy/handlebars/compiled/core/axios/request.js deleted file mode 100644 index 0993bd66e..000000000 --- a/packages/openapi-ts/src/legacy/handlebars/compiled/core/axios/request.js +++ /dev/null @@ -1,311 +0,0 @@ -export default { - 1: function (container, depth0, helpers, partials, data) { - return 'ApiResult'; - }, - 3: function (container, depth0, helpers, partials, data) { - return 'T'; - }, - 5: function (container, depth0, helpers, partials, data) { - return 'result.body'; - }, - 7: function (container, depth0, helpers, partials, data) { - return 'result'; - }, - compiler: [8, '>= 4.3.0'], - main: function (container, depth0, helpers, partials, data) { - var stack1, - alias1 = depth0 != null ? depth0 : container.nullContext || {}, - lookupProperty = - container.lookupProperty || - function (parent, propertyName) { - if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { - return parent[propertyName]; - } - return undefined; - }; - - return ( - "import axios from 'axios';\nimport type { AxiosError, AxiosRequestConfig, AxiosResponse, AxiosInstance } from 'axios';\n\nimport { ApiError } from './ApiError';\nimport type { ApiRequestOptions } from './ApiRequestOptions';\nimport type { ApiResult } from './ApiResult';\nimport { CancelablePromise } from './CancelablePromise';\nimport type { OnCancel } from './CancelablePromise';\nimport type { OpenAPIConfig } from './OpenAPI';\n\n" + - ((stack1 = container.invokePartial( - lookupProperty(partials, 'functions/isString'), - depth0, - { - name: 'functions/isString', - data: data, - helpers: helpers, - partials: partials, - decorators: container.decorators, - }, - )) != null - ? stack1 - : '') + - '\n\n' + - ((stack1 = container.invokePartial( - lookupProperty(partials, 'functions/isStringWithValue'), - depth0, - { - name: 'functions/isStringWithValue', - data: data, - helpers: helpers, - partials: partials, - decorators: container.decorators, - }, - )) != null - ? stack1 - : '') + - '\n\n' + - ((stack1 = container.invokePartial( - lookupProperty(partials, 'functions/isBlob'), - depth0, - { - name: 'functions/isBlob', - data: data, - helpers: helpers, - partials: partials, - decorators: container.decorators, - }, - )) != null - ? stack1 - : '') + - '\n\n' + - ((stack1 = container.invokePartial( - lookupProperty(partials, 'functions/isFormData'), - depth0, - { - name: 'functions/isFormData', - data: data, - helpers: helpers, - partials: partials, - decorators: container.decorators, - }, - )) != null - ? stack1 - : '') + - '\n\n' + - ((stack1 = container.invokePartial( - lookupProperty(partials, 'functions/isSuccess'), - depth0, - { - name: 'functions/isSuccess', - data: data, - helpers: helpers, - partials: partials, - decorators: container.decorators, - }, - )) != null - ? stack1 - : '') + - '\n\n' + - ((stack1 = container.invokePartial( - lookupProperty(partials, 'functions/base64'), - depth0, - { - name: 'functions/base64', - data: data, - helpers: helpers, - partials: partials, - decorators: container.decorators, - }, - )) != null - ? stack1 - : '') + - '\n\n' + - ((stack1 = container.invokePartial( - lookupProperty(partials, 'functions/getQueryString'), - depth0, - { - name: 'functions/getQueryString', - data: data, - helpers: helpers, - partials: partials, - decorators: container.decorators, - }, - )) != null - ? stack1 - : '') + - '\n\n' + - ((stack1 = container.invokePartial( - lookupProperty(partials, 'functions/getUrl'), - depth0, - { - name: 'functions/getUrl', - data: data, - helpers: helpers, - partials: partials, - decorators: container.decorators, - }, - )) != null - ? stack1 - : '') + - '\n\n' + - ((stack1 = container.invokePartial( - lookupProperty(partials, 'functions/getFormData'), - depth0, - { - name: 'functions/getFormData', - data: data, - helpers: helpers, - partials: partials, - decorators: container.decorators, - }, - )) != null - ? stack1 - : '') + - '\n\n' + - ((stack1 = container.invokePartial( - lookupProperty(partials, 'functions/resolve'), - depth0, - { - name: 'functions/resolve', - data: data, - helpers: helpers, - partials: partials, - decorators: container.decorators, - }, - )) != null - ? stack1 - : '') + - '\n\n' + - ((stack1 = container.invokePartial( - lookupProperty(partials, 'axios/getHeaders'), - depth0, - { - name: 'axios/getHeaders', - data: data, - helpers: helpers, - partials: partials, - decorators: container.decorators, - }, - )) != null - ? stack1 - : '') + - '\n\n' + - ((stack1 = container.invokePartial( - lookupProperty(partials, 'axios/getRequestBody'), - depth0, - { - name: 'axios/getRequestBody', - data: data, - helpers: helpers, - partials: partials, - decorators: container.decorators, - }, - )) != null - ? stack1 - : '') + - '\n\n' + - ((stack1 = container.invokePartial( - lookupProperty(partials, 'axios/sendRequest'), - depth0, - { - name: 'axios/sendRequest', - data: data, - helpers: helpers, - partials: partials, - decorators: container.decorators, - }, - )) != null - ? stack1 - : '') + - '\n\n' + - ((stack1 = container.invokePartial( - lookupProperty(partials, 'axios/getResponseHeader'), - depth0, - { - name: 'axios/getResponseHeader', - data: data, - helpers: helpers, - partials: partials, - decorators: container.decorators, - }, - )) != null - ? stack1 - : '') + - '\n\n' + - ((stack1 = container.invokePartial( - lookupProperty(partials, 'axios/getResponseBody'), - depth0, - { - name: 'axios/getResponseBody', - data: data, - helpers: helpers, - partials: partials, - decorators: container.decorators, - }, - )) != null - ? stack1 - : '') + - '\n\n' + - ((stack1 = container.invokePartial( - lookupProperty(partials, 'functions/catchErrorCodes'), - depth0, - { - name: 'functions/catchErrorCodes', - data: data, - helpers: helpers, - partials: partials, - decorators: container.decorators, - }, - )) != null - ? stack1 - : '') + - '\n\n/**\n * Request method\n * @param config The OpenAPI configuration object\n * @param options The request options from the service\n * @param axiosClient The axios client instance to use\n * @returns CancelablePromise<' + - ((stack1 = lookupProperty(helpers, 'ifServicesResponse').call( - alias1, - 'response', - { - name: 'ifServicesResponse', - hash: {}, - fn: container.program(1, data, 0), - inverse: container.program(3, data, 0), - data: data, - loc: { - start: { line: 64, column: 30 }, - end: { line: 64, column: 108 }, - }, - }, - )) != null - ? stack1 - : '') + - '>\n * @throws ApiError\n */\nexport const request = (config: OpenAPIConfig, options: ApiRequestOptions, axiosClient: AxiosInstance = axios): CancelablePromise<' + - ((stack1 = lookupProperty(helpers, 'ifServicesResponse').call( - alias1, - 'response', - { - name: 'ifServicesResponse', - hash: {}, - fn: container.program(1, data, 0), - inverse: container.program(3, data, 0), - data: data, - loc: { - start: { line: 67, column: 136 }, - end: { line: 67, column: 214 }, - }, - }, - )) != null - ? stack1 - : '') + - '> => {\n return new CancelablePromise(async (resolve, reject, onCancel) => {\n try {\n const url = getUrl(config, options);\n const formData = getFormData(options);\n const body = getRequestBody(options);\n const headers = await getHeaders(config, options);\n\n if (!onCancel.isCancelled) {\n let response = await sendRequest(config, options, url, body, formData, headers, onCancel, axiosClient);\n\n for (const fn of config.interceptors.response._fns) {\n response = await fn(response);\n }\n\n const responseBody = getResponseBody(response);\n const responseHeader = getResponseHeader(response, options.responseHeader);\n\n let transformedBody = responseBody;\n if (options.responseTransformer && isSuccess(response.status)) {\n transformedBody = await options.responseTransformer(responseBody)\n }\n\n const result: ApiResult = {\n url,\n ok: isSuccess(response.status),\n status: response.status,\n statusText: response.statusText,\n body: responseHeader ?? transformedBody,\n };\n\n catchErrorCodes(options, result);\n\n resolve(' + - ((stack1 = lookupProperty(helpers, 'ifServicesResponse').call( - alias1, - 'body', - { - name: 'ifServicesResponse', - hash: {}, - fn: container.program(5, data, 0), - inverse: container.program(7, data, 0), - data: data, - loc: { - start: { line: 100, column: 12 }, - end: { line: 100, column: 90 }, - }, - }, - )) != null - ? stack1 - : '') + - ');\n }\n } catch (error) {\n reject(error);\n }\n });\n};' - ); - }, - usePartial: true, - useData: true, -}; diff --git a/packages/openapi-ts/src/legacy/handlebars/compiled/core/axios/sendRequest.js b/packages/openapi-ts/src/legacy/handlebars/compiled/core/axios/sendRequest.js deleted file mode 100644 index 448fd04f1..000000000 --- a/packages/openapi-ts/src/legacy/handlebars/compiled/core/axios/sendRequest.js +++ /dev/null @@ -1,7 +0,0 @@ -export default { - compiler: [8, '>= 4.3.0'], - main: function (container, depth0, helpers, partials, data) { - return 'export const sendRequest = async (\n config: OpenAPIConfig,\n options: ApiRequestOptions,\n url: string,\n body: unknown,\n formData: FormData | undefined,\n headers: Record,\n onCancel: OnCancel,\n axiosClient: AxiosInstance\n): Promise> => {\n const controller = new AbortController();\n\n let requestConfig: AxiosRequestConfig = {\n data: body ?? formData,\n headers,\n method: options.method,\n signal: controller.signal,\n url,\n withCredentials: config.WITH_CREDENTIALS,\n };\n\n onCancel(() => controller.abort());\n\n for (const fn of config.interceptors.request._fns) {\n requestConfig = await fn(requestConfig);\n }\n\n try {\n return await axiosClient.request(requestConfig);\n } catch (error) {\n const axiosError = error as AxiosError;\n if (axiosError.response) {\n return axiosError.response;\n }\n throw error;\n }\n};'; - }, - useData: true, -}; diff --git a/packages/openapi-ts/src/legacy/handlebars/compiled/core/fetch/getHeaders.js b/packages/openapi-ts/src/legacy/handlebars/compiled/core/fetch/getHeaders.js deleted file mode 100644 index ba30baa44..000000000 --- a/packages/openapi-ts/src/legacy/handlebars/compiled/core/fetch/getHeaders.js +++ /dev/null @@ -1,7 +0,0 @@ -export default { - compiler: [8, '>= 4.3.0'], - main: function (container, depth0, helpers, partials, data) { - return "export const getHeaders = async (config: OpenAPIConfig, options: ApiRequestOptions): Promise => {\n const [token, username, password, additionalHeaders] = await Promise.all([\n // @ts-ignore\n resolve(options, config.TOKEN),\n // @ts-ignore\n resolve(options, config.USERNAME),\n // @ts-ignore\n resolve(options, config.PASSWORD),\n // @ts-ignore\n resolve(options, config.HEADERS),\n ]);\n\n const headers = Object.entries({\n Accept: 'application/json',\n ...additionalHeaders,\n ...options.headers,\n })\n .filter(([, value]) => value !== undefined && value !== null)\n .reduce((headers, [key, value]) => ({\n ...headers,\n [key]: String(value),\n }), {} as Record);\n\n if (isStringWithValue(token)) {\n headers['Authorization'] = `Bearer ${token}`;\n }\n\n if (isStringWithValue(username) && isStringWithValue(password)) {\n const credentials = base64(`${username}:${password}`);\n headers['Authorization'] = `Basic ${credentials}`;\n }\n\n if (options.body !== undefined) {\n if (options.mediaType) {\n headers['Content-Type'] = options.mediaType;\n } else if (isBlob(options.body)) {\n headers['Content-Type'] = options.body.type || 'application/octet-stream';\n } else if (isString(options.body)) {\n headers['Content-Type'] = 'text/plain';\n } else if (!isFormData(options.body)) {\n headers['Content-Type'] = 'application/json';\n }\n }\n\n return new Headers(headers);\n};"; - }, - useData: true, -}; diff --git a/packages/openapi-ts/src/legacy/handlebars/compiled/core/fetch/getRequestBody.js b/packages/openapi-ts/src/legacy/handlebars/compiled/core/fetch/getRequestBody.js deleted file mode 100644 index 1378625cb..000000000 --- a/packages/openapi-ts/src/legacy/handlebars/compiled/core/fetch/getRequestBody.js +++ /dev/null @@ -1,7 +0,0 @@ -export default { - compiler: [8, '>= 4.3.0'], - main: function (container, depth0, helpers, partials, data) { - return "export const getRequestBody = (options: ApiRequestOptions): unknown => {\n if (options.body !== undefined) {\n if (options.mediaType?.includes('application/json') || options.mediaType?.includes('+json')) {\n return JSON.stringify(options.body);\n } else if (isString(options.body) || isBlob(options.body) || isFormData(options.body)) {\n return options.body;\n } else {\n return JSON.stringify(options.body);\n }\n }\n return undefined;\n};"; - }, - useData: true, -}; diff --git a/packages/openapi-ts/src/legacy/handlebars/compiled/core/fetch/getResponseBody.js b/packages/openapi-ts/src/legacy/handlebars/compiled/core/fetch/getResponseBody.js deleted file mode 100644 index 7b90b1b61..000000000 --- a/packages/openapi-ts/src/legacy/handlebars/compiled/core/fetch/getResponseBody.js +++ /dev/null @@ -1,7 +0,0 @@ -export default { - compiler: [8, '>= 4.3.0'], - main: function (container, depth0, helpers, partials, data) { - return "export const getResponseBody = async (response: Response): Promise => {\n if (response.status !== 204) {\n try {\n const contentType = response.headers.get('Content-Type');\n if (contentType) {\n const binaryTypes = ['application/octet-stream', 'application/pdf', 'application/zip', 'audio/', 'image/', 'video/'];\n if (contentType.includes('application/json') || contentType.includes('+json')) {\n return await response.json();\n } else if (binaryTypes.some(type => contentType.includes(type))) {\n return await response.blob();\n } else if (contentType.includes('multipart/form-data')) {\n return await response.formData();\n } else if (contentType.includes('text/')) {\n return await response.text();\n }\n }\n } catch (error) {\n console.error(error);\n }\n }\n return undefined;\n};"; - }, - useData: true, -}; diff --git a/packages/openapi-ts/src/legacy/handlebars/compiled/core/fetch/getResponseHeader.js b/packages/openapi-ts/src/legacy/handlebars/compiled/core/fetch/getResponseHeader.js deleted file mode 100644 index 46f79e225..000000000 --- a/packages/openapi-ts/src/legacy/handlebars/compiled/core/fetch/getResponseHeader.js +++ /dev/null @@ -1,7 +0,0 @@ -export default { - compiler: [8, '>= 4.3.0'], - main: function (container, depth0, helpers, partials, data) { - return 'export const getResponseHeader = (response: Response, responseHeader?: string): string | undefined => {\n if (responseHeader) {\n const content = response.headers.get(responseHeader);\n if (isString(content)) {\n return content;\n }\n }\n return undefined;\n};'; - }, - useData: true, -}; diff --git a/packages/openapi-ts/src/legacy/handlebars/compiled/core/fetch/request.js b/packages/openapi-ts/src/legacy/handlebars/compiled/core/fetch/request.js deleted file mode 100644 index 1957da010..000000000 --- a/packages/openapi-ts/src/legacy/handlebars/compiled/core/fetch/request.js +++ /dev/null @@ -1,321 +0,0 @@ -export default { - 1: function (container, depth0, helpers, partials, data) { - return "import fetch, { FormData, Headers } from 'node-fetch';\nimport type { RequestInit, Response } from 'node-fetch';\n\n"; - }, - 3: function (container, depth0, helpers, partials, data) { - return 'ApiResult'; - }, - 5: function (container, depth0, helpers, partials, data) { - return 'T'; - }, - 7: function (container, depth0, helpers, partials, data) { - return 'result.body'; - }, - 9: function (container, depth0, helpers, partials, data) { - return 'result'; - }, - compiler: [8, '>= 4.3.0'], - main: function (container, depth0, helpers, partials, data) { - var stack1, - alias1 = depth0 != null ? depth0 : container.nullContext || {}, - lookupProperty = - container.lookupProperty || - function (parent, propertyName) { - if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { - return parent[propertyName]; - } - return undefined; - }; - - return ( - ((stack1 = lookupProperty(helpers, 'equals').call( - alias1, - lookupProperty( - lookupProperty( - lookupProperty(lookupProperty(data, 'root'), '$config'), - 'client', - ), - 'name', - ), - 'legacy/node', - { - name: 'equals', - hash: {}, - fn: container.program(1, data, 0), - inverse: container.noop, - data: data, - loc: { start: { line: 1, column: 0 }, end: { line: 5, column: 11 } }, - }, - )) != null - ? stack1 - : '') + - "import { ApiError } from './ApiError';\nimport type { ApiRequestOptions } from './ApiRequestOptions';\nimport type { ApiResult } from './ApiResult';\nimport { CancelablePromise } from './CancelablePromise';\nimport type { OnCancel } from './CancelablePromise';\nimport type { OpenAPIConfig } from './OpenAPI';\n\n" + - ((stack1 = container.invokePartial( - lookupProperty(partials, 'functions/isString'), - depth0, - { - name: 'functions/isString', - data: data, - helpers: helpers, - partials: partials, - decorators: container.decorators, - }, - )) != null - ? stack1 - : '') + - '\n\n' + - ((stack1 = container.invokePartial( - lookupProperty(partials, 'functions/isStringWithValue'), - depth0, - { - name: 'functions/isStringWithValue', - data: data, - helpers: helpers, - partials: partials, - decorators: container.decorators, - }, - )) != null - ? stack1 - : '') + - '\n\n' + - ((stack1 = container.invokePartial( - lookupProperty(partials, 'functions/isBlob'), - depth0, - { - name: 'functions/isBlob', - data: data, - helpers: helpers, - partials: partials, - decorators: container.decorators, - }, - )) != null - ? stack1 - : '') + - '\n\n' + - ((stack1 = container.invokePartial( - lookupProperty(partials, 'functions/isFormData'), - depth0, - { - name: 'functions/isFormData', - data: data, - helpers: helpers, - partials: partials, - decorators: container.decorators, - }, - )) != null - ? stack1 - : '') + - '\n\n' + - ((stack1 = container.invokePartial( - lookupProperty(partials, 'functions/base64'), - depth0, - { - name: 'functions/base64', - data: data, - helpers: helpers, - partials: partials, - decorators: container.decorators, - }, - )) != null - ? stack1 - : '') + - '\n\n' + - ((stack1 = container.invokePartial( - lookupProperty(partials, 'functions/getQueryString'), - depth0, - { - name: 'functions/getQueryString', - data: data, - helpers: helpers, - partials: partials, - decorators: container.decorators, - }, - )) != null - ? stack1 - : '') + - '\n\n' + - ((stack1 = container.invokePartial( - lookupProperty(partials, 'functions/getUrl'), - depth0, - { - name: 'functions/getUrl', - data: data, - helpers: helpers, - partials: partials, - decorators: container.decorators, - }, - )) != null - ? stack1 - : '') + - '\n\n' + - ((stack1 = container.invokePartial( - lookupProperty(partials, 'functions/getFormData'), - depth0, - { - name: 'functions/getFormData', - data: data, - helpers: helpers, - partials: partials, - decorators: container.decorators, - }, - )) != null - ? stack1 - : '') + - '\n\n' + - ((stack1 = container.invokePartial( - lookupProperty(partials, 'functions/resolve'), - depth0, - { - name: 'functions/resolve', - data: data, - helpers: helpers, - partials: partials, - decorators: container.decorators, - }, - )) != null - ? stack1 - : '') + - '\n\n' + - ((stack1 = container.invokePartial( - lookupProperty(partials, 'fetch/getHeaders'), - depth0, - { - name: 'fetch/getHeaders', - data: data, - helpers: helpers, - partials: partials, - decorators: container.decorators, - }, - )) != null - ? stack1 - : '') + - '\n\n' + - ((stack1 = container.invokePartial( - lookupProperty(partials, 'fetch/getRequestBody'), - depth0, - { - name: 'fetch/getRequestBody', - data: data, - helpers: helpers, - partials: partials, - decorators: container.decorators, - }, - )) != null - ? stack1 - : '') + - '\n\n' + - ((stack1 = container.invokePartial( - lookupProperty(partials, 'fetch/sendRequest'), - depth0, - { - name: 'fetch/sendRequest', - data: data, - helpers: helpers, - partials: partials, - decorators: container.decorators, - }, - )) != null - ? stack1 - : '') + - '\n\n' + - ((stack1 = container.invokePartial( - lookupProperty(partials, 'fetch/getResponseHeader'), - depth0, - { - name: 'fetch/getResponseHeader', - data: data, - helpers: helpers, - partials: partials, - decorators: container.decorators, - }, - )) != null - ? stack1 - : '') + - '\n\n' + - ((stack1 = container.invokePartial( - lookupProperty(partials, 'fetch/getResponseBody'), - depth0, - { - name: 'fetch/getResponseBody', - data: data, - helpers: helpers, - partials: partials, - decorators: container.decorators, - }, - )) != null - ? stack1 - : '') + - '\n\n' + - ((stack1 = container.invokePartial( - lookupProperty(partials, 'functions/catchErrorCodes'), - depth0, - { - name: 'functions/catchErrorCodes', - data: data, - helpers: helpers, - partials: partials, - decorators: container.decorators, - }, - )) != null - ? stack1 - : '') + - '\n\n/**\n * Request method\n * @param config The OpenAPI configuration object\n * @param options The request options from the service\n * @returns CancelablePromise<' + - ((stack1 = lookupProperty(helpers, 'ifServicesResponse').call( - alias1, - 'response', - { - name: 'ifServicesResponse', - hash: {}, - fn: container.program(3, data, 0), - inverse: container.program(5, data, 0), - data: data, - loc: { - start: { line: 62, column: 30 }, - end: { line: 62, column: 108 }, - }, - }, - )) != null - ? stack1 - : '') + - '>\n * @throws ApiError\n */\nexport const request = (config: OpenAPIConfig, options: ApiRequestOptions): CancelablePromise<' + - ((stack1 = lookupProperty(helpers, 'ifServicesResponse').call( - alias1, - 'response', - { - name: 'ifServicesResponse', - hash: {}, - fn: container.program(3, data, 0), - inverse: container.program(5, data, 0), - data: data, - loc: { - start: { line: 65, column: 100 }, - end: { line: 65, column: 178 }, - }, - }, - )) != null - ? stack1 - : '') + - '> => {\n return new CancelablePromise(async (resolve, reject, onCancel) => {\n try {\n const url = getUrl(config, options);\n const formData = getFormData(options);\n const body = getRequestBody(options);\n const headers = await getHeaders(config, options);\n\n if (!onCancel.isCancelled) {\n let response = await sendRequest(config, options, url, body, formData, headers, onCancel);\n\n for (const fn of config.interceptors.response._fns) {\n response = await fn(response);\n }\n\n const responseBody = await getResponseBody(response);\n const responseHeader = getResponseHeader(response, options.responseHeader);\n\n let transformedBody = responseBody;\n if (options.responseTransformer && response.ok) {\n transformedBody = await options.responseTransformer(responseBody)\n }\n\n const result: ApiResult = {\n url,\n ok: response.ok,\n status: response.status,\n statusText: response.statusText,\n body: responseHeader ?? transformedBody,\n };\n\n catchErrorCodes(options, result);\n\n resolve(' + - ((stack1 = lookupProperty(helpers, 'ifServicesResponse').call( - alias1, - 'body', - { - name: 'ifServicesResponse', - hash: {}, - fn: container.program(7, data, 0), - inverse: container.program(9, data, 0), - data: data, - loc: { - start: { line: 98, column: 12 }, - end: { line: 98, column: 90 }, - }, - }, - )) != null - ? stack1 - : '') + - ');\n }\n } catch (error) {\n reject(error);\n }\n });\n};' - ); - }, - usePartial: true, - useData: true, -}; diff --git a/packages/openapi-ts/src/legacy/handlebars/compiled/core/fetch/sendRequest.js b/packages/openapi-ts/src/legacy/handlebars/compiled/core/fetch/sendRequest.js deleted file mode 100644 index 0b0087c7b..000000000 --- a/packages/openapi-ts/src/legacy/handlebars/compiled/core/fetch/sendRequest.js +++ /dev/null @@ -1,47 +0,0 @@ -export default { - 1: function (container, depth0, helpers, partials, data) { - return ' if (config.WITH_CREDENTIALS) {\n request.credentials = config.CREDENTIALS;\n }\n'; - }, - compiler: [8, '>= 4.3.0'], - main: function (container, depth0, helpers, partials, data) { - var stack1, - lookupProperty = - container.lookupProperty || - function (parent, propertyName) { - if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { - return parent[propertyName]; - } - return undefined; - }; - - return ( - 'export const sendRequest = async (\n config: OpenAPIConfig,\n options: ApiRequestOptions,\n url: string,\n body: any,\n formData: FormData | undefined,\n headers: Headers,\n onCancel: OnCancel\n): Promise => {\n const controller = new AbortController();\n\n let request: RequestInit = {\n headers,\n body: body ?? formData,\n method: options.method,\n signal: controller.signal,\n };\n\n' + - ((stack1 = lookupProperty(helpers, 'equals').call( - depth0 != null ? depth0 : container.nullContext || {}, - lookupProperty( - lookupProperty( - lookupProperty(lookupProperty(data, 'root'), '$config'), - 'client', - ), - 'name', - ), - 'legacy/fetch', - { - name: 'equals', - hash: {}, - fn: container.program(1, data, 0), - inverse: container.noop, - data: data, - loc: { - start: { line: 19, column: 1 }, - end: { line: 23, column: 12 }, - }, - }, - )) != null - ? stack1 - : '') + - '\n for (const fn of config.interceptors.request._fns) {\n request = await fn(request);\n }\n\n onCancel(() => controller.abort());\n\n return await fetch(url, request);\n};' - ); - }, - useData: true, -}; diff --git a/packages/openapi-ts/src/legacy/handlebars/compiled/core/functions/base64.js b/packages/openapi-ts/src/legacy/handlebars/compiled/core/functions/base64.js deleted file mode 100644 index b8fa64c80..000000000 --- a/packages/openapi-ts/src/legacy/handlebars/compiled/core/functions/base64.js +++ /dev/null @@ -1,7 +0,0 @@ -export default { - compiler: [8, '>= 4.3.0'], - main: function (container, depth0, helpers, partials, data) { - return "export const base64 = (str: string): string => {\n try {\n return btoa(str);\n } catch (err) {\n // @ts-ignore\n return Buffer.from(str).toString('base64');\n }\n};"; - }, - useData: true, -}; diff --git a/packages/openapi-ts/src/legacy/handlebars/compiled/core/functions/catchErrorCodes.js b/packages/openapi-ts/src/legacy/handlebars/compiled/core/functions/catchErrorCodes.js deleted file mode 100644 index 91272e89e..000000000 --- a/packages/openapi-ts/src/legacy/handlebars/compiled/core/functions/catchErrorCodes.js +++ /dev/null @@ -1,7 +0,0 @@ -export default { - compiler: [8, '>= 4.3.0'], - main: function (container, depth0, helpers, partials, data) { - return "export const catchErrorCodes = (options: ApiRequestOptions, result: ApiResult): void => {\n const errors: Record = {\n 400: 'Bad Request',\n 401: 'Unauthorized',\n 402: 'Payment Required',\n 403: 'Forbidden',\n 404: 'Not Found',\n 405: 'Method Not Allowed',\n 406: 'Not Acceptable',\n 407: 'Proxy Authentication Required',\n 408: 'Request Timeout',\n 409: 'Conflict',\n 410: 'Gone',\n 411: 'Length Required',\n 412: 'Precondition Failed',\n 413: 'Payload Too Large',\n 414: 'URI Too Long',\n 415: 'Unsupported Media Type',\n 416: 'Range Not Satisfiable',\n 417: 'Expectation Failed',\n 418: 'Im a teapot',\n 421: 'Misdirected Request',\n 422: 'Unprocessable Content',\n 423: 'Locked',\n 424: 'Failed Dependency',\n 425: 'Too Early',\n 426: 'Upgrade Required',\n 428: 'Precondition Required',\n 429: 'Too Many Requests',\n 431: 'Request Header Fields Too Large',\n 451: 'Unavailable For Legal Reasons',\n 500: 'Internal Server Error',\n 501: 'Not Implemented',\n 502: 'Bad Gateway',\n 503: 'Service Unavailable',\n 504: 'Gateway Timeout',\n 505: 'HTTP Version Not Supported',\n 506: 'Variant Also Negotiates',\n 507: 'Insufficient Storage',\n 508: 'Loop Detected',\n 510: 'Not Extended',\n 511: 'Network Authentication Required',\n ...options.errors,\n }\n\n const error = errors[result.status];\n if (error) {\n throw new ApiError(options, result, error);\n }\n\n if (!result.ok) {\n const errorStatus = result.status ?? 'unknown';\n const errorStatusText = result.statusText ?? 'unknown';\n const errorBody = (() => {\n try {\n return JSON.stringify(result.body, null, 2);\n } catch (e) {\n return undefined;\n }\n })();\n\n throw new ApiError(options, result,\n `Generic Error: status: ${errorStatus}; status text: ${errorStatusText}; body: ${errorBody}`\n );\n }\n};"; - }, - useData: true, -}; diff --git a/packages/openapi-ts/src/legacy/handlebars/compiled/core/functions/getFormData.js b/packages/openapi-ts/src/legacy/handlebars/compiled/core/functions/getFormData.js deleted file mode 100644 index aadad3cc5..000000000 --- a/packages/openapi-ts/src/legacy/handlebars/compiled/core/functions/getFormData.js +++ /dev/null @@ -1,7 +0,0 @@ -export default { - compiler: [8, '>= 4.3.0'], - main: function (container, depth0, helpers, partials, data) { - return 'export const getFormData = (options: ApiRequestOptions): FormData | undefined => {\n if (options.formData) {\n const formData = new FormData();\n\n const process = (key: string, value: unknown) => {\n if (isString(value) || isBlob(value)) {\n formData.append(key, value);\n } else {\n formData.append(key, JSON.stringify(value));\n }\n };\n\n Object.entries(options.formData)\n .filter(([, value]) => value !== undefined && value !== null)\n .forEach(([key, value]) => {\n if (Array.isArray(value)) {\n value.forEach(v => process(key, v));\n } else {\n process(key, value);\n }\n });\n\n return formData;\n }\n return undefined;\n};'; - }, - useData: true, -}; diff --git a/packages/openapi-ts/src/legacy/handlebars/compiled/core/functions/getQueryString.js b/packages/openapi-ts/src/legacy/handlebars/compiled/core/functions/getQueryString.js deleted file mode 100644 index f9c6ca47b..000000000 --- a/packages/openapi-ts/src/legacy/handlebars/compiled/core/functions/getQueryString.js +++ /dev/null @@ -1,7 +0,0 @@ -export default { - compiler: [8, '>= 4.3.0'], - main: function (container, depth0, helpers, partials, data) { - return "export const getQueryString = (params: Record): string => {\n const qs: string[] = [];\n\n const append = (key: string, value: unknown) => {\n qs.push(`${encodeURIComponent(key)}=${encodeURIComponent(String(value))}`);\n };\n\n const encodePair = (key: string, value: unknown) => {\n if (value === undefined || value === null) {\n return;\n }\n\n if (value instanceof Date) {\n append(key, value.toISOString());\n } else if (Array.isArray(value)) {\n value.forEach(v => encodePair(key, v));\n } else if (typeof value === 'object') {\n Object.entries(value).forEach(([k, v]) => encodePair(`${key}[${k}]`, v));\n } else {\n append(key, value);\n }\n };\n\n Object.entries(params).forEach(([key, value]) => encodePair(key, value));\n\n return qs.length ? `?${qs.join('&')}` : '';\n};"; - }, - useData: true, -}; diff --git a/packages/openapi-ts/src/legacy/handlebars/compiled/core/functions/getUrl.js b/packages/openapi-ts/src/legacy/handlebars/compiled/core/functions/getUrl.js deleted file mode 100644 index 6229a3a36..000000000 --- a/packages/openapi-ts/src/legacy/handlebars/compiled/core/functions/getUrl.js +++ /dev/null @@ -1,7 +0,0 @@ -export default { - compiler: [8, '>= 4.3.0'], - main: function (container, depth0, helpers, partials, data) { - return "const getUrl = (config: OpenAPIConfig, options: ApiRequestOptions): string => {\n const encoder = config.ENCODE_PATH || encodeURI;\n\n const path = options.url\n .replace('{api-version}', config.VERSION)\n .replace(/{(.*?)}/g, (substring: string, group: string) => {\n if (options.path?.hasOwnProperty(group)) {\n return encoder(String(options.path[group]));\n }\n return substring;\n });\n\n const url = config.BASE + path;\n return options.query ? url + getQueryString(options.query) : url;\n};"; - }, - useData: true, -}; diff --git a/packages/openapi-ts/src/legacy/handlebars/compiled/core/functions/isBlob.js b/packages/openapi-ts/src/legacy/handlebars/compiled/core/functions/isBlob.js deleted file mode 100644 index a2e49389a..000000000 --- a/packages/openapi-ts/src/legacy/handlebars/compiled/core/functions/isBlob.js +++ /dev/null @@ -1,7 +0,0 @@ -export default { - compiler: [8, '>= 4.3.0'], - main: function (container, depth0, helpers, partials, data) { - return 'export const isBlob = (value: any): value is Blob => {\n return value instanceof Blob;\n};'; - }, - useData: true, -}; diff --git a/packages/openapi-ts/src/legacy/handlebars/compiled/core/functions/isFormData.js b/packages/openapi-ts/src/legacy/handlebars/compiled/core/functions/isFormData.js deleted file mode 100644 index 9d0880a49..000000000 --- a/packages/openapi-ts/src/legacy/handlebars/compiled/core/functions/isFormData.js +++ /dev/null @@ -1,7 +0,0 @@ -export default { - compiler: [8, '>= 4.3.0'], - main: function (container, depth0, helpers, partials, data) { - return 'export const isFormData = (value: unknown): value is FormData => {\n return value instanceof FormData;\n};'; - }, - useData: true, -}; diff --git a/packages/openapi-ts/src/legacy/handlebars/compiled/core/functions/isString.js b/packages/openapi-ts/src/legacy/handlebars/compiled/core/functions/isString.js deleted file mode 100644 index 54f1fd264..000000000 --- a/packages/openapi-ts/src/legacy/handlebars/compiled/core/functions/isString.js +++ /dev/null @@ -1,7 +0,0 @@ -export default { - compiler: [8, '>= 4.3.0'], - main: function (container, depth0, helpers, partials, data) { - return "export const isString = (value: unknown): value is string => {\n return typeof value === 'string';\n};"; - }, - useData: true, -}; diff --git a/packages/openapi-ts/src/legacy/handlebars/compiled/core/functions/isStringWithValue.js b/packages/openapi-ts/src/legacy/handlebars/compiled/core/functions/isStringWithValue.js deleted file mode 100644 index 693b6f883..000000000 --- a/packages/openapi-ts/src/legacy/handlebars/compiled/core/functions/isStringWithValue.js +++ /dev/null @@ -1,7 +0,0 @@ -export default { - compiler: [8, '>= 4.3.0'], - main: function (container, depth0, helpers, partials, data) { - return "export const isStringWithValue = (value: unknown): value is string => {\n return isString(value) && value !== '';\n};"; - }, - useData: true, -}; diff --git a/packages/openapi-ts/src/legacy/handlebars/compiled/core/functions/isSuccess.js b/packages/openapi-ts/src/legacy/handlebars/compiled/core/functions/isSuccess.js deleted file mode 100644 index b51b66827..000000000 --- a/packages/openapi-ts/src/legacy/handlebars/compiled/core/functions/isSuccess.js +++ /dev/null @@ -1,7 +0,0 @@ -export default { - compiler: [8, '>= 4.3.0'], - main: function (container, depth0, helpers, partials, data) { - return 'export const isSuccess = (status: number): boolean => {\n return status >= 200 && status < 300;\n};'; - }, - useData: true, -}; diff --git a/packages/openapi-ts/src/legacy/handlebars/compiled/core/functions/resolve.js b/packages/openapi-ts/src/legacy/handlebars/compiled/core/functions/resolve.js deleted file mode 100644 index 79457a4a7..000000000 --- a/packages/openapi-ts/src/legacy/handlebars/compiled/core/functions/resolve.js +++ /dev/null @@ -1,7 +0,0 @@ -export default { - compiler: [8, '>= 4.3.0'], - main: function (container, depth0, helpers, partials, data) { - return "type Resolver = (options: ApiRequestOptions) => Promise;\n\nexport const resolve = async (options: ApiRequestOptions, resolver?: T | Resolver): Promise => {\n if (typeof resolver === 'function') {\n return (resolver as Resolver)(options);\n }\n return resolver;\n};"; - }, - useData: true, -}; diff --git a/packages/openapi-ts/src/legacy/handlebars/compiled/core/request.js b/packages/openapi-ts/src/legacy/handlebars/compiled/core/request.js deleted file mode 100644 index f536aca4a..000000000 --- a/packages/openapi-ts/src/legacy/handlebars/compiled/core/request.js +++ /dev/null @@ -1,225 +0,0 @@ -export default { - 1: function (container, depth0, helpers, partials, data) { - var stack1, - lookupProperty = - container.lookupProperty || - function (parent, propertyName) { - if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { - return parent[propertyName]; - } - return undefined; - }; - - return (stack1 = container.invokePartial( - lookupProperty(partials, 'angular/request'), - depth0, - { - name: 'angular/request', - data: data, - helpers: helpers, - partials: partials, - decorators: container.decorators, - }, - )) != null - ? stack1 - : ''; - }, - 3: function (container, depth0, helpers, partials, data) { - var stack1, - lookupProperty = - container.lookupProperty || - function (parent, propertyName) { - if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { - return parent[propertyName]; - } - return undefined; - }; - - return (stack1 = container.invokePartial( - lookupProperty(partials, 'axios/request'), - depth0, - { - name: 'axios/request', - data: data, - helpers: helpers, - partials: partials, - decorators: container.decorators, - }, - )) != null - ? stack1 - : ''; - }, - 5: function (container, depth0, helpers, partials, data) { - var stack1, - lookupProperty = - container.lookupProperty || - function (parent, propertyName) { - if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { - return parent[propertyName]; - } - return undefined; - }; - - return (stack1 = container.invokePartial( - lookupProperty(partials, 'fetch/request'), - depth0, - { - name: 'fetch/request', - data: data, - helpers: helpers, - partials: partials, - decorators: container.decorators, - }, - )) != null - ? stack1 - : ''; - }, - 7: function (container, depth0, helpers, partials, data) { - var stack1, - lookupProperty = - container.lookupProperty || - function (parent, propertyName) { - if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { - return parent[propertyName]; - } - return undefined; - }; - - return (stack1 = container.invokePartial( - lookupProperty(partials, 'xhr/request'), - depth0, - { - name: 'xhr/request', - data: data, - helpers: helpers, - partials: partials, - decorators: container.decorators, - }, - )) != null - ? stack1 - : ''; - }, - compiler: [8, '>= 4.3.0'], - main: function (container, depth0, helpers, partials, data) { - var stack1, - alias1 = depth0 != null ? depth0 : container.nullContext || {}, - lookupProperty = - container.lookupProperty || - function (parent, propertyName) { - if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { - return parent[propertyName]; - } - return undefined; - }; - - return ( - ((stack1 = lookupProperty(helpers, 'equals').call( - alias1, - lookupProperty( - lookupProperty( - lookupProperty(lookupProperty(data, 'root'), '$config'), - 'client', - ), - 'name', - ), - 'legacy/angular', - { - name: 'equals', - hash: {}, - fn: container.program(1, data, 0), - inverse: container.noop, - data: data, - loc: { start: { line: 1, column: 0 }, end: { line: 1, column: 87 } }, - }, - )) != null - ? stack1 - : '') + - ((stack1 = lookupProperty(helpers, 'equals').call( - alias1, - lookupProperty( - lookupProperty( - lookupProperty(lookupProperty(data, 'root'), '$config'), - 'client', - ), - 'name', - ), - 'legacy/axios', - { - name: 'equals', - hash: {}, - fn: container.program(3, data, 0), - inverse: container.noop, - data: data, - loc: { start: { line: 2, column: 0 }, end: { line: 2, column: 83 } }, - }, - )) != null - ? stack1 - : '') + - ((stack1 = lookupProperty(helpers, 'equals').call( - alias1, - lookupProperty( - lookupProperty( - lookupProperty(lookupProperty(data, 'root'), '$config'), - 'client', - ), - 'name', - ), - 'legacy/fetch', - { - name: 'equals', - hash: {}, - fn: container.program(5, data, 0), - inverse: container.noop, - data: data, - loc: { start: { line: 3, column: 0 }, end: { line: 3, column: 83 } }, - }, - )) != null - ? stack1 - : '') + - ((stack1 = lookupProperty(helpers, 'equals').call( - alias1, - lookupProperty( - lookupProperty( - lookupProperty(lookupProperty(data, 'root'), '$config'), - 'client', - ), - 'name', - ), - 'legacy/node', - { - name: 'equals', - hash: {}, - fn: container.program(5, data, 0), - inverse: container.noop, - data: data, - loc: { start: { line: 4, column: 0 }, end: { line: 4, column: 82 } }, - }, - )) != null - ? stack1 - : '') + - ((stack1 = lookupProperty(helpers, 'equals').call( - alias1, - lookupProperty( - lookupProperty( - lookupProperty(lookupProperty(data, 'root'), '$config'), - 'client', - ), - 'name', - ), - 'legacy/xhr', - { - name: 'equals', - hash: {}, - fn: container.program(7, data, 0), - inverse: container.noop, - data: data, - loc: { start: { line: 5, column: 0 }, end: { line: 5, column: 79 } }, - }, - )) != null - ? stack1 - : '') - ); - }, - usePartial: true, - useData: true, -}; diff --git a/packages/openapi-ts/src/legacy/handlebars/compiled/core/xhr/getHeaders.js b/packages/openapi-ts/src/legacy/handlebars/compiled/core/xhr/getHeaders.js deleted file mode 100644 index ba30baa44..000000000 --- a/packages/openapi-ts/src/legacy/handlebars/compiled/core/xhr/getHeaders.js +++ /dev/null @@ -1,7 +0,0 @@ -export default { - compiler: [8, '>= 4.3.0'], - main: function (container, depth0, helpers, partials, data) { - return "export const getHeaders = async (config: OpenAPIConfig, options: ApiRequestOptions): Promise => {\n const [token, username, password, additionalHeaders] = await Promise.all([\n // @ts-ignore\n resolve(options, config.TOKEN),\n // @ts-ignore\n resolve(options, config.USERNAME),\n // @ts-ignore\n resolve(options, config.PASSWORD),\n // @ts-ignore\n resolve(options, config.HEADERS),\n ]);\n\n const headers = Object.entries({\n Accept: 'application/json',\n ...additionalHeaders,\n ...options.headers,\n })\n .filter(([, value]) => value !== undefined && value !== null)\n .reduce((headers, [key, value]) => ({\n ...headers,\n [key]: String(value),\n }), {} as Record);\n\n if (isStringWithValue(token)) {\n headers['Authorization'] = `Bearer ${token}`;\n }\n\n if (isStringWithValue(username) && isStringWithValue(password)) {\n const credentials = base64(`${username}:${password}`);\n headers['Authorization'] = `Basic ${credentials}`;\n }\n\n if (options.body !== undefined) {\n if (options.mediaType) {\n headers['Content-Type'] = options.mediaType;\n } else if (isBlob(options.body)) {\n headers['Content-Type'] = options.body.type || 'application/octet-stream';\n } else if (isString(options.body)) {\n headers['Content-Type'] = 'text/plain';\n } else if (!isFormData(options.body)) {\n headers['Content-Type'] = 'application/json';\n }\n }\n\n return new Headers(headers);\n};"; - }, - useData: true, -}; diff --git a/packages/openapi-ts/src/legacy/handlebars/compiled/core/xhr/getRequestBody.js b/packages/openapi-ts/src/legacy/handlebars/compiled/core/xhr/getRequestBody.js deleted file mode 100644 index 1378625cb..000000000 --- a/packages/openapi-ts/src/legacy/handlebars/compiled/core/xhr/getRequestBody.js +++ /dev/null @@ -1,7 +0,0 @@ -export default { - compiler: [8, '>= 4.3.0'], - main: function (container, depth0, helpers, partials, data) { - return "export const getRequestBody = (options: ApiRequestOptions): unknown => {\n if (options.body !== undefined) {\n if (options.mediaType?.includes('application/json') || options.mediaType?.includes('+json')) {\n return JSON.stringify(options.body);\n } else if (isString(options.body) || isBlob(options.body) || isFormData(options.body)) {\n return options.body;\n } else {\n return JSON.stringify(options.body);\n }\n }\n return undefined;\n};"; - }, - useData: true, -}; diff --git a/packages/openapi-ts/src/legacy/handlebars/compiled/core/xhr/getResponseBody.js b/packages/openapi-ts/src/legacy/handlebars/compiled/core/xhr/getResponseBody.js deleted file mode 100644 index 8229393a7..000000000 --- a/packages/openapi-ts/src/legacy/handlebars/compiled/core/xhr/getResponseBody.js +++ /dev/null @@ -1,7 +0,0 @@ -export default { - compiler: [8, '>= 4.3.0'], - main: function (container, depth0, helpers, partials, data) { - return "export const getResponseBody = (xhr: XMLHttpRequest): unknown => {\n if (xhr.status !== 204) {\n try {\n const contentType = xhr.getResponseHeader('Content-Type');\n if (contentType) {\n if (contentType.includes('application/json') || contentType.includes('+json')) {\n return JSON.parse(xhr.responseText);\n } else {\n return xhr.responseText;\n }\n }\n } catch (error) {\n console.error(error);\n }\n }\n return undefined;\n};"; - }, - useData: true, -}; diff --git a/packages/openapi-ts/src/legacy/handlebars/compiled/core/xhr/getResponseHeader.js b/packages/openapi-ts/src/legacy/handlebars/compiled/core/xhr/getResponseHeader.js deleted file mode 100644 index 560ee1ef8..000000000 --- a/packages/openapi-ts/src/legacy/handlebars/compiled/core/xhr/getResponseHeader.js +++ /dev/null @@ -1,7 +0,0 @@ -export default { - compiler: [8, '>= 4.3.0'], - main: function (container, depth0, helpers, partials, data) { - return 'export const getResponseHeader = (xhr: XMLHttpRequest, responseHeader?: string): string | undefined => {\n if (responseHeader) {\n const content = xhr.getResponseHeader(responseHeader);\n if (isString(content)) {\n return content;\n }\n }\n return undefined;\n};'; - }, - useData: true, -}; diff --git a/packages/openapi-ts/src/legacy/handlebars/compiled/core/xhr/request.js b/packages/openapi-ts/src/legacy/handlebars/compiled/core/xhr/request.js deleted file mode 100644 index 857471311..000000000 --- a/packages/openapi-ts/src/legacy/handlebars/compiled/core/xhr/request.js +++ /dev/null @@ -1,311 +0,0 @@ -export default { - 1: function (container, depth0, helpers, partials, data) { - return 'ApiResult'; - }, - 3: function (container, depth0, helpers, partials, data) { - return 'T'; - }, - 5: function (container, depth0, helpers, partials, data) { - return 'result.body'; - }, - 7: function (container, depth0, helpers, partials, data) { - return 'result'; - }, - compiler: [8, '>= 4.3.0'], - main: function (container, depth0, helpers, partials, data) { - var stack1, - alias1 = depth0 != null ? depth0 : container.nullContext || {}, - lookupProperty = - container.lookupProperty || - function (parent, propertyName) { - if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { - return parent[propertyName]; - } - return undefined; - }; - - return ( - "import { ApiError } from './ApiError';\nimport type { ApiRequestOptions } from './ApiRequestOptions';\nimport type { ApiResult } from './ApiResult';\nimport { CancelablePromise } from './CancelablePromise';\nimport type { OnCancel } from './CancelablePromise';\nimport type { OpenAPIConfig } from './OpenAPI';\n\n" + - ((stack1 = container.invokePartial( - lookupProperty(partials, 'functions/isString'), - depth0, - { - name: 'functions/isString', - data: data, - helpers: helpers, - partials: partials, - decorators: container.decorators, - }, - )) != null - ? stack1 - : '') + - '\n\n' + - ((stack1 = container.invokePartial( - lookupProperty(partials, 'functions/isStringWithValue'), - depth0, - { - name: 'functions/isStringWithValue', - data: data, - helpers: helpers, - partials: partials, - decorators: container.decorators, - }, - )) != null - ? stack1 - : '') + - '\n\n' + - ((stack1 = container.invokePartial( - lookupProperty(partials, 'functions/isBlob'), - depth0, - { - name: 'functions/isBlob', - data: data, - helpers: helpers, - partials: partials, - decorators: container.decorators, - }, - )) != null - ? stack1 - : '') + - '\n\n' + - ((stack1 = container.invokePartial( - lookupProperty(partials, 'functions/isFormData'), - depth0, - { - name: 'functions/isFormData', - data: data, - helpers: helpers, - partials: partials, - decorators: container.decorators, - }, - )) != null - ? stack1 - : '') + - '\n\n' + - ((stack1 = container.invokePartial( - lookupProperty(partials, 'functions/isSuccess'), - depth0, - { - name: 'functions/isSuccess', - data: data, - helpers: helpers, - partials: partials, - decorators: container.decorators, - }, - )) != null - ? stack1 - : '') + - '\n\n' + - ((stack1 = container.invokePartial( - lookupProperty(partials, 'functions/base64'), - depth0, - { - name: 'functions/base64', - data: data, - helpers: helpers, - partials: partials, - decorators: container.decorators, - }, - )) != null - ? stack1 - : '') + - '\n\n' + - ((stack1 = container.invokePartial( - lookupProperty(partials, 'functions/getQueryString'), - depth0, - { - name: 'functions/getQueryString', - data: data, - helpers: helpers, - partials: partials, - decorators: container.decorators, - }, - )) != null - ? stack1 - : '') + - '\n\n' + - ((stack1 = container.invokePartial( - lookupProperty(partials, 'functions/getUrl'), - depth0, - { - name: 'functions/getUrl', - data: data, - helpers: helpers, - partials: partials, - decorators: container.decorators, - }, - )) != null - ? stack1 - : '') + - '\n\n' + - ((stack1 = container.invokePartial( - lookupProperty(partials, 'functions/getFormData'), - depth0, - { - name: 'functions/getFormData', - data: data, - helpers: helpers, - partials: partials, - decorators: container.decorators, - }, - )) != null - ? stack1 - : '') + - '\n\n' + - ((stack1 = container.invokePartial( - lookupProperty(partials, 'functions/resolve'), - depth0, - { - name: 'functions/resolve', - data: data, - helpers: helpers, - partials: partials, - decorators: container.decorators, - }, - )) != null - ? stack1 - : '') + - '\n\n' + - ((stack1 = container.invokePartial( - lookupProperty(partials, 'fetch/getHeaders'), - depth0, - { - name: 'fetch/getHeaders', - data: data, - helpers: helpers, - partials: partials, - decorators: container.decorators, - }, - )) != null - ? stack1 - : '') + - '\n\n' + - ((stack1 = container.invokePartial( - lookupProperty(partials, 'xhr/getRequestBody'), - depth0, - { - name: 'xhr/getRequestBody', - data: data, - helpers: helpers, - partials: partials, - decorators: container.decorators, - }, - )) != null - ? stack1 - : '') + - '\n\n' + - ((stack1 = container.invokePartial( - lookupProperty(partials, 'xhr/sendRequest'), - depth0, - { - name: 'xhr/sendRequest', - data: data, - helpers: helpers, - partials: partials, - decorators: container.decorators, - }, - )) != null - ? stack1 - : '') + - '\n\n' + - ((stack1 = container.invokePartial( - lookupProperty(partials, 'xhr/getResponseHeader'), - depth0, - { - name: 'xhr/getResponseHeader', - data: data, - helpers: helpers, - partials: partials, - decorators: container.decorators, - }, - )) != null - ? stack1 - : '') + - '\n\n' + - ((stack1 = container.invokePartial( - lookupProperty(partials, 'xhr/getResponseBody'), - depth0, - { - name: 'xhr/getResponseBody', - data: data, - helpers: helpers, - partials: partials, - decorators: container.decorators, - }, - )) != null - ? stack1 - : '') + - '\n\n' + - ((stack1 = container.invokePartial( - lookupProperty(partials, 'functions/catchErrorCodes'), - depth0, - { - name: 'functions/catchErrorCodes', - data: data, - helpers: helpers, - partials: partials, - decorators: container.decorators, - }, - )) != null - ? stack1 - : '') + - '\n\n/**\n * Request method\n * @param config The OpenAPI configuration object\n * @param options The request options from the service\n * @returns CancelablePromise<' + - ((stack1 = lookupProperty(helpers, 'ifServicesResponse').call( - alias1, - 'response', - { - name: 'ifServicesResponse', - hash: {}, - fn: container.program(1, data, 0), - inverse: container.program(3, data, 0), - data: data, - loc: { - start: { line: 60, column: 30 }, - end: { line: 60, column: 108 }, - }, - }, - )) != null - ? stack1 - : '') + - '>\n * @throws ApiError\n */\nexport const request = (config: OpenAPIConfig, options: ApiRequestOptions): CancelablePromise<' + - ((stack1 = lookupProperty(helpers, 'ifServicesResponse').call( - alias1, - 'response', - { - name: 'ifServicesResponse', - hash: {}, - fn: container.program(1, data, 0), - inverse: container.program(3, data, 0), - data: data, - loc: { - start: { line: 63, column: 100 }, - end: { line: 63, column: 178 }, - }, - }, - )) != null - ? stack1 - : '') + - '> => {\n return new CancelablePromise(async (resolve, reject, onCancel) => {\n try {\n const url = getUrl(config, options);\n const formData = getFormData(options);\n const body = getRequestBody(options);\n const headers = await getHeaders(config, options);\n\n if (!onCancel.isCancelled) {\n let response = await sendRequest(config, options, url, body, formData, headers, onCancel);\n\n for (const fn of config.interceptors.response._fns) {\n response = await fn(response);\n }\n\n const responseBody = getResponseBody(response);\n const responseHeader = getResponseHeader(response, options.responseHeader);\n\n let transformedBody = responseBody;\n if (options.responseTransformer && isSuccess(response.status)) {\n transformedBody = await options.responseTransformer(responseBody)\n }\n\n const result: ApiResult = {\n url,\n ok: isSuccess(response.status),\n status: response.status,\n statusText: response.statusText,\n body: responseHeader ?? transformedBody,\n };\n\n catchErrorCodes(options, result);\n\n resolve(' + - ((stack1 = lookupProperty(helpers, 'ifServicesResponse').call( - alias1, - 'body', - { - name: 'ifServicesResponse', - hash: {}, - fn: container.program(5, data, 0), - inverse: container.program(7, data, 0), - data: data, - loc: { - start: { line: 96, column: 12 }, - end: { line: 96, column: 90 }, - }, - }, - )) != null - ? stack1 - : '') + - ');\n }\n } catch (error) {\n reject(error);\n }\n });\n};' - ); - }, - usePartial: true, - useData: true, -}; diff --git a/packages/openapi-ts/src/legacy/handlebars/compiled/core/xhr/sendRequest.js b/packages/openapi-ts/src/legacy/handlebars/compiled/core/xhr/sendRequest.js deleted file mode 100644 index 41c79a585..000000000 --- a/packages/openapi-ts/src/legacy/handlebars/compiled/core/xhr/sendRequest.js +++ /dev/null @@ -1,7 +0,0 @@ -export default { - compiler: [8, '>= 4.3.0'], - main: function (container, depth0, helpers, partials, data) { - return "export const sendRequest = async (\n config: OpenAPIConfig,\n options: ApiRequestOptions,\n url: string,\n body: any,\n formData: FormData | undefined,\n headers: Headers,\n onCancel: OnCancel\n): Promise => {\n let xhr = new XMLHttpRequest();\n xhr.open(options.method, url, true);\n xhr.withCredentials = config.WITH_CREDENTIALS;\n\n headers.forEach((value, key) => {\n xhr.setRequestHeader(key, value);\n });\n\n return new Promise(async (resolve, reject) => {\n xhr.onload = () => resolve(xhr);\n xhr.onabort = () => reject(new Error('Request aborted'));\n xhr.onerror = () => reject(new Error('Network error'));\n\n for (const fn of config.interceptors.request._fns) {\n xhr = await fn(xhr);\n }\n\n xhr.send(body ?? formData);\n\n onCancel(() => xhr.abort());\n });\n};"; - }, - useData: true, -}; diff --git a/packages/openapi-ts/src/legacy/handlebars/handlebars.cjs b/packages/openapi-ts/src/legacy/handlebars/handlebars.cjs deleted file mode 100644 index d5501d54d..000000000 --- a/packages/openapi-ts/src/legacy/handlebars/handlebars.cjs +++ /dev/null @@ -1,72 +0,0 @@ -const Handlebars = require('handlebars'); -const fs = require('node:fs'); -const path = require('node:path'); - -const getFilesRecursively = (folderPath) => { - let fileList = []; - - const files = fs.readdirSync(folderPath); - - files.forEach((file) => { - const fullPath = path.join(folderPath, file); - - if (fs.statSync(fullPath).isDirectory()) { - fileList = fileList.concat(getFilesRecursively(fullPath)); - } else { - fileList.push(fullPath); - } - }); - - return fileList; -}; - -const templatePaths = getFilesRecursively( - path.resolve('src', 'legacy', 'handlebars', 'templates'), -); - -const compiledDirPath = path.resolve('src', 'legacy', 'handlebars', 'compiled'); - -if (fs.existsSync(compiledDirPath)) { - fs.rmdirSync(compiledDirPath, { - recursive: true, - }); -} - -templatePaths.forEach((templatePath) => { - const template = fs.readFileSync(templatePath, 'utf8').toString().trim(); - - const compiled = Handlebars.precompile(template, { - knownHelpers: { - camelCase: true, - equals: true, - ifServicesResponse: true, - ifdef: true, - notEquals: true, - transformServiceName: true, - }, - knownHelpersOnly: true, - noEscape: true, - preventIndent: true, - strict: true, - }); - - const parts = templatePath.split(path.sep); - const fileName = parts[parts.length - 1]; - const fileNameParts = fileName.split('.'); - const fileNameBase = fileNameParts - .slice(0, fileNameParts.length - 1) - .join('.'); - const compiledPath = path.resolve( - compiledDirPath, - ...parts.slice(parts.lastIndexOf('templates') + 1, parts.length - 1), - `${fileNameBase}.js`, - ); - - const compiledDir = path.dirname(compiledPath); - - if (!fs.existsSync(compiledDir)) { - fs.mkdirSync(compiledDir, { recursive: true }); - } - - fs.writeFileSync(compiledPath, `export default ${compiled};`); -}); diff --git a/packages/openapi-ts/src/types/config.d.ts b/packages/openapi-ts/src/types/config.d.ts index 7ae80edea..a4e37a317 100644 --- a/packages/openapi-ts/src/types/config.d.ts +++ b/packages/openapi-ts/src/types/config.d.ts @@ -67,6 +67,30 @@ export interface UserConfig { */ path: string | Record; }; + /** + * @deprecated + * + * Opt in to the experimental parser? + * + * @default true + */ + experimentalParser?: boolean; + /** + * @deprecated + * + * Generate core client classes? + * + * @default true + */ + exportCore?: boolean; + /** + * Plugins generate artifacts from `input`. By default, we generate SDK + * functions and TypeScript interfaces. If you manually define `plugins`, + * you need to include the default plugins if you wish to use them. + * + * @default ['@hey-api/typescript', '@hey-api/sdk'] + */ + plugins?: ReadonlyArray; /** * The relative location of the logs folder * @@ -107,6 +131,15 @@ export interface UserConfig { */ path?: string; }; + /** + * @deprecated + * + * Custom client class name. Please note this option is deprecated and + * will be removed in favor of clients. + * + * @link https://heyapi.dev/openapi-ts/migrating.html#deprecated-name + */ + name?: string; /** * The relative location of the output folder */ @@ -154,14 +187,6 @@ export interface UserConfig { */ path: string; }; - /** - * Plugins generate artifacts from `input`. By default, we generate SDK - * functions and TypeScript interfaces. If you manually define `plugins`, - * you need to include the default plugins if you wish to use them. - * - * @default ['@hey-api/typescript', '@hey-api/sdk'] - */ - plugins?: ReadonlyArray; /** * Regenerate the client when the input file changes? You can alternatively * pass a numeric value for the interval in ms. @@ -191,38 +216,6 @@ export interface UserConfig { */ timeout?: number; }; - /** - * @deprecated - * - * Manually set base in OpenAPI config instead of inferring from server value - */ - // eslint-disable-next-line typescript-sort-keys/interface - base?: string; - /** - * @deprecated - * - * Opt in to the experimental parser? - * - * @default true - */ - experimentalParser?: boolean; - /** - * @deprecated - * - * Generate core client classes? - * - * @default true - */ - exportCore?: boolean; - /** - * @deprecated - * - * Custom client class name. Please note this option is deprecated and - * will be removed in favor of clients. - * - * @link https://heyapi.dev/openapi-ts/migrating.html#deprecated-name - */ - name?: string; /** * @deprecated * @@ -232,6 +225,11 @@ export interface UserConfig { * @link https://heyapi.dev/openapi-ts/migrating.html#deprecated-request */ request?: string; + /** + * Path to the template files. + * @default 'node_modules/@hey-api/openapi-ts/templates' + */ + templatesPath?: string; /** * @deprecated * @@ -243,6 +241,13 @@ export interface UserConfig { * @default true */ useOptions?: boolean; + /** + * @deprecated + * + * Manually set base in OpenAPI config instead of inferring from server value + */ + // eslint-disable-next-line typescript-sort-keys/interface + base?: string; } export type Config = Omit< @@ -255,8 +260,9 @@ export type Config = Omit< | 'plugins' | 'request' | 'watch' + | 'templatesPath' > & - Pick & { + Pick & { input: ExtractWithDiscriminator; logs: Extract, object>; output: Extract; diff --git a/packages/openapi-ts/src/types/env.d.ts b/packages/openapi-ts/src/types/env.d.ts new file mode 100644 index 000000000..43ef6be61 --- /dev/null +++ b/packages/openapi-ts/src/types/env.d.ts @@ -0,0 +1,4 @@ +declare module '*.hbs' { + const template: string; + export default template; +} diff --git a/packages/openapi-ts/src/utils/__tests__/handlebars.test.ts b/packages/openapi-ts/src/utils/__tests__/handlebars.test.ts index 30194aeda..350036ec4 100644 --- a/packages/openapi-ts/src/utils/__tests__/handlebars.test.ts +++ b/packages/openapi-ts/src/utils/__tests__/handlebars.test.ts @@ -74,7 +74,7 @@ describe('registerHandlebarHelpers', () => { }); describe('registerHandlebarTemplates', () => { - it('should return correct templates', () => { + it('should return correct templates', async () => { setConfig({ configFile: '', dryRun: false, @@ -128,7 +128,7 @@ describe('registerHandlebarTemplates', () => { timeout: 60_000, }, }); - const templates = registerHandlebarTemplates(); + const templates = await registerHandlebarTemplates('../../../templates'); expect(templates.core.settings).toBeDefined(); expect(templates.core.apiError).toBeDefined(); expect(templates.core.apiRequestOptions).toBeDefined(); diff --git a/packages/openapi-ts/src/utils/handlebars.ts b/packages/openapi-ts/src/utils/handlebars.ts index 53fdd1de6..890f6209c 100644 --- a/packages/openapi-ts/src/utils/handlebars.ts +++ b/packages/openapi-ts/src/utils/handlebars.ts @@ -1,93 +1,6 @@ +import { promises as fs } from 'fs'; import Handlebars from 'handlebars'; -// @ts-expect-error -import templateClient from '../legacy/handlebars/compiled/client.js'; -// @ts-expect-error -import angularGetHeaders from '../legacy/handlebars/compiled/core/angular/getHeaders.js'; -// @ts-expect-error -import angularGetRequestBody from '../legacy/handlebars/compiled/core/angular/getRequestBody.js'; -// @ts-expect-error -import angularGetResponseBody from '../legacy/handlebars/compiled/core/angular/getResponseBody.js'; -// @ts-expect-error -import angularGetResponseHeader from '../legacy/handlebars/compiled/core/angular/getResponseHeader.js'; -// @ts-expect-error -import angularRequest from '../legacy/handlebars/compiled/core/angular/request.js'; -// @ts-expect-error -import angularSendRequest from '../legacy/handlebars/compiled/core/angular/sendRequest.js'; -// @ts-expect-error -import templateCoreApiError from '../legacy/handlebars/compiled/core/ApiError.js'; -// @ts-expect-error -import templateCoreApiRequestOptions from '../legacy/handlebars/compiled/core/ApiRequestOptions.js'; -// @ts-expect-error -import templateCoreApiResult from '../legacy/handlebars/compiled/core/ApiResult.js'; -// @ts-expect-error -import axiosGetHeaders from '../legacy/handlebars/compiled/core/axios/getHeaders.js'; -// @ts-expect-error -import axiosGetRequestBody from '../legacy/handlebars/compiled/core/axios/getRequestBody.js'; -// @ts-expect-error -import axiosGetResponseBody from '../legacy/handlebars/compiled/core/axios/getResponseBody.js'; -// @ts-expect-error -import axiosGetResponseHeader from '../legacy/handlebars/compiled/core/axios/getResponseHeader.js'; -// @ts-expect-error -import axiosRequest from '../legacy/handlebars/compiled/core/axios/request.js'; -// @ts-expect-error -import axiosSendRequest from '../legacy/handlebars/compiled/core/axios/sendRequest.js'; -// @ts-expect-error -import templateCoreBaseHttpRequest from '../legacy/handlebars/compiled/core/BaseHttpRequest.js'; -// @ts-expect-error -import templateCancelablePromise from '../legacy/handlebars/compiled/core/CancelablePromise.js'; -// @ts-expect-error -import fetchGetHeaders from '../legacy/handlebars/compiled/core/fetch/getHeaders.js'; -// @ts-expect-error -import fetchGetRequestBody from '../legacy/handlebars/compiled/core/fetch/getRequestBody.js'; -// @ts-expect-error -import fetchGetResponseBody from '../legacy/handlebars/compiled/core/fetch/getResponseBody.js'; -// @ts-expect-error -import fetchGetResponseHeader from '../legacy/handlebars/compiled/core/fetch/getResponseHeader.js'; -// @ts-expect-error -import fetchRequest from '../legacy/handlebars/compiled/core/fetch/request.js'; -// @ts-expect-error -import fetchSendRequest from '../legacy/handlebars/compiled/core/fetch/sendRequest.js'; -// @ts-expect-error -import functionBase64 from '../legacy/handlebars/compiled/core/functions/base64.js'; -// @ts-expect-error -import functionCatchErrorCodes from '../legacy/handlebars/compiled/core/functions/catchErrorCodes.js'; -// @ts-expect-error -import functionGetFormData from '../legacy/handlebars/compiled/core/functions/getFormData.js'; -// @ts-expect-error -import functionGetQueryString from '../legacy/handlebars/compiled/core/functions/getQueryString.js'; -// @ts-expect-error -import functionGetUrl from '../legacy/handlebars/compiled/core/functions/getUrl.js'; -// @ts-expect-error -import functionIsBlob from '../legacy/handlebars/compiled/core/functions/isBlob.js'; -// @ts-expect-error -import functionIsFormData from '../legacy/handlebars/compiled/core/functions/isFormData.js'; -// @ts-expect-error -import functionIsString from '../legacy/handlebars/compiled/core/functions/isString.js'; -// @ts-expect-error -import functionIsStringWithValue from '../legacy/handlebars/compiled/core/functions/isStringWithValue.js'; -// @ts-expect-error -import functionIsSuccess from '../legacy/handlebars/compiled/core/functions/isSuccess.js'; -// @ts-expect-error -import functionResolve from '../legacy/handlebars/compiled/core/functions/resolve.js'; -// @ts-expect-error -import templateCoreHttpRequest from '../legacy/handlebars/compiled/core/HttpRequest.js'; -// @ts-expect-error -import templateCoreSettings from '../legacy/handlebars/compiled/core/OpenAPI.js'; -// @ts-expect-error -import templateCoreRequest from '../legacy/handlebars/compiled/core/request.js'; -// @ts-expect-error -import xhrGetHeaders from '../legacy/handlebars/compiled/core/xhr/getHeaders.js'; -// @ts-expect-error -import xhrGetRequestBody from '../legacy/handlebars/compiled/core/xhr/getRequestBody.js'; -// @ts-expect-error -import xhrGetResponseBody from '../legacy/handlebars/compiled/core/xhr/getResponseBody.js'; -// @ts-expect-error -import xhrGetResponseHeader from '../legacy/handlebars/compiled/core/xhr/getResponseHeader.js'; -// @ts-expect-error -import xhrRequest from '../legacy/handlebars/compiled/core/xhr/request.js'; -// @ts-expect-error -import xhrSendRequest from '../legacy/handlebars/compiled/core/xhr/sendRequest.js'; import { getConfig } from './config'; import { stringCase } from './stringCase'; import { transformServiceName } from './transform'; @@ -169,174 +82,235 @@ export interface Templates { }; } +async function compileHbs(fileName: string) { + const template = await fs.readFile(fileName, 'utf8').toString().trim(); + + const compiled = Handlebars.compile(template, { + knownHelpers: { + camelCase: true, + equals: true, + ifServicesResponse: true, + ifdef: true, + notEquals: true, + transformServiceName: true, + }, + knownHelpersOnly: true, + noEscape: true, + preventIndent: true, + strict: true, + }); + + return compiled; +} + /** * Read all the Handlebar templates that we need and return a wrapper object * so we can easily access the templates in our generator/write functions. */ -export const registerHandlebarTemplates = (): Templates => { +export const registerHandlebarTemplates = async ( + templatesPath = 'node_modules/@hey-api/openapi-ts/templates', +): Promise => { registerHandlebarHelpers(); + const templateClient = await compileHbs(templatesPath + '/client.hbs'); + const templateCoreApiError = await compileHbs( + templatesPath + '/core/ApiError.hbs', + ); + const templateCoreApiRequestOptions = await compileHbs( + templatesPath + '/core/ApiRequestOptions.hbs', + ); + const templateCoreApiResult = await compileHbs( + templatesPath + '/core/ApiResult.hbs', + ); + const templateCoreBaseHttpRequest = await compileHbs( + templatesPath + '/core/BaseHttpRequest.hbs', + ); + const templateCancelablePromise = await compileHbs( + templatesPath + '/core/CancelablePromise.hbs', + ); + const templateCoreHttpRequest = await compileHbs( + templatesPath + '/core/HttpRequest.hbs', + ); + const templateCoreRequest = await compileHbs( + templatesPath + '/core/request.hbs', + ); + const templateCoreSettings = await compileHbs( + templatesPath + '/core/OpenAPI.hbs', + ); // Main templates (entry points for the files we write to disk) const templates: Templates = { - client: Handlebars.template(templateClient), + client: templateClient, core: { - apiError: Handlebars.template(templateCoreApiError), - apiRequestOptions: Handlebars.template(templateCoreApiRequestOptions), - apiResult: Handlebars.template(templateCoreApiResult), - baseHttpRequest: Handlebars.template(templateCoreBaseHttpRequest), - cancelablePromise: Handlebars.template(templateCancelablePromise), - httpRequest: Handlebars.template(templateCoreHttpRequest), - request: Handlebars.template(templateCoreRequest), - settings: Handlebars.template(templateCoreSettings), + apiError: templateCoreApiError, + apiRequestOptions: templateCoreApiRequestOptions, + apiResult: templateCoreApiResult, + baseHttpRequest: templateCoreBaseHttpRequest, + cancelablePromise: templateCancelablePromise, + httpRequest: templateCoreHttpRequest, + request: templateCoreRequest, + settings: templateCoreSettings, }, }; - // Generic functions used in 'request' file @see src/legacy/handlebars/templates/core/request.hbs for more info - Handlebars.registerPartial( - 'functions/base64', - Handlebars.template(functionBase64), + const functionBase64 = await compileHbs( + templatesPath + '/core/functions/base64.hbs', ); - Handlebars.registerPartial( - 'functions/catchErrorCodes', - Handlebars.template(functionCatchErrorCodes), + const functionCatchErrorCodes = await compileHbs( + templatesPath + '/core/functions/catchErrorCodes.hbs', ); - Handlebars.registerPartial( - 'functions/getFormData', - Handlebars.template(functionGetFormData), + const functionGetFormData = await compileHbs( + templatesPath + '/core/functions/getFormData.hbs', ); - Handlebars.registerPartial( - 'functions/getQueryString', - Handlebars.template(functionGetQueryString), + const functionGetQueryString = await compileHbs( + templatesPath + '/core/functions/getQueryString.hbs', ); - Handlebars.registerPartial( - 'functions/getUrl', - Handlebars.template(functionGetUrl), + const functionGetUrl = await compileHbs( + templatesPath + '/core/functions/getUrl.hbs', ); - Handlebars.registerPartial( - 'functions/isBlob', - Handlebars.template(functionIsBlob), + const functionIsBlob = await compileHbs( + templatesPath + '/core/functions/isBlob.hbs', ); - Handlebars.registerPartial( - 'functions/isFormData', - Handlebars.template(functionIsFormData), + const functionIsFormData = await compileHbs( + templatesPath + '/core/functions/isFormData.hbs', ); - Handlebars.registerPartial( - 'functions/isString', - Handlebars.template(functionIsString), + const functionIsString = await compileHbs( + templatesPath + '/core/functions/isString.hbs', ); + const functionIsStringWithValue = await compileHbs( + templatesPath + '/core/functions/isStringWithValue.hbs', + ); + const functionIsSuccess = await compileHbs( + templatesPath + '/core/functions/isSuccess.hbs', + ); + const functionResolve = await compileHbs( + templatesPath + '/core/functions/resolve.hbs', + ); + // Generic functions used in 'request' file @see src/legacy/handlebars/templates/core/request.hbs for more info + Handlebars.registerPartial('functions/base64', functionBase64); Handlebars.registerPartial( - 'functions/isStringWithValue', - Handlebars.template(functionIsStringWithValue), + 'functions/catchErrorCodes', + functionCatchErrorCodes, ); + Handlebars.registerPartial('functions/getFormData', functionGetFormData); Handlebars.registerPartial( - 'functions/isSuccess', - Handlebars.template(functionIsSuccess), + 'functions/getQueryString', + functionGetQueryString, ); + Handlebars.registerPartial('functions/getUrl', functionGetUrl); + Handlebars.registerPartial('functions/isBlob', functionIsBlob); + Handlebars.registerPartial('functions/isFormData', functionIsFormData); + Handlebars.registerPartial('functions/isString', functionIsString); Handlebars.registerPartial( - 'functions/resolve', - Handlebars.template(functionResolve), + 'functions/isStringWithValue', + functionIsStringWithValue, ); + Handlebars.registerPartial('functions/isSuccess', functionIsSuccess); + Handlebars.registerPartial('functions/resolve', functionResolve); - // Specific files for the fetch client implementation - Handlebars.registerPartial( - 'fetch/getHeaders', - Handlebars.template(fetchGetHeaders), + const fetchGetHeaders = await compileHbs( + templatesPath + '/core/fetch/getHeaders.hbs', ); - Handlebars.registerPartial( - 'fetch/getRequestBody', - Handlebars.template(fetchGetRequestBody), + const fetchGetRequestBody = await compileHbs( + templatesPath + '/core/fetch/getRequestBody.hbs', ); - Handlebars.registerPartial( - 'fetch/getResponseBody', - Handlebars.template(fetchGetResponseBody), + const fetchGetResponseBody = await compileHbs( + templatesPath + '/core/fetch/getResponseBody.hbs', ); - Handlebars.registerPartial( - 'fetch/getResponseHeader', - Handlebars.template(fetchGetResponseHeader), + const fetchGetResponseHeader = await compileHbs( + templatesPath + '/core/fetch/getResponseHeader.hbs', ); - Handlebars.registerPartial( - 'fetch/request', - Handlebars.template(fetchRequest), + const fetchRequest = await compileHbs( + templatesPath + '/core/fetch/request.hbs', ); - Handlebars.registerPartial( - 'fetch/sendRequest', - Handlebars.template(fetchSendRequest), + const fetchSendRequest = await compileHbs( + templatesPath + '/core/fetch/sendRequest.hbs', ); + // Specific files for the fetch client implementation + Handlebars.registerPartial('fetch/getHeaders', fetchGetHeaders); + Handlebars.registerPartial('fetch/getRequestBody', fetchGetRequestBody); + Handlebars.registerPartial('fetch/getResponseBody', fetchGetResponseBody); + Handlebars.registerPartial('fetch/getResponseHeader', fetchGetResponseHeader); + Handlebars.registerPartial('fetch/request', fetchRequest); + Handlebars.registerPartial('fetch/sendRequest', fetchSendRequest); - // Specific files for the xhr client implementation - Handlebars.registerPartial( - 'xhr/getHeaders', - Handlebars.template(xhrGetHeaders), + const xhrGetHeaders = await compileHbs( + templatesPath + '/core/xhr/getHeaders.hbs', ); - Handlebars.registerPartial( - 'xhr/getRequestBody', - Handlebars.template(xhrGetRequestBody), + const xhrGetRequestBody = await compileHbs( + templatesPath + '/core/xhr/getRequestBody.hbs', ); - Handlebars.registerPartial( - 'xhr/getResponseBody', - Handlebars.template(xhrGetResponseBody), + const xhrGetResponseBody = await compileHbs( + templatesPath + '/core/xhr/getResponseBody.hbs', ); - Handlebars.registerPartial( - 'xhr/getResponseHeader', - Handlebars.template(xhrGetResponseHeader), + const xhrGetResponseHeader = await compileHbs( + templatesPath + '/core/xhr/getResponseHeader.hbs', ); - Handlebars.registerPartial('xhr/request', Handlebars.template(xhrRequest)); - Handlebars.registerPartial( - 'xhr/sendRequest', - Handlebars.template(xhrSendRequest), + const xhrRequest = await compileHbs(templatesPath + '/core/xhr/request.hbs'); + const xhrSendRequest = await compileHbs( + templatesPath + '/core/xhr/sendRequest.hbs', ); + // Specific files for the xhr client implementation + Handlebars.registerPartial('xhr/getHeaders', xhrGetHeaders); + Handlebars.registerPartial('xhr/getRequestBody', xhrGetRequestBody); + Handlebars.registerPartial('xhr/getResponseBody', xhrGetResponseBody); + Handlebars.registerPartial('xhr/getResponseHeader', xhrGetResponseHeader); + Handlebars.registerPartial('xhr/request', xhrRequest); + Handlebars.registerPartial('xhr/sendRequest', xhrSendRequest); - // Specific files for the axios client implementation - Handlebars.registerPartial( - 'axios/getHeaders', - Handlebars.template(axiosGetHeaders), + const axiosGetHeaders = await compileHbs( + templatesPath + '/core/axios/getHeaders.hbs', ); - Handlebars.registerPartial( - 'axios/getRequestBody', - Handlebars.template(axiosGetRequestBody), + const axiosGetRequestBody = await compileHbs( + templatesPath + '/core/axios/getRequestBody.hbs', ); - Handlebars.registerPartial( - 'axios/getResponseBody', - Handlebars.template(axiosGetResponseBody), + const axiosGetResponseBody = await compileHbs( + templatesPath + '/core/axios/getResponseBody.hbs', ); - Handlebars.registerPartial( - 'axios/getResponseHeader', - Handlebars.template(axiosGetResponseHeader), + const axiosGetResponseHeader = await compileHbs( + templatesPath + '/core/axios/getResponseHeader.hbs', ); - Handlebars.registerPartial( - 'axios/request', - Handlebars.template(axiosRequest), + const axiosRequest = await compileHbs( + templatesPath + '/core/axios/request.hbs', ); - Handlebars.registerPartial( - 'axios/sendRequest', - Handlebars.template(axiosSendRequest), + const axiosSendRequest = await compileHbs( + templatesPath + '/core/axios/sendRequest.hbs', ); + // Specific files for the axios client implementation + Handlebars.registerPartial('axios/getHeaders', axiosGetHeaders); + Handlebars.registerPartial('axios/getRequestBody', axiosGetRequestBody); + Handlebars.registerPartial('axios/getResponseBody', axiosGetResponseBody); + Handlebars.registerPartial('axios/getResponseHeader', axiosGetResponseHeader); + Handlebars.registerPartial('axios/request', axiosRequest); + Handlebars.registerPartial('axios/sendRequest', axiosSendRequest); - // Specific files for the angular client implementation - Handlebars.registerPartial( - 'angular/getHeaders', - Handlebars.template(angularGetHeaders), + const angularGetHeaders = await compileHbs( + templatesPath + '/core/angular/getHeaders.hbs', ); - Handlebars.registerPartial( - 'angular/getRequestBody', - Handlebars.template(angularGetRequestBody), + const angularGetRequestBody = await compileHbs( + templatesPath + '/core/angular/getRequestBody.hbs', ); - Handlebars.registerPartial( - 'angular/getResponseBody', - Handlebars.template(angularGetResponseBody), + const angularGetResponseBody = await compileHbs( + templatesPath + '/core/angular/getResponseBody.hbs', ); - Handlebars.registerPartial( - 'angular/getResponseHeader', - Handlebars.template(angularGetResponseHeader), + const angularGetResponseHeader = await compileHbs( + templatesPath + '/core/angular/getResponseHeader.hbs', ); - Handlebars.registerPartial( - 'angular/request', - Handlebars.template(angularRequest), + const angularRequest = await compileHbs( + templatesPath + '/core/angular/request.hbs', + ); + const angularSendRequest = await compileHbs( + templatesPath + '/core/angular/sendRequest.hbs', ); + // Specific files for the angular client implementation + Handlebars.registerPartial('angular/getHeaders', angularGetHeaders); + Handlebars.registerPartial('angular/getRequestBody', angularGetRequestBody); + Handlebars.registerPartial('angular/getResponseBody', angularGetResponseBody); Handlebars.registerPartial( - 'angular/sendRequest', - Handlebars.template(angularSendRequest), + 'angular/getResponseHeader', + angularGetResponseHeader, ); + Handlebars.registerPartial('angular/request', angularRequest); + Handlebars.registerPartial('angular/sendRequest', angularSendRequest); return templates; }; diff --git a/packages/openapi-ts/src/legacy/handlebars/templates/client.hbs b/packages/openapi-ts/templates/client.hbs similarity index 100% rename from packages/openapi-ts/src/legacy/handlebars/templates/client.hbs rename to packages/openapi-ts/templates/client.hbs diff --git a/packages/openapi-ts/src/legacy/handlebars/templates/core/ApiError.hbs b/packages/openapi-ts/templates/core/ApiError.hbs similarity index 100% rename from packages/openapi-ts/src/legacy/handlebars/templates/core/ApiError.hbs rename to packages/openapi-ts/templates/core/ApiError.hbs diff --git a/packages/openapi-ts/src/legacy/handlebars/templates/core/ApiRequestOptions.hbs b/packages/openapi-ts/templates/core/ApiRequestOptions.hbs similarity index 100% rename from packages/openapi-ts/src/legacy/handlebars/templates/core/ApiRequestOptions.hbs rename to packages/openapi-ts/templates/core/ApiRequestOptions.hbs diff --git a/packages/openapi-ts/src/legacy/handlebars/templates/core/ApiResult.hbs b/packages/openapi-ts/templates/core/ApiResult.hbs similarity index 100% rename from packages/openapi-ts/src/legacy/handlebars/templates/core/ApiResult.hbs rename to packages/openapi-ts/templates/core/ApiResult.hbs diff --git a/packages/openapi-ts/src/legacy/handlebars/templates/core/BaseHttpRequest.hbs b/packages/openapi-ts/templates/core/BaseHttpRequest.hbs similarity index 100% rename from packages/openapi-ts/src/legacy/handlebars/templates/core/BaseHttpRequest.hbs rename to packages/openapi-ts/templates/core/BaseHttpRequest.hbs diff --git a/packages/openapi-ts/src/legacy/handlebars/templates/core/CancelablePromise.hbs b/packages/openapi-ts/templates/core/CancelablePromise.hbs similarity index 100% rename from packages/openapi-ts/src/legacy/handlebars/templates/core/CancelablePromise.hbs rename to packages/openapi-ts/templates/core/CancelablePromise.hbs diff --git a/packages/openapi-ts/src/legacy/handlebars/templates/core/HttpRequest.hbs b/packages/openapi-ts/templates/core/HttpRequest.hbs similarity index 100% rename from packages/openapi-ts/src/legacy/handlebars/templates/core/HttpRequest.hbs rename to packages/openapi-ts/templates/core/HttpRequest.hbs diff --git a/packages/openapi-ts/src/legacy/handlebars/templates/core/OpenAPI.hbs b/packages/openapi-ts/templates/core/OpenAPI.hbs similarity index 100% rename from packages/openapi-ts/src/legacy/handlebars/templates/core/OpenAPI.hbs rename to packages/openapi-ts/templates/core/OpenAPI.hbs diff --git a/packages/openapi-ts/src/legacy/handlebars/templates/core/angular/getHeaders.hbs b/packages/openapi-ts/templates/core/angular/getHeaders.hbs similarity index 100% rename from packages/openapi-ts/src/legacy/handlebars/templates/core/angular/getHeaders.hbs rename to packages/openapi-ts/templates/core/angular/getHeaders.hbs diff --git a/packages/openapi-ts/src/legacy/handlebars/templates/core/angular/getRequestBody.hbs b/packages/openapi-ts/templates/core/angular/getRequestBody.hbs similarity index 100% rename from packages/openapi-ts/src/legacy/handlebars/templates/core/angular/getRequestBody.hbs rename to packages/openapi-ts/templates/core/angular/getRequestBody.hbs diff --git a/packages/openapi-ts/src/legacy/handlebars/templates/core/angular/getResponseBody.hbs b/packages/openapi-ts/templates/core/angular/getResponseBody.hbs similarity index 100% rename from packages/openapi-ts/src/legacy/handlebars/templates/core/angular/getResponseBody.hbs rename to packages/openapi-ts/templates/core/angular/getResponseBody.hbs diff --git a/packages/openapi-ts/src/legacy/handlebars/templates/core/angular/getResponseHeader.hbs b/packages/openapi-ts/templates/core/angular/getResponseHeader.hbs similarity index 100% rename from packages/openapi-ts/src/legacy/handlebars/templates/core/angular/getResponseHeader.hbs rename to packages/openapi-ts/templates/core/angular/getResponseHeader.hbs diff --git a/packages/openapi-ts/src/legacy/handlebars/templates/core/angular/request.hbs b/packages/openapi-ts/templates/core/angular/request.hbs similarity index 100% rename from packages/openapi-ts/src/legacy/handlebars/templates/core/angular/request.hbs rename to packages/openapi-ts/templates/core/angular/request.hbs diff --git a/packages/openapi-ts/src/legacy/handlebars/templates/core/angular/sendRequest.hbs b/packages/openapi-ts/templates/core/angular/sendRequest.hbs similarity index 100% rename from packages/openapi-ts/src/legacy/handlebars/templates/core/angular/sendRequest.hbs rename to packages/openapi-ts/templates/core/angular/sendRequest.hbs diff --git a/packages/openapi-ts/src/legacy/handlebars/templates/core/axios/getHeaders.hbs b/packages/openapi-ts/templates/core/axios/getHeaders.hbs similarity index 100% rename from packages/openapi-ts/src/legacy/handlebars/templates/core/axios/getHeaders.hbs rename to packages/openapi-ts/templates/core/axios/getHeaders.hbs diff --git a/packages/openapi-ts/src/legacy/handlebars/templates/core/axios/getRequestBody.hbs b/packages/openapi-ts/templates/core/axios/getRequestBody.hbs similarity index 100% rename from packages/openapi-ts/src/legacy/handlebars/templates/core/axios/getRequestBody.hbs rename to packages/openapi-ts/templates/core/axios/getRequestBody.hbs diff --git a/packages/openapi-ts/src/legacy/handlebars/templates/core/axios/getResponseBody.hbs b/packages/openapi-ts/templates/core/axios/getResponseBody.hbs similarity index 100% rename from packages/openapi-ts/src/legacy/handlebars/templates/core/axios/getResponseBody.hbs rename to packages/openapi-ts/templates/core/axios/getResponseBody.hbs diff --git a/packages/openapi-ts/src/legacy/handlebars/templates/core/axios/getResponseHeader.hbs b/packages/openapi-ts/templates/core/axios/getResponseHeader.hbs similarity index 100% rename from packages/openapi-ts/src/legacy/handlebars/templates/core/axios/getResponseHeader.hbs rename to packages/openapi-ts/templates/core/axios/getResponseHeader.hbs diff --git a/packages/openapi-ts/src/legacy/handlebars/templates/core/axios/request.hbs b/packages/openapi-ts/templates/core/axios/request.hbs similarity index 100% rename from packages/openapi-ts/src/legacy/handlebars/templates/core/axios/request.hbs rename to packages/openapi-ts/templates/core/axios/request.hbs diff --git a/packages/openapi-ts/src/legacy/handlebars/templates/core/axios/sendRequest.hbs b/packages/openapi-ts/templates/core/axios/sendRequest.hbs similarity index 100% rename from packages/openapi-ts/src/legacy/handlebars/templates/core/axios/sendRequest.hbs rename to packages/openapi-ts/templates/core/axios/sendRequest.hbs diff --git a/packages/openapi-ts/src/legacy/handlebars/templates/core/fetch/getHeaders.hbs b/packages/openapi-ts/templates/core/fetch/getHeaders.hbs similarity index 100% rename from packages/openapi-ts/src/legacy/handlebars/templates/core/fetch/getHeaders.hbs rename to packages/openapi-ts/templates/core/fetch/getHeaders.hbs diff --git a/packages/openapi-ts/src/legacy/handlebars/templates/core/fetch/getRequestBody.hbs b/packages/openapi-ts/templates/core/fetch/getRequestBody.hbs similarity index 100% rename from packages/openapi-ts/src/legacy/handlebars/templates/core/fetch/getRequestBody.hbs rename to packages/openapi-ts/templates/core/fetch/getRequestBody.hbs diff --git a/packages/openapi-ts/src/legacy/handlebars/templates/core/fetch/getResponseBody.hbs b/packages/openapi-ts/templates/core/fetch/getResponseBody.hbs similarity index 100% rename from packages/openapi-ts/src/legacy/handlebars/templates/core/fetch/getResponseBody.hbs rename to packages/openapi-ts/templates/core/fetch/getResponseBody.hbs diff --git a/packages/openapi-ts/src/legacy/handlebars/templates/core/fetch/getResponseHeader.hbs b/packages/openapi-ts/templates/core/fetch/getResponseHeader.hbs similarity index 100% rename from packages/openapi-ts/src/legacy/handlebars/templates/core/fetch/getResponseHeader.hbs rename to packages/openapi-ts/templates/core/fetch/getResponseHeader.hbs diff --git a/packages/openapi-ts/src/legacy/handlebars/templates/core/fetch/request.hbs b/packages/openapi-ts/templates/core/fetch/request.hbs similarity index 100% rename from packages/openapi-ts/src/legacy/handlebars/templates/core/fetch/request.hbs rename to packages/openapi-ts/templates/core/fetch/request.hbs diff --git a/packages/openapi-ts/src/legacy/handlebars/templates/core/fetch/sendRequest.hbs b/packages/openapi-ts/templates/core/fetch/sendRequest.hbs similarity index 100% rename from packages/openapi-ts/src/legacy/handlebars/templates/core/fetch/sendRequest.hbs rename to packages/openapi-ts/templates/core/fetch/sendRequest.hbs diff --git a/packages/openapi-ts/src/legacy/handlebars/templates/core/functions/base64.hbs b/packages/openapi-ts/templates/core/functions/base64.hbs similarity index 100% rename from packages/openapi-ts/src/legacy/handlebars/templates/core/functions/base64.hbs rename to packages/openapi-ts/templates/core/functions/base64.hbs diff --git a/packages/openapi-ts/src/legacy/handlebars/templates/core/functions/catchErrorCodes.hbs b/packages/openapi-ts/templates/core/functions/catchErrorCodes.hbs similarity index 100% rename from packages/openapi-ts/src/legacy/handlebars/templates/core/functions/catchErrorCodes.hbs rename to packages/openapi-ts/templates/core/functions/catchErrorCodes.hbs diff --git a/packages/openapi-ts/src/legacy/handlebars/templates/core/functions/getFormData.hbs b/packages/openapi-ts/templates/core/functions/getFormData.hbs similarity index 100% rename from packages/openapi-ts/src/legacy/handlebars/templates/core/functions/getFormData.hbs rename to packages/openapi-ts/templates/core/functions/getFormData.hbs diff --git a/packages/openapi-ts/src/legacy/handlebars/templates/core/functions/getQueryString.hbs b/packages/openapi-ts/templates/core/functions/getQueryString.hbs similarity index 100% rename from packages/openapi-ts/src/legacy/handlebars/templates/core/functions/getQueryString.hbs rename to packages/openapi-ts/templates/core/functions/getQueryString.hbs diff --git a/packages/openapi-ts/src/legacy/handlebars/templates/core/functions/getUrl.hbs b/packages/openapi-ts/templates/core/functions/getUrl.hbs similarity index 100% rename from packages/openapi-ts/src/legacy/handlebars/templates/core/functions/getUrl.hbs rename to packages/openapi-ts/templates/core/functions/getUrl.hbs diff --git a/packages/openapi-ts/src/legacy/handlebars/templates/core/functions/isBlob.hbs b/packages/openapi-ts/templates/core/functions/isBlob.hbs similarity index 100% rename from packages/openapi-ts/src/legacy/handlebars/templates/core/functions/isBlob.hbs rename to packages/openapi-ts/templates/core/functions/isBlob.hbs diff --git a/packages/openapi-ts/src/legacy/handlebars/templates/core/functions/isFormData.hbs b/packages/openapi-ts/templates/core/functions/isFormData.hbs similarity index 100% rename from packages/openapi-ts/src/legacy/handlebars/templates/core/functions/isFormData.hbs rename to packages/openapi-ts/templates/core/functions/isFormData.hbs diff --git a/packages/openapi-ts/src/legacy/handlebars/templates/core/functions/isString.hbs b/packages/openapi-ts/templates/core/functions/isString.hbs similarity index 100% rename from packages/openapi-ts/src/legacy/handlebars/templates/core/functions/isString.hbs rename to packages/openapi-ts/templates/core/functions/isString.hbs diff --git a/packages/openapi-ts/src/legacy/handlebars/templates/core/functions/isStringWithValue.hbs b/packages/openapi-ts/templates/core/functions/isStringWithValue.hbs similarity index 100% rename from packages/openapi-ts/src/legacy/handlebars/templates/core/functions/isStringWithValue.hbs rename to packages/openapi-ts/templates/core/functions/isStringWithValue.hbs diff --git a/packages/openapi-ts/src/legacy/handlebars/templates/core/functions/isSuccess.hbs b/packages/openapi-ts/templates/core/functions/isSuccess.hbs similarity index 100% rename from packages/openapi-ts/src/legacy/handlebars/templates/core/functions/isSuccess.hbs rename to packages/openapi-ts/templates/core/functions/isSuccess.hbs diff --git a/packages/openapi-ts/src/legacy/handlebars/templates/core/functions/resolve.hbs b/packages/openapi-ts/templates/core/functions/resolve.hbs similarity index 100% rename from packages/openapi-ts/src/legacy/handlebars/templates/core/functions/resolve.hbs rename to packages/openapi-ts/templates/core/functions/resolve.hbs diff --git a/packages/openapi-ts/src/legacy/handlebars/templates/core/request.hbs b/packages/openapi-ts/templates/core/request.hbs similarity index 100% rename from packages/openapi-ts/src/legacy/handlebars/templates/core/request.hbs rename to packages/openapi-ts/templates/core/request.hbs diff --git a/packages/openapi-ts/src/legacy/handlebars/templates/core/xhr/getHeaders.hbs b/packages/openapi-ts/templates/core/xhr/getHeaders.hbs similarity index 100% rename from packages/openapi-ts/src/legacy/handlebars/templates/core/xhr/getHeaders.hbs rename to packages/openapi-ts/templates/core/xhr/getHeaders.hbs diff --git a/packages/openapi-ts/src/legacy/handlebars/templates/core/xhr/getRequestBody.hbs b/packages/openapi-ts/templates/core/xhr/getRequestBody.hbs similarity index 100% rename from packages/openapi-ts/src/legacy/handlebars/templates/core/xhr/getRequestBody.hbs rename to packages/openapi-ts/templates/core/xhr/getRequestBody.hbs diff --git a/packages/openapi-ts/src/legacy/handlebars/templates/core/xhr/getResponseBody.hbs b/packages/openapi-ts/templates/core/xhr/getResponseBody.hbs similarity index 100% rename from packages/openapi-ts/src/legacy/handlebars/templates/core/xhr/getResponseBody.hbs rename to packages/openapi-ts/templates/core/xhr/getResponseBody.hbs diff --git a/packages/openapi-ts/src/legacy/handlebars/templates/core/xhr/getResponseHeader.hbs b/packages/openapi-ts/templates/core/xhr/getResponseHeader.hbs similarity index 100% rename from packages/openapi-ts/src/legacy/handlebars/templates/core/xhr/getResponseHeader.hbs rename to packages/openapi-ts/templates/core/xhr/getResponseHeader.hbs diff --git a/packages/openapi-ts/src/legacy/handlebars/templates/core/xhr/request.hbs b/packages/openapi-ts/templates/core/xhr/request.hbs similarity index 100% rename from packages/openapi-ts/src/legacy/handlebars/templates/core/xhr/request.hbs rename to packages/openapi-ts/templates/core/xhr/request.hbs diff --git a/packages/openapi-ts/src/legacy/handlebars/templates/core/xhr/sendRequest.hbs b/packages/openapi-ts/templates/core/xhr/sendRequest.hbs similarity index 100% rename from packages/openapi-ts/src/legacy/handlebars/templates/core/xhr/sendRequest.hbs rename to packages/openapi-ts/templates/core/xhr/sendRequest.hbs