diff --git a/package.json b/package.json index 2962a9fe..128572aa 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "openapi-typescript-codegen", - "version": "0.5.0-alpha", + "version": "0.5.0-beta", "description": "NodeJS library that generates Typescript or Javascript clients based on the OpenAPI specification.", "author": "Ferdi Koomen", "homepage": "https://github.com/ferdikoomen/openapi-typescript-codegen", diff --git a/src/openApi/v2/parser/constants.ts b/src/openApi/v2/parser/constants.ts index 74156e57..c92bcee8 100644 --- a/src/openApi/v2/parser/constants.ts +++ b/src/openApi/v2/parser/constants.ts @@ -1,5 +1,5 @@ export enum PrimaryType { - FILE = 'File', + FILE = 'any', // File or Buffer? OBJECT = 'any', ARRAY = 'any', BOOLEAN = 'boolean', diff --git a/src/openApi/v2/parser/getMappedType.spec.ts b/src/openApi/v2/parser/getMappedType.spec.ts index b437f85d..dacad502 100644 --- a/src/openApi/v2/parser/getMappedType.spec.ts +++ b/src/openApi/v2/parser/getMappedType.spec.ts @@ -2,7 +2,7 @@ import { getMappedType } from './getMappedType'; describe('getMappedType', () => { it('should map types to the basics', () => { - expect(getMappedType('File')).toEqual('File'); + expect(getMappedType('File')).toEqual('any'); expect(getMappedType('String')).toEqual('string'); expect(getMappedType('date')).toEqual('string'); expect(getMappedType('date-time')).toEqual('string'); diff --git a/src/openApi/v3/parser/constants.ts b/src/openApi/v3/parser/constants.ts index 7a8632dd..70b7656a 100644 --- a/src/openApi/v3/parser/constants.ts +++ b/src/openApi/v3/parser/constants.ts @@ -1,5 +1,5 @@ export enum PrimaryType { - FILE = 'File', + FILE = 'any', // File or Buffer? OBJECT = 'any', ARRAY = 'any[]', BOOLEAN = 'boolean', diff --git a/src/openApi/v3/parser/getMappedType.spec.ts b/src/openApi/v3/parser/getMappedType.spec.ts index b437f85d..dacad502 100644 --- a/src/openApi/v3/parser/getMappedType.spec.ts +++ b/src/openApi/v3/parser/getMappedType.spec.ts @@ -2,7 +2,7 @@ import { getMappedType } from './getMappedType'; describe('getMappedType', () => { it('should map types to the basics', () => { - expect(getMappedType('File')).toEqual('File'); + expect(getMappedType('File')).toEqual('any'); expect(getMappedType('String')).toEqual('string'); expect(getMappedType('date')).toEqual('string'); expect(getMappedType('date-time')).toEqual('string'); diff --git a/src/templates/core/functions/getHeaders.hbs b/src/templates/core/fetch/getHeaders.hbs similarity index 69% rename from src/templates/core/functions/getHeaders.hbs rename to src/templates/core/fetch/getHeaders.hbs index 458f7ffc..3d65e35e 100644 --- a/src/templates/core/functions/getHeaders.hbs +++ b/src/templates/core/fetch/getHeaders.hbs @@ -9,11 +9,9 @@ function getHeaders(options: ApiRequestOptions): Headers { } if (options.body) { - if (options.body instanceof Blob) { - if (options.body.type) { - headers.append('Content-Type', options.body.type); - } - } else if (typeof options.body === 'string') { + if (isBlob(options.body)) { + headers.append('Content-Type', options.body.type || 'application/octet-stream'); + } else if (isString(options.body)) { headers.append('Content-Type', 'text/plain'); } else { headers.append('Content-Type', 'application/json'); diff --git a/src/templates/core/fetch/getRequestBody.hbs b/src/templates/core/fetch/getRequestBody.hbs index f73b2783..09df2d0b 100644 --- a/src/templates/core/fetch/getRequestBody.hbs +++ b/src/templates/core/fetch/getRequestBody.hbs @@ -3,9 +3,7 @@ function getRequestBody(options: ApiRequestOptions): BodyInit | undefined { return getFormData(options.formData); } if (options.body) { - if (options.body instanceof Blob) { - return options.body; - } else if (typeof options.body === 'string') { + if (isString(options.body) || isBlob(options.body)) { return options.body; } else { return JSON.stringify(options.body); diff --git a/src/templates/core/fetch/getResponseHeader.hbs b/src/templates/core/fetch/getResponseHeader.hbs index 0e157d52..ce326a71 100644 --- a/src/templates/core/fetch/getResponseHeader.hbs +++ b/src/templates/core/fetch/getResponseHeader.hbs @@ -1,7 +1,7 @@ function getResponseHeader(response: Response, responseHeader?: string): string | null { if (responseHeader) { const content = response.headers.get(responseHeader); - if (typeof content === 'string') { + if (isString(content)) { return content; } } diff --git a/src/templates/core/fetch/request.hbs b/src/templates/core/fetch/request.hbs index 2bbfe4d3..aefe8c6a 100644 --- a/src/templates/core/fetch/request.hbs +++ b/src/templates/core/fetch/request.hbs @@ -8,6 +8,12 @@ import { OpenAPI } from './OpenAPI'; {{>functions/isDefined}} +{{>functions/isString}} + + +{{>functions/isBlob}} + + {{>functions/getQueryString}} @@ -17,7 +23,7 @@ import { OpenAPI } from './OpenAPI'; {{>functions/getFormData}} -{{>functions/getHeaders}} +{{>fetch/getHeaders}} {{>fetch/getRequestBody}} diff --git a/src/templates/core/functions/isBinary.hbs b/src/templates/core/functions/isBinary.hbs new file mode 100644 index 00000000..381c6358 --- /dev/null +++ b/src/templates/core/functions/isBinary.hbs @@ -0,0 +1,6 @@ +function isBinary(value: any): value is Buffer | ArrayBuffer | ArrayBufferView { + const isBuffer = Buffer.isBuffer(value); + const isArrayBuffer = types.isArrayBuffer(value); + const isArrayBufferView = types.isArrayBufferView(value); + return isBuffer || isArrayBuffer || isArrayBufferView; +} diff --git a/src/templates/core/functions/isBlob.hbs b/src/templates/core/functions/isBlob.hbs new file mode 100644 index 00000000..314c6b3b --- /dev/null +++ b/src/templates/core/functions/isBlob.hbs @@ -0,0 +1,3 @@ +function isBlob(value: any): value is Blob { + return value instanceof Blob; +} diff --git a/src/templates/core/functions/isString.hbs b/src/templates/core/functions/isString.hbs new file mode 100644 index 00000000..054df919 --- /dev/null +++ b/src/templates/core/functions/isString.hbs @@ -0,0 +1,3 @@ +function isString(value: any): value is string { + return typeof value === 'string'; +} diff --git a/src/templates/core/node/getHeaders.hbs b/src/templates/core/node/getHeaders.hbs new file mode 100644 index 00000000..d7363845 --- /dev/null +++ b/src/templates/core/node/getHeaders.hbs @@ -0,0 +1,21 @@ +function getHeaders(options: ApiRequestOptions): Headers { + const headers = new Headers({ + Accept: 'application/json', + ...options.headers, + }); + + if (isDefined(OpenAPI.TOKEN) && OpenAPI.TOKEN !== '') { + headers.append('Authorization', `Bearer ${OpenAPI.TOKEN}`); + } + + 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/node/getRequestBody.hbs b/src/templates/core/node/getRequestBody.hbs index c3fe564a..0977770c 100644 --- a/src/templates/core/node/getRequestBody.hbs +++ b/src/templates/core/node/getRequestBody.hbs @@ -3,9 +3,7 @@ function getRequestBody(options: ApiRequestOptions): BodyInit | undefined { return getFormData(options.formData); } if (options.body) { - if (options.body instanceof ArrayBuffer) { - return options.body; - } else if (typeof options.body === 'string') { + if (isString(options.body) || isBinary(options.body)) { return options.body; } else { return JSON.stringify(options.body); diff --git a/src/templates/core/node/getResponseHeader.hbs b/src/templates/core/node/getResponseHeader.hbs index 0e157d52..ce326a71 100644 --- a/src/templates/core/node/getResponseHeader.hbs +++ b/src/templates/core/node/getResponseHeader.hbs @@ -1,7 +1,7 @@ function getResponseHeader(response: Response, responseHeader?: string): string | null { if (responseHeader) { const content = response.headers.get(responseHeader); - if (typeof content === 'string') { + if (isString(content)) { return content; } } diff --git a/src/templates/core/node/request.hbs b/src/templates/core/node/request.hbs index c3d4abed..73969e30 100644 --- a/src/templates/core/node/request.hbs +++ b/src/templates/core/node/request.hbs @@ -1,15 +1,23 @@ {{>header}} +import * as 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'; -import fetch, { Headers, RequestInit, Response, BodyInit } from 'node-fetch'; -import * as FormData from 'form-data'; {{>functions/isDefined}} +{{>functions/isString}} + + +{{>functions/isBinary}} + + {{>functions/getQueryString}} @@ -19,7 +27,7 @@ import * as FormData from 'form-data'; {{>functions/getFormData}} -{{>functions/getHeaders}} +{{>node/getHeaders}} {{>node/getRequestBody}} diff --git a/src/templates/core/xhr/getHeaders.hbs b/src/templates/core/xhr/getHeaders.hbs new file mode 100644 index 00000000..3d65e35e --- /dev/null +++ b/src/templates/core/xhr/getHeaders.hbs @@ -0,0 +1,21 @@ +function getHeaders(options: ApiRequestOptions): Headers { + const headers = new Headers({ + Accept: 'application/json', + ...options.headers, + }); + + if (isDefined(OpenAPI.TOKEN) && OpenAPI.TOKEN !== '') { + headers.append('Authorization', `Bearer ${OpenAPI.TOKEN}`); + } + + if (options.body) { + if (isBlob(options.body)) { + headers.append('Content-Type', options.body.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/xhr/getRequestBody.hbs b/src/templates/core/xhr/getRequestBody.hbs index d570cca2..33ec6249 100644 --- a/src/templates/core/xhr/getRequestBody.hbs +++ b/src/templates/core/xhr/getRequestBody.hbs @@ -3,9 +3,7 @@ function getRequestBody(options: ApiRequestOptions): any { return getFormData(options.formData); } if (options.body) { - if (options.body instanceof Blob) { - return options.body; - } else if (typeof options.body === 'string') { + if (isString(options.body) || isBlob(options.body)) { return options.body; } else { return JSON.stringify(options.body); diff --git a/src/templates/core/xhr/getResponseHeader.hbs b/src/templates/core/xhr/getResponseHeader.hbs index 51ef4c37..9cd461e4 100644 --- a/src/templates/core/xhr/getResponseHeader.hbs +++ b/src/templates/core/xhr/getResponseHeader.hbs @@ -1,7 +1,7 @@ function getResponseHeader(xhr: XMLHttpRequest, responseHeader?: string): string | null { if (responseHeader) { const content = xhr.getResponseHeader(responseHeader); - if (typeof content === 'string') { + if (isString(content)) { return content; } } diff --git a/src/templates/core/xhr/request.hbs b/src/templates/core/xhr/request.hbs index 44fe1742..bdbab10e 100644 --- a/src/templates/core/xhr/request.hbs +++ b/src/templates/core/xhr/request.hbs @@ -8,6 +8,12 @@ import { OpenAPI } from './OpenAPI'; {{>functions/isDefined}} +{{>functions/isString}} + + +{{>functions/isBlob}} + + {{>functions/isSuccess}} @@ -20,7 +26,7 @@ import { OpenAPI } from './OpenAPI'; {{>functions/getFormData}} -{{>functions/getHeaders}} +{{>fetch/getHeaders}} {{>xhr/getRequestBody}} diff --git a/src/utils/registerHandlebarTemplates.ts b/src/utils/registerHandlebarTemplates.ts index 590bbfbe..9734e38d 100644 --- a/src/utils/registerHandlebarTemplates.ts +++ b/src/utils/registerHandlebarTemplates.ts @@ -3,6 +3,7 @@ import * as Handlebars from 'handlebars/runtime'; import templateCoreApiError from '../templates/core/ApiError.hbs'; import templateCoreApiRequestOptions from '../templates/core/ApiRequestOptions.hbs'; import templateCoreApiResult from '../templates/core/ApiResult.hbs'; +import fetchGetHeaders from '../templates/core/fetch/getHeaders.hbs'; import fetchGetRequestBody from '../templates/core/fetch/getRequestBody.hbs'; import fetchGetResponseBody from '../templates/core/fetch/getResponseBody.hbs'; import fetchGetResponseHeader from '../templates/core/fetch/getResponseHeader.hbs'; @@ -10,11 +11,14 @@ import fetchRequest from '../templates/core/fetch/request.hbs'; import fetchSendRequest from '../templates/core/fetch/sendRequest.hbs'; import functionCatchErrors from '../templates/core/functions/catchErrors.hbs'; import functionGetFormData from '../templates/core/functions/getFormData.hbs'; -import functionGetHeaders from '../templates/core/functions/getHeaders.hbs'; import functionGetQueryString from '../templates/core/functions/getQueryString.hbs'; import functionGetUrl from '../templates/core/functions/getUrl.hbs'; +import functionIsBinary from '../templates/core/functions/isBinary.hbs'; +import functionIsBlob from '../templates/core/functions/isBlob.hbs'; import functionIsDefined from '../templates/core/functions/isDefined.hbs'; +import functionIsString from '../templates/core/functions/isString.hbs'; import functionIsSuccess from '../templates/core/functions/isSuccess.hbs'; +import nodeGetHeaders from '../templates/core/node/getHeaders.hbs'; import nodeGetRequestBody from '../templates/core/node/getRequestBody.hbs'; import nodeGetResponseBody from '../templates/core/node/getResponseBody.hbs'; import nodeGetResponseHeader from '../templates/core/node/getResponseHeader.hbs'; @@ -22,6 +26,7 @@ import nodeRequest from '../templates/core/node/request.hbs'; import nodeSendRequest from '../templates/core/node/sendRequest.hbs'; import templateCoreSettings from '../templates/core/OpenAPI.hbs'; import templateCoreRequest from '../templates/core/request.hbs'; +import xhrGetHeaders from '../templates/core/xhr/getHeaders.hbs'; import xhrGetRequestBody from '../templates/core/xhr/getRequestBody.hbs'; import xhrGetResponseBody from '../templates/core/xhr/getResponseBody.hbs'; import xhrGetResponseHeader from '../templates/core/xhr/getResponseHeader.hbs'; @@ -124,13 +129,16 @@ export function registerHandlebarTemplates(): Templates { // Generic functions used in 'request' file @see src/templates/core/request.hbs for more info Handlebars.registerPartial('functions/catchErrors', Handlebars.template(functionCatchErrors)); Handlebars.registerPartial('functions/getFormData', Handlebars.template(functionGetFormData)); - Handlebars.registerPartial('functions/getHeaders', Handlebars.template(functionGetHeaders)); Handlebars.registerPartial('functions/getQueryString', Handlebars.template(functionGetQueryString)); Handlebars.registerPartial('functions/getUrl', Handlebars.template(functionGetUrl)); + Handlebars.registerPartial('functions/isBinary', Handlebars.template(functionIsBinary)); + Handlebars.registerPartial('functions/isBlob', Handlebars.template(functionIsBlob)); Handlebars.registerPartial('functions/isDefined', Handlebars.template(functionIsDefined)); + Handlebars.registerPartial('functions/isString', Handlebars.template(functionIsString)); Handlebars.registerPartial('functions/isSuccess', Handlebars.template(functionIsSuccess)); // Specific files for the fetch client implementation + Handlebars.registerPartial('fetch/getHeaders', Handlebars.template(fetchGetHeaders)); Handlebars.registerPartial('fetch/getRequestBody', Handlebars.template(fetchGetRequestBody)); Handlebars.registerPartial('fetch/getResponseBody', Handlebars.template(fetchGetResponseBody)); Handlebars.registerPartial('fetch/getResponseHeader', Handlebars.template(fetchGetResponseHeader)); @@ -138,6 +146,7 @@ export function registerHandlebarTemplates(): Templates { Handlebars.registerPartial('fetch/request', Handlebars.template(fetchRequest)); // Specific files for the xhr client implementation + Handlebars.registerPartial('xhr/getHeaders', Handlebars.template(xhrGetHeaders)); Handlebars.registerPartial('xhr/getRequestBody', Handlebars.template(xhrGetRequestBody)); Handlebars.registerPartial('xhr/getResponseBody', Handlebars.template(xhrGetResponseBody)); Handlebars.registerPartial('xhr/getResponseHeader', Handlebars.template(xhrGetResponseHeader)); @@ -145,6 +154,7 @@ export function registerHandlebarTemplates(): Templates { Handlebars.registerPartial('xhr/request', Handlebars.template(xhrRequest)); // Specific files for the node client implementation + Handlebars.registerPartial('node/getHeaders', Handlebars.template(nodeGetHeaders)); Handlebars.registerPartial('node/getRequestBody', Handlebars.template(nodeGetRequestBody)); Handlebars.registerPartial('node/getResponseBody', Handlebars.template(nodeGetResponseBody)); Handlebars.registerPartial('node/getResponseHeader', Handlebars.template(nodeGetResponseHeader)); diff --git a/test/__snapshots__/index.spec.js.snap b/test/__snapshots__/index.spec.js.snap index c144e5d2..134f844d 100644 --- a/test/__snapshots__/index.spec.js.snap +++ b/test/__snapshots__/index.spec.js.snap @@ -85,6 +85,14 @@ function isDefined(value: T | null | undefined): value is Exclude): string { const qs: string[] = []; Object.keys(params).forEach(key => { @@ -137,11 +145,9 @@ function getHeaders(options: ApiRequestOptions): Headers { } if (options.body) { - if (options.body instanceof Blob) { - if (options.body.type) { - headers.append('Content-Type', options.body.type); - } - } else if (typeof options.body === 'string') { + if (isBlob(options.body)) { + headers.append('Content-Type', options.body.type || 'application/octet-stream'); + } else if (isString(options.body)) { headers.append('Content-Type', 'text/plain'); } else { headers.append('Content-Type', 'application/json'); @@ -155,9 +161,7 @@ function getRequestBody(options: ApiRequestOptions): BodyInit | undefined { return getFormData(options.formData); } if (options.body) { - if (options.body instanceof Blob) { - return options.body; - } else if (typeof options.body === 'string') { + if (isString(options.body) || isBlob(options.body)) { return options.body; } else { return JSON.stringify(options.body); @@ -178,7 +182,7 @@ async function sendRequest(options: ApiRequestOptions, url: string): Promise; - propWithFile?: Array; + propWithFile?: Array; propWithNumber?: Array; } " @@ -931,7 +935,7 @@ exports[`v2 should generate: ./test/generated/v2/models/SimpleFile.ts 1`] = ` /** * This is a simple file */ -export type SimpleFile = File;" +export type SimpleFile = any;" `; exports[`v2 should generate: ./test/generated/v2/models/SimpleInteger.ts 1`] = ` @@ -1477,7 +1481,7 @@ exports[`v2 should generate: ./test/generated/v2/schemas/$SimpleFile.ts 1`] = ` /* tslint:disable */ /* eslint-disable */ export const $SimpleFile = { - type: 'File', + type: 'any', };" `; @@ -2114,6 +2118,14 @@ function isDefined(value: T | null | undefined): value is Exclude): string { const qs: string[] = []; Object.keys(params).forEach(key => { @@ -2166,11 +2178,9 @@ function getHeaders(options: ApiRequestOptions): Headers { } if (options.body) { - if (options.body instanceof Blob) { - if (options.body.type) { - headers.append('Content-Type', options.body.type); - } - } else if (typeof options.body === 'string') { + if (isBlob(options.body)) { + headers.append('Content-Type', options.body.type || 'application/octet-stream'); + } else if (isString(options.body)) { headers.append('Content-Type', 'text/plain'); } else { headers.append('Content-Type', 'application/json'); @@ -2184,9 +2194,7 @@ function getRequestBody(options: ApiRequestOptions): BodyInit | undefined { return getFormData(options.formData); } if (options.body) { - if (options.body instanceof Blob) { - return options.body; - } else if (typeof options.body === 'string') { + if (isString(options.body) || isBlob(options.body)) { return options.body; } else { return JSON.stringify(options.body); @@ -2207,7 +2215,7 @@ async function sendRequest(options: ApiRequestOptions, url: string): Promise; - propWithFile?: Array; + propWithFile?: Array; propWithNumber?: Array; } " @@ -3004,7 +3012,7 @@ exports[`v3 should generate: ./test/generated/v3/models/SimpleFile.ts 1`] = ` /** * This is a simple file */ -export type SimpleFile = File;" +export type SimpleFile = any;" `; exports[`v3 should generate: ./test/generated/v3/models/SimpleInteger.ts 1`] = ` @@ -3584,7 +3592,7 @@ exports[`v3 should generate: ./test/generated/v3/schemas/$SimpleFile.ts 1`] = ` /* tslint:disable */ /* eslint-disable */ export const $SimpleFile = { - type: 'File', + type: 'any', };" `; @@ -4293,7 +4301,7 @@ export class UploadService { * @throws ApiError */ public static async uploadFile( - file: File, + file: any, ): Promise { const result = await __request({ method: 'POST', diff --git a/test/e2e/scripts/compile.js b/test/e2e/scripts/compile.js index 372b9ab1..fd79d9d1 100644 --- a/test/e2e/scripts/compile.js +++ b/test/e2e/scripts/compile.js @@ -4,13 +4,14 @@ const ts = require('typescript'); const path = require('path'); const os = require('os'); -function compile(dir) { +function compile(dir, isBrowser) { const baseDir = `./test/e2e/generated/${dir}/`; const tsconfig = { compilerOptions: { target: 'es6', module: 'es6', moduleResolution: 'node', + lib: isBrowser ? ['es6', 'dom'] : ['es6'] }, include: ['./index.ts'], }; diff --git a/test/e2e/v2.fetch.spec.js b/test/e2e/v2.fetch.spec.js index eae92e03..271cf8de 100644 --- a/test/e2e/v2.fetch.spec.js +++ b/test/e2e/v2.fetch.spec.js @@ -11,7 +11,7 @@ describe('v2.fetch', () => { beforeAll(async () => { await generate('v2/fetch', 'v2', 'fetch'); await copy('v2/fetch'); - compile('v2/fetch'); + compile('v2/fetch', true); await server.start('v2/fetch'); await browser.start(); }, 30000); diff --git a/test/e2e/v2.xhr.spec.js b/test/e2e/v2.xhr.spec.js index 595f411b..0d7afbb6 100644 --- a/test/e2e/v2.xhr.spec.js +++ b/test/e2e/v2.xhr.spec.js @@ -11,7 +11,7 @@ describe('v2.xhr', () => { beforeAll(async () => { await generate('v2/xhr', 'v2', 'xhr'); await copy('v2/xhr'); - compile('v2/xhr'); + compile('v2/xhr', true); await server.start('v2/xhr'); await browser.start(); }, 30000); diff --git a/test/e2e/v3.fetch.spec.js b/test/e2e/v3.fetch.spec.js index b5d45ba6..4958a3e0 100644 --- a/test/e2e/v3.fetch.spec.js +++ b/test/e2e/v3.fetch.spec.js @@ -11,7 +11,7 @@ describe('v3.fetch', () => { beforeAll(async () => { await generate('v3/fetch', 'v3', 'fetch'); await copy('v3/fetch'); - compile('v3/fetch'); + compile('v3/fetch', true); await server.start('v3/fetch'); await browser.start(); }, 30000); diff --git a/test/e2e/v3.xhr.spec.js b/test/e2e/v3.xhr.spec.js index 1cad0068..ab68f870 100644 --- a/test/e2e/v3.xhr.spec.js +++ b/test/e2e/v3.xhr.spec.js @@ -11,7 +11,7 @@ describe('v3.xhr', () => { beforeAll(async () => { await generate('v3/xhr', 'v3', 'xhr'); await copy('v3/xhr'); - compile('v3/xhr'); + compile('v3/xhr', true); await server.start('v3/xhr'); await browser.start(); }, 30000); diff --git a/tsconfig.json b/tsconfig.json index a79f15a2..45fe430c 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,10 +1,10 @@ { "compilerOptions": { "outDir": "./dist", - "target": "es2017", + "target": "es6", "module": "es6", "moduleResolution": "node", - "lib": ["es2017", "dom"], + "lib": ["es6"], "types": ["jest", "node"], "declaration": false, "declarationMap": false,