From 4c1e74eb9361a2a5cb5de42320e6ca7aa09a3f54 Mon Sep 17 00:00:00 2001 From: Ferdi Koomen Date: Wed, 16 Dec 2020 19:50:31 +0100 Subject: [PATCH] - Fixes --- package.json | 1 - src/index.ts | 1 - src/templates/core/fetch/request.hbs | 2 +- src/templates/core/fetch/sendRequest.hbs | 3 + src/templates/core/httpntlm/getHeaders.hbs | 31 -------- .../core/httpntlm/getRequestBody.hbs | 13 ---- .../core/httpntlm/getResponseBody.hbs | 16 ---- .../core/httpntlm/getResponseHeader.hbs | 9 --- src/templates/core/httpntlm/request.hbs | 76 ------------------- src/templates/core/httpntlm/sendRequest.hbs | 8 -- src/templates/core/node/request.hbs | 10 +-- src/templates/core/node/sendRequest.hbs | 3 + src/templates/core/request.hbs | 7 +- src/templates/core/xhr/request.hbs | 2 +- src/templates/exportService.hbs | 2 +- src/utils/registerHandlebarTemplates.ts | 14 ---- test/index.js | 4 +- types/index.d.ts | 1 - 18 files changed, 19 insertions(+), 184 deletions(-) delete mode 100644 src/templates/core/httpntlm/getHeaders.hbs delete mode 100644 src/templates/core/httpntlm/getRequestBody.hbs delete mode 100644 src/templates/core/httpntlm/getResponseBody.hbs delete mode 100644 src/templates/core/httpntlm/getResponseHeader.hbs delete mode 100644 src/templates/core/httpntlm/request.hbs delete mode 100644 src/templates/core/httpntlm/sendRequest.hbs diff --git a/package.json b/package.json index 6ed8254d..b35bffc9 100644 --- a/package.json +++ b/package.json @@ -90,7 +90,6 @@ "express": "4.17.1", "form-data": "3.0.0", "glob": "7.1.6", - "httpntlm": "1.7.6", "jest": "26.6.3", "jest-cli": "26.6.3", "node-fetch": "2.6.1", diff --git a/src/index.ts b/src/index.ts index 59a1a216..c098715c 100644 --- a/src/index.ts +++ b/src/index.ts @@ -11,7 +11,6 @@ export enum HttpClient { FETCH = 'fetch', XHR = 'xhr', NODE = 'node', - HTTPNTLM = 'httpntlm', } export type Options = { diff --git a/src/templates/core/fetch/request.hbs b/src/templates/core/fetch/request.hbs index 5e6f47e2..c22330e5 100644 --- a/src/templates/core/fetch/request.hbs +++ b/src/templates/core/fetch/request.hbs @@ -50,7 +50,7 @@ import { OpenAPI } from './OpenAPI'; /** * Request using fetch client * @param options The request options from the the service - * @result ApiResult + * @returns ApiResult * @throws ApiError */ export async function request(options: ApiRequestOptions): Promise { diff --git a/src/templates/core/fetch/sendRequest.hbs b/src/templates/core/fetch/sendRequest.hbs index e0a296e0..4afd0731 100644 --- a/src/templates/core/fetch/sendRequest.hbs +++ b/src/templates/core/fetch/sendRequest.hbs @@ -4,5 +4,8 @@ async function sendRequest(options: ApiRequestOptions, url: string): Promise { - const headers = new Headers({ - Accept: 'application/json', - ...OpenAPI.HEADERS, - ...options.headers, - }); - - const token = await resolve(OpenAPI.TOKEN); - const username = await resolve(OpenAPI.USERNAME); - const password = await resolve(OpenAPI.PASSWORD); - - if (isStringWithValue(token)) { - headers.append('Authorization', `Bearer ${token}`); - } - - if (isStringWithValue(username) && isStringWithValue(password)) { - const credentials = Buffer.from(`${username}:${password}`).toString('base64'); - headers.append('Authorization', `Basic ${credentials}`); - } - - if (options.body) { - if (isBinary(options.body)) { - headers.append('Content-Type', 'application/octet-stream'); - } else if (isString(options.body)) { - headers.append('Content-Type', 'text/plain'); - } else { - headers.append('Content-Type', 'application/json'); - } - } - return headers; -} diff --git a/src/templates/core/httpntlm/getRequestBody.hbs b/src/templates/core/httpntlm/getRequestBody.hbs deleted file mode 100644 index 0977770c..00000000 --- a/src/templates/core/httpntlm/getRequestBody.hbs +++ /dev/null @@ -1,13 +0,0 @@ -function getRequestBody(options: ApiRequestOptions): BodyInit | undefined { - if (options.formData) { - return getFormData(options.formData); - } - if (options.body) { - if (isString(options.body) || isBinary(options.body)) { - return options.body; - } else { - return JSON.stringify(options.body); - } - } - return undefined; -} diff --git a/src/templates/core/httpntlm/getResponseBody.hbs b/src/templates/core/httpntlm/getResponseBody.hbs deleted file mode 100644 index 502979ef..00000000 --- a/src/templates/core/httpntlm/getResponseBody.hbs +++ /dev/null @@ -1,16 +0,0 @@ -async function getResponseBody(response: Response): Promise { - try { - const contentType = response.headers.get('Content-Type'); - if (contentType) { - const isJSON = contentType.toLowerCase().startsWith('application/json'); - if (isJSON) { - return await response.json(); - } else { - return await response.text(); - } - } - } catch (error) { - console.error(error); - } - return null; -} diff --git a/src/templates/core/httpntlm/getResponseHeader.hbs b/src/templates/core/httpntlm/getResponseHeader.hbs deleted file mode 100644 index ce326a71..00000000 --- a/src/templates/core/httpntlm/getResponseHeader.hbs +++ /dev/null @@ -1,9 +0,0 @@ -function getResponseHeader(response: Response, responseHeader?: string): string | null { - if (responseHeader) { - const content = response.headers.get(responseHeader); - if (isString(content)) { - return content; - } - } - return null; -} diff --git a/src/templates/core/httpntlm/request.hbs b/src/templates/core/httpntlm/request.hbs deleted file mode 100644 index 0edc3d09..00000000 --- a/src/templates/core/httpntlm/request.hbs +++ /dev/null @@ -1,76 +0,0 @@ -{{>header}} - -import FormData from 'form-data'; -import fetch, { BodyInit, Headers, RequestInit, Response } from 'node-fetch'; -import { types } from 'util'; - -import { ApiError } from './ApiError'; -import type { ApiRequestOptions } from './ApiRequestOptions'; -import type { ApiResult } from './ApiResult'; -import { OpenAPI } from './OpenAPI'; - -{{>functions/isDefined}} - - -{{>functions/isString}} - - -{{>functions/isStringWithValue}} - - -{{>functions/isBinary}} - - -{{>functions/getQueryString}} - - -{{>functions/getUrl}} - - -{{>functions/getFormData}} - - -{{>functions/resolve}} - - -{{>httpntlm/getHeaders}} - - -{{>httpntlm/getRequestBody}} - - -{{>httpntlm/sendRequest}} - - -{{>httpntlm/getResponseHeader}} - - -{{>httpntlm/getResponseBody}} - - -{{>functions/catchErrors}} - - -/** -* Request using node-fetch client -* @param options The request options from the the service -* @result ApiResult -* @throws ApiError -*/ -export async function request(options: ApiRequestOptions): Promise { - const url = getUrl(options); - const response = await sendRequest(options, url); - const responseBody = await getResponseBody(response); - const responseHeader = getResponseHeader(response, options.responseHeader); - - const result: ApiResult = { - url, - ok: response.ok, - status: response.status, - statusText: response.statusText, - body: responseHeader || responseBody, - }; - - catchErrors(options, result); - return result; -} diff --git a/src/templates/core/httpntlm/sendRequest.hbs b/src/templates/core/httpntlm/sendRequest.hbs deleted file mode 100644 index e0a296e0..00000000 --- a/src/templates/core/httpntlm/sendRequest.hbs +++ /dev/null @@ -1,8 +0,0 @@ -async function sendRequest(options: ApiRequestOptions, url: string): Promise { - const request: RequestInit = { - method: options.method, - headers: await getHeaders(options), - body: getRequestBody(options), - }; - return await fetch(url, request); -} diff --git a/src/templates/core/node/request.hbs b/src/templates/core/node/request.hbs index 2c3a5247..1bf15050 100644 --- a/src/templates/core/node/request.hbs +++ b/src/templates/core/node/request.hbs @@ -52,11 +52,11 @@ import { OpenAPI } from './OpenAPI'; /** -* Request using node-fetch client -* @param options The request options from the the service -* @result ApiResult -* @throws ApiError -*/ + * Request using node-fetch client + * @param options The request options from the the service + * @returns ApiResult + * @throws ApiError + */ export async function request(options: ApiRequestOptions): Promise { const url = getUrl(options); const response = await sendRequest(options, url); diff --git a/src/templates/core/node/sendRequest.hbs b/src/templates/core/node/sendRequest.hbs index e0a296e0..4afd0731 100644 --- a/src/templates/core/node/sendRequest.hbs +++ b/src/templates/core/node/sendRequest.hbs @@ -4,5 +4,8 @@ async function sendRequest(options: ApiRequestOptions, url: string): Promisefetch/request}}{{/equals}} -{{#equals @root.httpClient 'xhr'}}{{>xhr/request}}{{/equals}} -{{#equals @root.httpClient 'node'}}{{>node/request}}{{/equals}} -{{#equals @root.httpClient 'httpntml'}}{{>httpntml/request}}{{/equals}} +{{~#equals @root.httpClient 'fetch'}}{{>fetch/request}}{{/equals~}} +{{~#equals @root.httpClient 'xhr'}}{{>xhr/request}}{{/equals~}} +{{~#equals @root.httpClient 'node'}}{{>node/request}}{{/equals~}} diff --git a/src/templates/core/xhr/request.hbs b/src/templates/core/xhr/request.hbs index 88f05c6d..9faf192f 100644 --- a/src/templates/core/xhr/request.hbs +++ b/src/templates/core/xhr/request.hbs @@ -53,7 +53,7 @@ import { OpenAPI } from './OpenAPI'; /** * Request using XHR client * @param options The request options from the the service - * @result ApiResult + * @returns ApiResult * @throws ApiError */ export async function request(options: ApiRequestOptions): Promise { diff --git a/src/templates/exportService.hbs b/src/templates/exportService.hbs index ba9f892d..315640d9 100644 --- a/src/templates/exportService.hbs +++ b/src/templates/exportService.hbs @@ -31,7 +31,7 @@ export class {{{name}}} { {{/if}} {{/unless}} {{#each results}} - * @result {{{type}}} {{{description}}} + * @returns {{{type}}} {{{description}}} {{/each}} * @throws ApiError */ diff --git a/src/utils/registerHandlebarTemplates.ts b/src/utils/registerHandlebarTemplates.ts index 11d040be..6772eebd 100644 --- a/src/utils/registerHandlebarTemplates.ts +++ b/src/utils/registerHandlebarTemplates.ts @@ -26,12 +26,6 @@ import nodeGetResponseBody from '../templates/core/node/getResponseBody.hbs'; import nodeGetResponseHeader from '../templates/core/node/getResponseHeader.hbs'; import nodeRequest from '../templates/core/node/request.hbs'; import nodeSendRequest from '../templates/core/node/sendRequest.hbs'; -import httpntlmGetHeaders from '../templates/core/httpntlm/getHeaders.hbs'; -import httpntlmGetRequestBody from '../templates/core/httpntlm/getRequestBody.hbs'; -import httpntlmGetResponseBody from '../templates/core/httpntlm/getResponseBody.hbs'; -import httpntlmGetResponseHeader from '../templates/core/httpntlm/getResponseHeader.hbs'; -import httpntlmRequest from '../templates/core/httpntlm/request.hbs'; -import httpntlmSendRequest from '../templates/core/httpntlm/sendRequest.hbs'; import templateCoreSettings from '../templates/core/OpenAPI.hbs'; import templateCoreRequest from '../templates/core/request.hbs'; import xhrGetHeaders from '../templates/core/xhr/getHeaders.hbs'; @@ -179,13 +173,5 @@ export function registerHandlebarTemplates(): Templates { Handlebars.registerPartial('node/sendRequest', Handlebars.template(nodeSendRequest)); Handlebars.registerPartial('node/request', Handlebars.template(nodeRequest)); - // Specific files for the node client implementation - Handlebars.registerPartial('httpntlm/getHeaders', Handlebars.template(httpntlmGetHeaders)); - Handlebars.registerPartial('httpntlm/getRequestBody', Handlebars.template(httpntlmGetRequestBody)); - Handlebars.registerPartial('httpntlm/getResponseBody', Handlebars.template(httpntlmGetResponseBody)); - Handlebars.registerPartial('httpntlm/getResponseHeader', Handlebars.template(httpntlmGetResponseHeader)); - Handlebars.registerPartial('httpntlm/sendRequest', Handlebars.template(httpntlmSendRequest)); - Handlebars.registerPartial('httpntlm/request', Handlebars.template(httpntlmRequest)); - return templates; } diff --git a/test/index.js b/test/index.js index fa0017ee..7c88334b 100644 --- a/test/index.js +++ b/test/index.js @@ -6,7 +6,7 @@ async function generateV2() { await OpenAPI.generate({ input: './test/spec/v2.json', output: './test/generated/v2/', - httpClient: OpenAPI.HttpClient.HTTPNTLM, + httpClient: OpenAPI.HttpClient.FETCH, useOptions: false, useUnionTypes: false, exportCore: true, @@ -20,7 +20,7 @@ async function generateV3() { await OpenAPI.generate({ input: './test/spec/v3.json', output: './test/generated/v3/', - httpClient: OpenAPI.HttpClient.HTTPNTLM, + httpClient: OpenAPI.HttpClient.FETCH, useOptions: false, useUnionTypes: false, exportCore: true, diff --git a/types/index.d.ts b/types/index.d.ts index 5259b4ca..e1829b2d 100644 --- a/types/index.d.ts +++ b/types/index.d.ts @@ -2,7 +2,6 @@ export declare enum HttpClient { FETCH = 'fetch', XHR = 'xhr', NODE = 'node', - HTTPNTLM = 'httpntlm', } export type Options = {