From b110b229219e0e19e09be49dcf5309d334fa0347 Mon Sep 17 00:00:00 2001 From: Ferdi Koomen Date: Fri, 20 Dec 2019 00:11:56 +0100 Subject: [PATCH] - Removed javascript generation --- README.md | 12 +- bin/index.js | 2 - package.json | 6 +- src/index.ts | 32 +- .../{typescript => }/core/ApiError.ts | 0 .../{typescript => }/core/Definition.ts | 0 .../{typescript => }/core/OpenAPI.hbs | 0 .../{typescript => }/core/RequestOptions.ts | 0 src/templates/{typescript => }/core/Result.ts | 0 .../{typescript => }/core/getFormData.ts | 0 .../{typescript => }/core/getQueryString.ts | 0 src/templates/core/getSchema.ts | 17 + .../{typescript => }/core/isSuccess.ts | 0 .../{typescript => }/core/request.ts | 0 .../core/requestUsingFetch.ts | 0 .../{typescript => }/core/requestUsingXHR.ts | 0 src/templates/index.ts | 11 + src/templates/javascript/core/ApiError.js | 54 - src/templates/javascript/core/OpenAPI.hbs | 13 - src/templates/javascript/core/getFormData.js | 23 - .../javascript/core/getQueryString.js | 32 - src/templates/javascript/core/isSuccess.js | 13 - src/templates/javascript/core/request.js | 80 - .../javascript/core/requestUsingFetch.js | 49 - .../javascript/core/requestUsingXHR.js | 72 - src/templates/javascript/index.hbs | 40 - src/templates/javascript/model.hbs | 13 - src/templates/javascript/models/Dictionary.js | 14 - .../partials/definitionInterface.hbs | 23 - .../javascript/partials/exportEnum.hbs | 17 - .../javascript/partials/exportGeneric.hbs | 11 - .../javascript/partials/exportInterface.hbs | 26 - src/templates/javascript/service.hbs | 92 - .../{typescript => }/models/Dictionary.ts | 8 - src/templates/models/index.hbs | 8 + .../{typescript => models}/model.hbs | 2 +- .../{typescript => }/partials/exportEnum.hbs | 6 - .../partials/exportGeneric.hbs | 6 - .../partials/exportInterface.hbs | 5 +- .../{typescript => }/partials/extends.hbs | 0 .../{typescript => }/partials/isNullable.hbs | 0 .../{typescript => }/partials/isReadOnly.hbs | 0 .../{typescript => }/partials/isRequired.hbs | 0 .../{typescript => }/partials/result.hbs | 0 .../definition.hbs => partials/schema.hbs} | 10 +- .../schemaArray.hbs} | 0 .../schemaDictionary.hbs} | 0 .../schemaEnum.hbs} | 0 .../schemaGeneric.hbs} | 0 .../schemaInterface.hbs} | 4 +- .../{typescript => }/partials/type.hbs | 0 .../{typescript => }/partials/typeArray.hbs | 0 .../partials/typeDictionary.hbs | 0 .../{typescript => }/partials/typeEnum.hbs | 0 .../{typescript => }/partials/typeGeneric.hbs | 0 .../partials/typeInterface.hbs | 0 .../partials/typeReference.hbs | 0 src/templates/schemas/$Dictionary.ts | 8 + src/templates/schemas/index.hbs | 8 + src/templates/schemas/schema.hbs | 12 + src/templates/services/index.hbs | 8 + .../{typescript => services}/service.hbs | 0 src/templates/typescript/index.hbs | 42 - .../typescript/partials/definition.hbs | 11 - .../typescript/partials/definitionArray.hbs | 12 - .../partials/definitionDictionary.hbs | 12 - .../typescript/partials/definitionEnum.hbs | 12 - .../typescript/partials/definitionGeneric.hbs | 56 - src/utils/getFileName.spec.ts | 9 - src/utils/getFileName.ts | 16 - src/utils/getModelNames.spec.ts | 4 +- src/utils/getModelNames.ts | 1 - src/utils/readHandlebarsTemplates.spec.ts | 8 +- src/utils/readHandlebarsTemplates.ts | 22 +- src/utils/writeClient.spec.ts | 9 +- src/utils/writeClient.ts | 25 +- src/utils/writeClientIndex.spec.ts | 36 - src/utils/writeClientIndex.ts | 34 - src/utils/writeClientModels.spec.ts | 8 +- src/utils/writeClientModels.ts | 24 +- src/utils/writeClientSchemas.spec.ts | 46 + src/utils/writeClientSchemas.ts | 28 + src/utils/writeClientServices.spec.ts | 7 +- src/utils/writeClientServices.ts | 24 +- src/utils/writeClientSettings.ts | 27 +- test/__snapshots__/index.spec.js.snap | 6742 ++++------------- test/index.js | 28 +- test/index.spec.js | 88 +- test/mock/{spec-v2.json => v2/spec.json} | 0 test/mock/{spec-v3.json => v3/spec.json} | 0 90 files changed, 1963 insertions(+), 6105 deletions(-) rename src/templates/{typescript => }/core/ApiError.ts (100%) rename src/templates/{typescript => }/core/Definition.ts (100%) rename src/templates/{typescript => }/core/OpenAPI.hbs (100%) rename src/templates/{typescript => }/core/RequestOptions.ts (100%) rename src/templates/{typescript => }/core/Result.ts (100%) rename src/templates/{typescript => }/core/getFormData.ts (100%) rename src/templates/{typescript => }/core/getQueryString.ts (100%) create mode 100644 src/templates/core/getSchema.ts rename src/templates/{typescript => }/core/isSuccess.ts (100%) rename src/templates/{typescript => }/core/request.ts (100%) rename src/templates/{typescript => }/core/requestUsingFetch.ts (100%) rename src/templates/{typescript => }/core/requestUsingXHR.ts (100%) create mode 100644 src/templates/index.ts delete mode 100644 src/templates/javascript/core/ApiError.js delete mode 100644 src/templates/javascript/core/OpenAPI.hbs delete mode 100644 src/templates/javascript/core/getFormData.js delete mode 100644 src/templates/javascript/core/getQueryString.js delete mode 100644 src/templates/javascript/core/isSuccess.js delete mode 100644 src/templates/javascript/core/request.js delete mode 100644 src/templates/javascript/core/requestUsingFetch.js delete mode 100644 src/templates/javascript/core/requestUsingXHR.js delete mode 100644 src/templates/javascript/index.hbs delete mode 100644 src/templates/javascript/model.hbs delete mode 100644 src/templates/javascript/models/Dictionary.js delete mode 100644 src/templates/javascript/partials/definitionInterface.hbs delete mode 100644 src/templates/javascript/partials/exportEnum.hbs delete mode 100644 src/templates/javascript/partials/exportGeneric.hbs delete mode 100644 src/templates/javascript/partials/exportInterface.hbs delete mode 100644 src/templates/javascript/service.hbs rename src/templates/{typescript => }/models/Dictionary.ts (59%) create mode 100644 src/templates/models/index.hbs rename src/templates/{typescript => models}/model.hbs (84%) rename src/templates/{typescript => }/partials/exportEnum.hbs (64%) rename src/templates/{typescript => }/partials/exportGeneric.hbs (53%) rename src/templates/{typescript => }/partials/exportInterface.hbs (87%) rename src/templates/{typescript => }/partials/extends.hbs (100%) rename src/templates/{typescript => }/partials/isNullable.hbs (100%) rename src/templates/{typescript => }/partials/isReadOnly.hbs (100%) rename src/templates/{typescript => }/partials/isRequired.hbs (100%) rename src/templates/{typescript => }/partials/result.hbs (100%) rename src/templates/{javascript/partials/definition.hbs => partials/schema.hbs} (56%) rename src/templates/{javascript/partials/definitionArray.hbs => partials/schemaArray.hbs} (100%) rename src/templates/{javascript/partials/definitionDictionary.hbs => partials/schemaDictionary.hbs} (100%) rename src/templates/{javascript/partials/definitionEnum.hbs => partials/schemaEnum.hbs} (100%) rename src/templates/{javascript/partials/definitionGeneric.hbs => partials/schemaGeneric.hbs} (100%) rename src/templates/{typescript/partials/definitionInterface.hbs => partials/schemaInterface.hbs} (80%) rename src/templates/{typescript => }/partials/type.hbs (100%) rename src/templates/{typescript => }/partials/typeArray.hbs (100%) rename src/templates/{typescript => }/partials/typeDictionary.hbs (100%) rename src/templates/{typescript => }/partials/typeEnum.hbs (100%) rename src/templates/{typescript => }/partials/typeGeneric.hbs (100%) rename src/templates/{typescript => }/partials/typeInterface.hbs (100%) rename src/templates/{typescript => }/partials/typeReference.hbs (100%) create mode 100644 src/templates/schemas/$Dictionary.ts create mode 100644 src/templates/schemas/index.hbs create mode 100644 src/templates/schemas/schema.hbs create mode 100644 src/templates/services/index.hbs rename src/templates/{typescript => services}/service.hbs (100%) delete mode 100644 src/templates/typescript/index.hbs delete mode 100644 src/templates/typescript/partials/definition.hbs delete mode 100644 src/templates/typescript/partials/definitionArray.hbs delete mode 100644 src/templates/typescript/partials/definitionDictionary.hbs delete mode 100644 src/templates/typescript/partials/definitionEnum.hbs delete mode 100644 src/templates/typescript/partials/definitionGeneric.hbs delete mode 100644 src/utils/getFileName.spec.ts delete mode 100644 src/utils/getFileName.ts delete mode 100644 src/utils/writeClientIndex.spec.ts delete mode 100644 src/utils/writeClientIndex.ts create mode 100644 src/utils/writeClientSchemas.spec.ts create mode 100644 src/utils/writeClientSchemas.ts rename test/mock/{spec-v2.json => v2/spec.json} (100%) rename test/mock/{spec-v3.json => v3/spec.json} (100%) diff --git a/README.md b/README.md index 2232ef71..f172d8c4 100644 --- a/README.md +++ b/README.md @@ -5,12 +5,12 @@ [![Build Status](https://badgen.net/travis/ferdikoomen/openapi-typescript-codegen/master)](https://travis-ci.org/ferdikoomen/openapi-typescript-codegen) [![Quality](https://badgen.net/lgtm/grade/javascript/g/ferdikoomen/openapi-typescript-codegen)](https://lgtm.com/projects/g/ferdikoomen/openapi-typescript-codegen) -> NodeJS library that generates Typescript or Javascript clients based on the OpenAPI specification. +> NodeJS library that generates Typescript clients based on the OpenAPI specification. #### Why? - Frontend ❤️ OpenAPI, but we do not want to use JAVA codegen in our builds. - Quick, lightweight, robust and framework agnostic. -- Supports generation of Typescript and Javascript clients. +- Supports generation of Typescript clients. - Supports generations of fetch and XHR http clients. - Supports OpenAPI specification v2.0 and v3.0. - Supports JSON and YAML files for input. @@ -20,7 +20,7 @@ - If you use enums inside your models / definitions then those enums are now inside a namespace with the same name as your model. This is called declaration merging. However Babel 7 now support compiling of Typescript and right now they - do not support namespaces. + do not support namespaces. ## Installation @@ -41,7 +41,7 @@ npm install openapi-typescript-codegen --save-dev } ``` -Command line +Command line ``` npm install openapi-typescript-codegen -g @@ -54,10 +54,8 @@ NodeJS API: ``` const OpenAPI = require('openapi-typescript-codegen'); -const result = OpenAPI.generate( +OpenAPI.generate( './api/openapi.json', './dist' ); - -console.log(result); ``` diff --git a/bin/index.js b/bin/index.js index 1620ebd7..7b83a8f4 100755 --- a/bin/index.js +++ b/bin/index.js @@ -10,7 +10,6 @@ program .version(pkg.version) .option('--input [value]', 'Path to swagger specification', './spec.json') .option('--output [value]', 'Output directory', './generated') - .option('--language [value]', 'Language to generate [typescript, javascript]', 'typescript') .option('--http-client [value]', 'HTTP client to generate [fetch, xhr]', 'fetch') .parse(process.argv); @@ -20,7 +19,6 @@ if (SwaggerCodegen) { SwaggerCodegen.generate( program.input, program.output, - program.language, program.httpClient ); } diff --git a/package.json b/package.json index 3c3cc24c..225378fc 100644 --- a/package.json +++ b/package.json @@ -43,10 +43,8 @@ "dist/index.d.ts", "dist/**/*.js", "dist/**/*.d.ts", - "src/templates/javascript/**/*.hbs", - "src/templates/javascript/**/*.js", - "src/templates/typescript/**/*.hbs", - "src/templates/typescript/**/*.ts" + "src/templates/**/*.hbs", + "src/templates/**/*.ts" ], "scripts": { "clean": "rimraf \"./dist\" \"./coverage\" \"./test/result\"", diff --git a/src/index.ts b/src/index.ts index 392d1227..91be41c6 100644 --- a/src/index.ts +++ b/src/index.ts @@ -7,11 +7,6 @@ import { parse as parseV3 } from './openApi/v3'; import { readHandlebarsTemplates } from './utils/readHandlebarsTemplates'; import { writeClient } from './utils/writeClient'; -export enum Language { - TYPESCRIPT = 'typescript', - JAVASCRIPT = 'javascript', -} - export enum HttpClient { FETCH = 'fetch', XHR = 'xhr', @@ -23,10 +18,9 @@ export enum HttpClient { * service layer, etc. * @param input The relative location of the OpenAPI spec. * @param output The relative location of the output directory. - * @param language: The language that should be generated (Typescript or Javascript). * @param httpClient: The selected httpClient (fetch or XHR). */ -export function generate(input: string, output: string, language: Language = Language.TYPESCRIPT, httpClient: HttpClient = HttpClient.FETCH): void { +export function generate(input: string, output: string, httpClient: HttpClient = HttpClient.FETCH): void { const inputPath = path.resolve(process.cwd(), input); const outputPath = path.resolve(process.cwd(), output); @@ -35,22 +29,18 @@ export function generate(input: string, output: string, language: Language = Lan // handlebar templates for the given language const openApi = getOpenApiSpec(inputPath); const openApiVersion = getOpenApiVersion(openApi); - const templates = readHandlebarsTemplates(language); + const templates = readHandlebarsTemplates(); - switch (language) { - case Language.JAVASCRIPT: - case Language.TYPESCRIPT: - // Generate and write version 2 client - if (openApiVersion === OpenApiVersion.V2) { - const clientV2 = parseV2(openApi); - writeClient(clientV2, language, httpClient, templates, outputPath); - } + switch (openApiVersion) { + case OpenApiVersion.V2: + const clientV2 = parseV2(openApi); + writeClient(clientV2, httpClient, templates, outputPath); + break; - // Generate and write version 3 client - if (openApiVersion === OpenApiVersion.V3) { - const clientV3 = parseV3(openApi); - writeClient(clientV3, language, httpClient, templates, outputPath); - } + case OpenApiVersion.V3: + const clientV3 = parseV3(openApi); + writeClient(clientV3, httpClient, templates, outputPath); + break; } } catch (e) { console.error(e); diff --git a/src/templates/typescript/core/ApiError.ts b/src/templates/core/ApiError.ts similarity index 100% rename from src/templates/typescript/core/ApiError.ts rename to src/templates/core/ApiError.ts diff --git a/src/templates/typescript/core/Definition.ts b/src/templates/core/Definition.ts similarity index 100% rename from src/templates/typescript/core/Definition.ts rename to src/templates/core/Definition.ts diff --git a/src/templates/typescript/core/OpenAPI.hbs b/src/templates/core/OpenAPI.hbs similarity index 100% rename from src/templates/typescript/core/OpenAPI.hbs rename to src/templates/core/OpenAPI.hbs diff --git a/src/templates/typescript/core/RequestOptions.ts b/src/templates/core/RequestOptions.ts similarity index 100% rename from src/templates/typescript/core/RequestOptions.ts rename to src/templates/core/RequestOptions.ts diff --git a/src/templates/typescript/core/Result.ts b/src/templates/core/Result.ts similarity index 100% rename from src/templates/typescript/core/Result.ts rename to src/templates/core/Result.ts diff --git a/src/templates/typescript/core/getFormData.ts b/src/templates/core/getFormData.ts similarity index 100% rename from src/templates/typescript/core/getFormData.ts rename to src/templates/core/getFormData.ts diff --git a/src/templates/typescript/core/getQueryString.ts b/src/templates/core/getQueryString.ts similarity index 100% rename from src/templates/typescript/core/getQueryString.ts rename to src/templates/core/getQueryString.ts diff --git a/src/templates/core/getSchema.ts b/src/templates/core/getSchema.ts new file mode 100644 index 00000000..12bc66ad --- /dev/null +++ b/src/templates/core/getSchema.ts @@ -0,0 +1,17 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +/* prettier-ignore */ + +import * as schemas from '../schemas'; + +/** + * Get a schema object for a given model name. + * @param model The model name to return the schema from. + */ +export function getSchema(model: K) { + if (schemas.hasOwnProperty(model)) { + return schemas[model]; + } + return null; +} diff --git a/src/templates/typescript/core/isSuccess.ts b/src/templates/core/isSuccess.ts similarity index 100% rename from src/templates/typescript/core/isSuccess.ts rename to src/templates/core/isSuccess.ts diff --git a/src/templates/typescript/core/request.ts b/src/templates/core/request.ts similarity index 100% rename from src/templates/typescript/core/request.ts rename to src/templates/core/request.ts diff --git a/src/templates/typescript/core/requestUsingFetch.ts b/src/templates/core/requestUsingFetch.ts similarity index 100% rename from src/templates/typescript/core/requestUsingFetch.ts rename to src/templates/core/requestUsingFetch.ts diff --git a/src/templates/typescript/core/requestUsingXHR.ts b/src/templates/core/requestUsingXHR.ts similarity index 100% rename from src/templates/typescript/core/requestUsingXHR.ts rename to src/templates/core/requestUsingXHR.ts diff --git a/src/templates/index.ts b/src/templates/index.ts new file mode 100644 index 00000000..8c7053c5 --- /dev/null +++ b/src/templates/index.ts @@ -0,0 +1,11 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +/* prettier-ignore */ + +export { ApiError } from './core/ApiError'; +export { getSchema } from './core/getSchema'; +export { isSuccess } from './core/isSuccess'; +export { OpenAPI } from './core/OpenAPI'; +export * from './models/'; +export * from './services/'; diff --git a/src/templates/javascript/core/ApiError.js b/src/templates/javascript/core/ApiError.js deleted file mode 100644 index 0f732db1..00000000 --- a/src/templates/javascript/core/ApiError.js +++ /dev/null @@ -1,54 +0,0 @@ -'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -import { isSuccess } from "./isSuccess"; - -export class ApiError extends Error { - - constructor(result, message) { - super(message); - - this.url = result.url; - this.status = result.status; - this.statusText = result.statusText; - this.body = result.body; - } -} - -(function (ApiError) { - let Message; - (function (Message) { - Message.BAD_REQUEST = 'Bad Request'; - Message.UNAUTHORIZED = 'Unauthorized'; - Message.FORBIDDEN = 'Forbidden'; - Message.NOT_FOUND = 'Not Found'; - Message.INTERNAL_SERVER_ERROR = 'Internal Server Error'; - Message.BAD_GATEWAY = 'Bad Gateway'; - Message.SERVICE_UNAVAILABLE = 'Service Unavailable'; - Message.GENERIC_ERROR = 'Generic Error'; - })(Message = ApiError.Message || (ApiError.Message = {})); -})(ApiError || (ApiError = {})); - -/** - * Catch common errors (based on status code). - * @param result - */ -export function catchGenericError(result) { - - switch (result.status) { - case 400: throw new ApiError(result, ApiError.Message.BAD_REQUEST); - case 401: throw new ApiError(result, ApiError.Message.UNAUTHORIZED); - case 403: throw new ApiError(result, ApiError.Message.FORBIDDEN); - case 404: throw new ApiError(result, ApiError.Message.NOT_FOUND); - case 500: throw new ApiError(result, ApiError.Message.INTERNAL_SERVER_ERROR); - case 502: throw new ApiError(result, ApiError.Message.BAD_GATEWAY); - case 503: throw new ApiError(result, ApiError.Message.SERVICE_UNAVAILABLE); - } - - if (!isSuccess(result.status)) { - throw new ApiError(result, ApiError.Message.GENERIC_ERROR); - } -} diff --git a/src/templates/javascript/core/OpenAPI.hbs b/src/templates/javascript/core/OpenAPI.hbs deleted file mode 100644 index f63192e2..00000000 --- a/src/templates/javascript/core/OpenAPI.hbs +++ /dev/null @@ -1,13 +0,0 @@ -'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -export let OpenAPI; -(function (OpenAPI) { - OpenAPI.BASE = '{{{server}}}'; - OpenAPI.VERSION = '{{{version}}}'; - OpenAPI.CLIENT = '{{{httpClient}}}'; - OpenAPI.TOKEN = ''; -})(OpenAPI || (OpenAPI = {})); diff --git a/src/templates/javascript/core/getFormData.js b/src/templates/javascript/core/getFormData.js deleted file mode 100644 index bbda60e7..00000000 --- a/src/templates/javascript/core/getFormData.js +++ /dev/null @@ -1,23 +0,0 @@ -'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -/** - * Get FormData from object. This method is needed to upload - * multipart form data to the REST API. - * @param params Key value based object. - */ -export function getFormData(params) { - const formData = new FormData(); - for (const key in params) { - if (typeof params[key] !== 'undefined') { - const value = params[key]; - if (value !== undefined && value !== null) { - formData.append(key, value); - } - } - } - return formData; -} diff --git a/src/templates/javascript/core/getQueryString.js b/src/templates/javascript/core/getQueryString.js deleted file mode 100644 index cc01b22a..00000000 --- a/src/templates/javascript/core/getQueryString.js +++ /dev/null @@ -1,32 +0,0 @@ -'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -/** - * Get query string from query parameters object. This method also - * supports multi-value items by creating a key for each item. - * @param params Key value based object. - */ -export function getQueryString(params) { - const qs = []; - for (const key in params) { - if (typeof params[key] !== 'undefined') { - const value = params[key]; - if (value !== undefined && value !== null) { - if (Array.isArray(value)) { - value.forEach(value => { - qs.push(`${encodeURIComponent(key)}=${encodeURIComponent(String(value))}`); - }); - } else { - qs.push(`${encodeURIComponent(key)}=${encodeURIComponent(String(value))}`); - } - } - } - } - if (qs.length > 0) { - return `?${qs.join('&')}`; - } - return ''; -} diff --git a/src/templates/javascript/core/isSuccess.js b/src/templates/javascript/core/isSuccess.js deleted file mode 100644 index 68f7b977..00000000 --- a/src/templates/javascript/core/isSuccess.js +++ /dev/null @@ -1,13 +0,0 @@ -'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -/** - * Check success response code. - * @param status Status code - */ -export function isSuccess(status) { - return status >= 200 && status < 300; -} diff --git a/src/templates/javascript/core/request.js b/src/templates/javascript/core/request.js deleted file mode 100644 index d9176ee1..00000000 --- a/src/templates/javascript/core/request.js +++ /dev/null @@ -1,80 +0,0 @@ -'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -import { getFormData } from './getFormData'; -import { getQueryString } from './getQueryString'; -import { OpenAPI } from './OpenAPI'; -import { requestUsingFetch } from './requestUsingFetch'; -import { requestUsingXHR } from './requestUsingXHR'; - -/** - * Create the request. - * @param options Request method options. - * @returns Result object (see above) - */ -export async function request(options) { - - // Create the request URL - let url = `${OpenAPI.BASE}${options.path}`; - - // Create request headers - const headers = new Headers({ - ...options.headers, - Accept: 'application/json', - }); - - // Create request settings - const request = { - headers, - method: options.method, - credentials: 'same-origin', - }; - - // If we have a bearer token then we set the authentication header. - if (OpenAPI.TOKEN !== null && OpenAPI.TOKEN !== '') { - headers.append('Authorization', `Bearer ${OpenAPI.TOKEN}`); - } - - // Add the query parameters (if defined). - if (options.query) { - url += getQueryString(options.query); - } - - // Append formData as body - if (options.formData) { - request.body = getFormData(options.formData); - } else if (options.body) { - - // If this is blob data, then pass it directly to the body and set content type. - // Otherwise we just convert request data to JSON string (needed for fetch api) - if (options.body instanceof Blob) { - request.body = options.body; - if (options.body.type) { - headers.append('Content-Type', options.body.type); - } - } else { - request.body = JSON.stringify(options.body); - headers.append('Content-Type', 'application/json'); - } - } - - try { - switch (OpenAPI.CLIENT) { - case 'xhr': - return await requestUsingXHR(url, request); - default: - return await requestUsingFetch(url, request); - } - } catch (error) { - return { - url, - ok: false, - status: 0, - statusText: '', - body: error - }; - } -} diff --git a/src/templates/javascript/core/requestUsingFetch.js b/src/templates/javascript/core/requestUsingFetch.js deleted file mode 100644 index 632d36b4..00000000 --- a/src/templates/javascript/core/requestUsingFetch.js +++ /dev/null @@ -1,49 +0,0 @@ -'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -/** - * Request content using the new Fetch API. This is the default API that is used and - * is create for all JSON, XML and text objects. However it is limited to UTF-8. - * This is a problem for some of the Docs content, since that requires UTF-16! - * @param url The url to request. - * @param request The request object, containing method, headers, body, etc. - */ -export async function requestUsingFetch(url, request) { - - // Fetch response using fetch API. - const response = await fetch(url, request); - - // Create result object. - const result = { - url, - ok: response.ok, - status: response.status, - statusText: response.statusText, - body: null, - }; - - // Try to parse the content for any response status code. - // We check the "Content-Type" header to see if we need to parse the - // content as json or as plain text. - const contentType = response.headers.get('Content-Type'); - if (contentType) { - switch (contentType.toLowerCase()) { - case 'application/json': - case 'application/json; charset=utf-8': - result.body = await response.json(); - break; - - case 'text/plain': - case 'text/xml': - case 'text/xml; charset=utf-8': - case 'text/xml; charset=utf-16': - result.body = await response.text(); - break; - } - } - - return result; -} diff --git a/src/templates/javascript/core/requestUsingXHR.js b/src/templates/javascript/core/requestUsingXHR.js deleted file mode 100644 index 8515bae1..00000000 --- a/src/templates/javascript/core/requestUsingXHR.js +++ /dev/null @@ -1,72 +0,0 @@ -'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -import { isSuccess } from './isSuccess'; - -/** - * Request content using the new legacy XMLHttpRequest API. This method is useful - * when we want to request UTF-16 content, since it natively supports loading UTF-16. - * We could do the same with the Fetch API, but then we will need to convert the - * content using JavaScript... And that is very very slow. - * @param url The url to request. - * @param request The request object, containing method, headers, body, etc. - */ -export async function requestUsingXHR(url, request) { - return new Promise(resolve => { - const xhr = new XMLHttpRequest(); - - // Open the request, remember to do this before adding any headers, - // because the request needs to be initialized! - xhr.open(request.method, url, true); - - // Add the headers (required when dealing with JSON) - const headers = request.headers as Headers; - headers.forEach((value, key) => { - xhr.setRequestHeader(key, value); - }); - - // Register the readystate handler, this will fire when the request is done. - xhr.onreadystatechange = () => { - if (xhr.readyState === XMLHttpRequest.DONE) { - - // Create result object. - const result = { - url, - ok: isSuccess(xhr.status), - status: xhr.status, - statusText: xhr.statusText, - body: null, - }; - - // Try to parse the content for any response status code. - // We check the "Content-Type" header to see if we need to parse the - // content as json or as plain text. - const contentType = xhr.getResponseHeader('Content-Type'); - if (contentType) { - switch (contentType.toLowerCase()) { - case 'application/json': - case 'application/json; charset=utf-8': - result.body = JSON.parse(xhr.responseText); - break; - - case 'text/plain': - case 'text/xml': - case 'text/xml; charset=utf-8': - case 'text/xml; charset=utf-16': - result.body = xhr.responseText; - break; - } - } - - // Done! - resolve(result); - } - }; - - // Start the request! - xhr.send(request.body); - }); -} diff --git a/src/templates/javascript/index.hbs b/src/templates/javascript/index.hbs deleted file mode 100644 index 00aa5b5c..00000000 --- a/src/templates/javascript/index.hbs +++ /dev/null @@ -1,40 +0,0 @@ -'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -export { ApiError } from './core/ApiError'; -export { isSuccess } from './core/isSuccess'; -export { OpenAPI } from './core/OpenAPI'; -{{#if models}} - -{{#each models}} -import { {{{this}}} } from './models/{{{this}}}'; -{{/each}} - -{{#each models}} -export { {{{this}}} }; -{{/each}} -{{/if}} -{{#if services}} - -{{#each services}} -export { {{{this}}} } from './services/{{{this}}}'; -{{/each}} -{{/if}} -{{#if models}} - -const definitions = { -{{#each models}} - '{{{this}}}': {{{this}}}.definition, -{{/each}} -}; - -export function getDefinition(definition) { - if (definitions.hasOwnProperty(definition)) { - return definitions[definition]; - } - return null; -} -{{/if}} diff --git a/src/templates/javascript/model.hbs b/src/templates/javascript/model.hbs deleted file mode 100644 index 4bbfae1a..00000000 --- a/src/templates/javascript/model.hbs +++ /dev/null @@ -1,13 +0,0 @@ -'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -{{#equals export 'interface'}} -{{>exportInterface}} -{{else equals export 'enum'}} -{{>exportEnum}} -{{else}} -{{>exportGeneric}} -{{/equals}} diff --git a/src/templates/javascript/models/Dictionary.js b/src/templates/javascript/models/Dictionary.js deleted file mode 100644 index 9634979d..00000000 --- a/src/templates/javascript/models/Dictionary.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -export let Dictionary; -(function (Dictionary) { - - Dictionary.definition = { - type: 'Dictionary' - }; - -})(Dictionary || (Dictionary = {})); diff --git a/src/templates/javascript/partials/definitionInterface.hbs b/src/templates/javascript/partials/definitionInterface.hbs deleted file mode 100644 index da00a3b6..00000000 --- a/src/templates/javascript/partials/definitionInterface.hbs +++ /dev/null @@ -1,23 +0,0 @@ -{ - properties: { -{{#if extends}} - {{#each extends}} - ...{{{this}}}.definition.properties, - {{/each}} -{{/if}} -{{#if properties}} - {{#each properties}} - {{{name}}}: {{>definition}}, - {{/each}} -{{/if}} - }, -{{#if isReadOnly~}} - isReadOnly: {{{isReadOnly}}}, -{{/if}} -{{#if isRequired~}} - isRequired: {{{isRequired}}}, -{{/if}} -{{#if isNullable~}} - isNullable: {{{isNullable}}}, -{{/if}} -} diff --git a/src/templates/javascript/partials/exportEnum.hbs b/src/templates/javascript/partials/exportEnum.hbs deleted file mode 100644 index 394c47df..00000000 --- a/src/templates/javascript/partials/exportEnum.hbs +++ /dev/null @@ -1,17 +0,0 @@ -{{#if description}} -/** - * {{{description}}} - */ -{{/if}} -export let {{{name}}}; -(function ({{{name}}}) { - - {{#if enum}} - {{#each enum}} - {{{../name}}}.{{{name}}} = {{{value}}}; - {{/each}} - - {{/if}} - {{{name}}}.definition = {{>definition}}; - -})({{{name}}} || ({{{name}}} = {})); diff --git a/src/templates/javascript/partials/exportGeneric.hbs b/src/templates/javascript/partials/exportGeneric.hbs deleted file mode 100644 index 8dd1945f..00000000 --- a/src/templates/javascript/partials/exportGeneric.hbs +++ /dev/null @@ -1,11 +0,0 @@ -{{#if description}} -/** - * {{{description}}} - */ -{{/if}} -export let {{{name}}}; -(function ({{{name}}}) { - - {{{name}}}.definition = {{>definition}}; - -})({{{name}}} || ({{{name}}} = {})); diff --git a/src/templates/javascript/partials/exportInterface.hbs b/src/templates/javascript/partials/exportInterface.hbs deleted file mode 100644 index d4cdb529..00000000 --- a/src/templates/javascript/partials/exportInterface.hbs +++ /dev/null @@ -1,26 +0,0 @@ -{{#if description}} -/** - * {{{description}}} - */ -{{/if}} -export let {{{name}}}; -(function ({{{name}}}) { - - {{#if enums}} - {{#each enums}} - {{#if description}} - /** - * {{{description}}} - */ - {{/if}} - {{{../name}}}.{{{name}}} = { - {{#each enum}} - {{{name}}}: {{{value}}}, - {{/each}} - }; - - {{/each}} - {{/if}} - {{{name}}}.definition = {{>definition}}; - -})({{{name}}} || ({{{name}}} = {})); diff --git a/src/templates/javascript/service.hbs b/src/templates/javascript/service.hbs deleted file mode 100644 index 68199d82..00000000 --- a/src/templates/javascript/service.hbs +++ /dev/null @@ -1,92 +0,0 @@ -'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -import { ApiError, catchGenericError } from '../core/ApiError'; -import { request as $request } from '../core/request'; -import { OpenAPI } from '../core/OpenAPI'; - -export class {{{name}}} { - - {{#each operations}} - /** - {{#if deprecated}} - * @deprecated - {{/if}} - {{#if summary}} - * {{{summary}}} - {{/if}} - {{#if description}} - * {{{description}}} - {{/if}} - {{#if parameters}} - {{#each parameters}} - * @param {{{name}}} {{{description}}} - {{/each}} - {{/if}} - {{#each results}} - * @result {{{type}}} {{{description}}} - {{/each}} - * @throws ApiError - */ - static async {{{name}}}({{#if parameters}} - {{#each parameters}} - {{{name}}}{{#if default}} = {{{default}}}{{/if}}, - {{/each}} - {{/if}}) { - - const result = await $request({ - method: '{{{method}}}', - path: `{{{path}}}`, - {{#if parametersCookie~}} - cookies: { - {{#each parametersCookie}} - '{{{prop}}}': {{{name}}}, - {{/each}} - }, - {{/if}} - {{#if parametersHeader~}} - headers: { - {{#each parametersHeader}} - '{{{prop}}}': {{{name}}}, - {{/each}} - }, - {{/if}} - {{#if parametersQuery~}} - query: { - {{#each parametersQuery}} - '{{{prop}}}': {{{name}}}, - {{/each}} - }, - {{/if}} - {{#if parametersForm~}} - formData: { - {{#each parametersForm}} - '{{{prop}}}': {{{name}}}, - {{/each}} - }, - {{/if}} - {{#if parametersBody~}} - body: {{{parametersBody.name}}}, - {{/if}} - }); - {{#if errors}} - - if (!result.ok) { - switch (result.status) { - {{#each errors}} - case {{{code}}}: throw new ApiError(result, `{{{description}}}`); - {{/each}} - } - } - {{/if}} - - catchGenericError(result); - - return result.body; - } - - {{/each}} -} diff --git a/src/templates/typescript/models/Dictionary.ts b/src/templates/models/Dictionary.ts similarity index 59% rename from src/templates/typescript/models/Dictionary.ts rename to src/templates/models/Dictionary.ts index 318e6bba..af1afa36 100644 --- a/src/templates/typescript/models/Dictionary.ts +++ b/src/templates/models/Dictionary.ts @@ -6,11 +6,3 @@ export type Dictionary = { [key: string]: T; } - -export namespace Dictionary { - - export const definition = { - type: 'Dictionary' - }; - -} diff --git a/src/templates/models/index.hbs b/src/templates/models/index.hbs new file mode 100644 index 00000000..da6c7b7f --- /dev/null +++ b/src/templates/models/index.hbs @@ -0,0 +1,8 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +/* prettier-ignore */ + +{{#each models}} +export { {{{this}}} } from './{{{this}}}'; +{{/each}} diff --git a/src/templates/typescript/model.hbs b/src/templates/models/model.hbs similarity index 84% rename from src/templates/typescript/model.hbs rename to src/templates/models/model.hbs index bb9382c5..098ad7ff 100644 --- a/src/templates/typescript/model.hbs +++ b/src/templates/models/model.hbs @@ -5,7 +5,7 @@ {{#if imports}} {{#each imports}} -import { {{{this}}} } from '../models/{{{this}}}'; +import { {{{this}}} } from './{{{this}}}'; {{/each}} {{/if}} diff --git a/src/templates/typescript/partials/exportEnum.hbs b/src/templates/partials/exportEnum.hbs similarity index 64% rename from src/templates/typescript/partials/exportEnum.hbs rename to src/templates/partials/exportEnum.hbs index a9f5837f..c08f2bc8 100644 --- a/src/templates/typescript/partials/exportEnum.hbs +++ b/src/templates/partials/exportEnum.hbs @@ -8,9 +8,3 @@ export enum {{{name}}} { {{{name}}} = {{{value}}}, {{/each}} } - -export namespace {{{name}}} { - - export const definition = {{>definition}}; - -} diff --git a/src/templates/typescript/partials/exportGeneric.hbs b/src/templates/partials/exportGeneric.hbs similarity index 53% rename from src/templates/typescript/partials/exportGeneric.hbs rename to src/templates/partials/exportGeneric.hbs index 78ce1de2..d4d5b83b 100644 --- a/src/templates/typescript/partials/exportGeneric.hbs +++ b/src/templates/partials/exportGeneric.hbs @@ -4,9 +4,3 @@ */ {{/if}} export type {{{name}}} = {{>type}}; - -export namespace {{{name}}} { - - export const definition = {{>definition}}; - -} diff --git a/src/templates/typescript/partials/exportInterface.hbs b/src/templates/partials/exportInterface.hbs similarity index 87% rename from src/templates/typescript/partials/exportInterface.hbs rename to src/templates/partials/exportInterface.hbs index db3bfddf..c0a88b2d 100644 --- a/src/templates/typescript/partials/exportInterface.hbs +++ b/src/templates/partials/exportInterface.hbs @@ -13,10 +13,10 @@ export interface {{{name}}}{{>extends}} { {{>isReadOnly}}{{{name}}}{{>isRequired}}: {{>type parent=../name}}; {{/each}} } +{{#if enums}} export namespace {{{name}}} { - {{#if enums}} {{#each enums}} {{#if description}} /** @@ -30,7 +30,6 @@ export namespace {{{name}}} { } {{/each}} - {{/if}} - export const definition = {{>definition}}; } +{{/if}} diff --git a/src/templates/typescript/partials/extends.hbs b/src/templates/partials/extends.hbs similarity index 100% rename from src/templates/typescript/partials/extends.hbs rename to src/templates/partials/extends.hbs diff --git a/src/templates/typescript/partials/isNullable.hbs b/src/templates/partials/isNullable.hbs similarity index 100% rename from src/templates/typescript/partials/isNullable.hbs rename to src/templates/partials/isNullable.hbs diff --git a/src/templates/typescript/partials/isReadOnly.hbs b/src/templates/partials/isReadOnly.hbs similarity index 100% rename from src/templates/typescript/partials/isReadOnly.hbs rename to src/templates/partials/isReadOnly.hbs diff --git a/src/templates/typescript/partials/isRequired.hbs b/src/templates/partials/isRequired.hbs similarity index 100% rename from src/templates/typescript/partials/isRequired.hbs rename to src/templates/partials/isRequired.hbs diff --git a/src/templates/typescript/partials/result.hbs b/src/templates/partials/result.hbs similarity index 100% rename from src/templates/typescript/partials/result.hbs rename to src/templates/partials/result.hbs diff --git a/src/templates/javascript/partials/definition.hbs b/src/templates/partials/schema.hbs similarity index 56% rename from src/templates/javascript/partials/definition.hbs rename to src/templates/partials/schema.hbs index 9b987f97..68194de6 100644 --- a/src/templates/javascript/partials/definition.hbs +++ b/src/templates/partials/schema.hbs @@ -1,11 +1,11 @@ {{#equals export 'interface'}} -{{>definitionInterface}} +{{>schemaInterface}} {{else equals export 'enum'}} -{{>definitionEnum}} +{{>schemaEnum}} {{else equals export 'array'}} -{{>definitionArray}} +{{>schemaArray}} {{else equals export 'dictionary'}} -{{>definitionDictionary}} +{{>schemaDictionary}} {{else}} -{{>definitionGeneric}} +{{>schemaGeneric}} {{/equals}} diff --git a/src/templates/javascript/partials/definitionArray.hbs b/src/templates/partials/schemaArray.hbs similarity index 100% rename from src/templates/javascript/partials/definitionArray.hbs rename to src/templates/partials/schemaArray.hbs diff --git a/src/templates/javascript/partials/definitionDictionary.hbs b/src/templates/partials/schemaDictionary.hbs similarity index 100% rename from src/templates/javascript/partials/definitionDictionary.hbs rename to src/templates/partials/schemaDictionary.hbs diff --git a/src/templates/javascript/partials/definitionEnum.hbs b/src/templates/partials/schemaEnum.hbs similarity index 100% rename from src/templates/javascript/partials/definitionEnum.hbs rename to src/templates/partials/schemaEnum.hbs diff --git a/src/templates/javascript/partials/definitionGeneric.hbs b/src/templates/partials/schemaGeneric.hbs similarity index 100% rename from src/templates/javascript/partials/definitionGeneric.hbs rename to src/templates/partials/schemaGeneric.hbs diff --git a/src/templates/typescript/partials/definitionInterface.hbs b/src/templates/partials/schemaInterface.hbs similarity index 80% rename from src/templates/typescript/partials/definitionInterface.hbs rename to src/templates/partials/schemaInterface.hbs index da00a3b6..3cb486b1 100644 --- a/src/templates/typescript/partials/definitionInterface.hbs +++ b/src/templates/partials/schemaInterface.hbs @@ -2,12 +2,12 @@ properties: { {{#if extends}} {{#each extends}} - ...{{{this}}}.definition.properties, + ...${{{this}}}.properties, {{/each}} {{/if}} {{#if properties}} {{#each properties}} - {{{name}}}: {{>definition}}, + {{{name}}}: {{>schema}}, {{/each}} {{/if}} }, diff --git a/src/templates/typescript/partials/type.hbs b/src/templates/partials/type.hbs similarity index 100% rename from src/templates/typescript/partials/type.hbs rename to src/templates/partials/type.hbs diff --git a/src/templates/typescript/partials/typeArray.hbs b/src/templates/partials/typeArray.hbs similarity index 100% rename from src/templates/typescript/partials/typeArray.hbs rename to src/templates/partials/typeArray.hbs diff --git a/src/templates/typescript/partials/typeDictionary.hbs b/src/templates/partials/typeDictionary.hbs similarity index 100% rename from src/templates/typescript/partials/typeDictionary.hbs rename to src/templates/partials/typeDictionary.hbs diff --git a/src/templates/typescript/partials/typeEnum.hbs b/src/templates/partials/typeEnum.hbs similarity index 100% rename from src/templates/typescript/partials/typeEnum.hbs rename to src/templates/partials/typeEnum.hbs diff --git a/src/templates/typescript/partials/typeGeneric.hbs b/src/templates/partials/typeGeneric.hbs similarity index 100% rename from src/templates/typescript/partials/typeGeneric.hbs rename to src/templates/partials/typeGeneric.hbs diff --git a/src/templates/typescript/partials/typeInterface.hbs b/src/templates/partials/typeInterface.hbs similarity index 100% rename from src/templates/typescript/partials/typeInterface.hbs rename to src/templates/partials/typeInterface.hbs diff --git a/src/templates/typescript/partials/typeReference.hbs b/src/templates/partials/typeReference.hbs similarity index 100% rename from src/templates/typescript/partials/typeReference.hbs rename to src/templates/partials/typeReference.hbs diff --git a/src/templates/schemas/$Dictionary.ts b/src/templates/schemas/$Dictionary.ts new file mode 100644 index 00000000..e0c607bb --- /dev/null +++ b/src/templates/schemas/$Dictionary.ts @@ -0,0 +1,8 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +/* prettier-ignore */ + +export const $Dictionary = { + type: 'Dictionary' +}; diff --git a/src/templates/schemas/index.hbs b/src/templates/schemas/index.hbs new file mode 100644 index 00000000..74d9d18a --- /dev/null +++ b/src/templates/schemas/index.hbs @@ -0,0 +1,8 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +/* prettier-ignore */ + +{{#each schemas}} +export { ${{{this}}} as {{{this}}} } from './${{{this}}}'; +{{/each}} diff --git a/src/templates/schemas/schema.hbs b/src/templates/schemas/schema.hbs new file mode 100644 index 00000000..544f0070 --- /dev/null +++ b/src/templates/schemas/schema.hbs @@ -0,0 +1,12 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +/* prettier-ignore */ + +{{#if extends}} +{{#each extends}} +import { ${{{this}}} } from './${{{this}}}'; +{{/each}} +{{/if}} + +export const ${{{name}}} = {{>schema}}; diff --git a/src/templates/services/index.hbs b/src/templates/services/index.hbs new file mode 100644 index 00000000..8c48a42e --- /dev/null +++ b/src/templates/services/index.hbs @@ -0,0 +1,8 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +/* prettier-ignore */ + +{{#each services}} +export { {{{this}}} } from './{{{this}}}'; +{{/each}} diff --git a/src/templates/typescript/service.hbs b/src/templates/services/service.hbs similarity index 100% rename from src/templates/typescript/service.hbs rename to src/templates/services/service.hbs diff --git a/src/templates/typescript/index.hbs b/src/templates/typescript/index.hbs deleted file mode 100644 index 04222b61..00000000 --- a/src/templates/typescript/index.hbs +++ /dev/null @@ -1,42 +0,0 @@ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ -/* prettier-ignore */ - -export { ApiError } from './core/ApiError'; -export { isSuccess } from './core/isSuccess'; -export { OpenAPI } from './core/OpenAPI'; -{{#if models}} - -{{#each models}} -import { {{{this}}} } from './models/{{{this}}}'; -{{/each}} -{{/if}} -{{#if models}} - -{{#each models}} -export { {{{this}}} }; -{{/each}} -{{/if}} -{{#if services}} - -{{#each services}} -export { {{{this}}} } from './services/{{{this}}}'; -{{/each}} -{{/if}} -{{#if models}} - -const definitions = { -{{#each models}} - '{{{this}}}': {{{this}}}.definition, -{{/each}} -}; - -export function getDefinition(definition: K) { - if (definitions.hasOwnProperty(definition)) { - return definitions[definition]; - } - return null; -} - -{{/if}} diff --git a/src/templates/typescript/partials/definition.hbs b/src/templates/typescript/partials/definition.hbs deleted file mode 100644 index 9b987f97..00000000 --- a/src/templates/typescript/partials/definition.hbs +++ /dev/null @@ -1,11 +0,0 @@ -{{#equals export 'interface'}} -{{>definitionInterface}} -{{else equals export 'enum'}} -{{>definitionEnum}} -{{else equals export 'array'}} -{{>definitionArray}} -{{else equals export 'dictionary'}} -{{>definitionDictionary}} -{{else}} -{{>definitionGeneric}} -{{/equals}} diff --git a/src/templates/typescript/partials/definitionArray.hbs b/src/templates/typescript/partials/definitionArray.hbs deleted file mode 100644 index 31a75ae0..00000000 --- a/src/templates/typescript/partials/definitionArray.hbs +++ /dev/null @@ -1,12 +0,0 @@ -{ - type: 'Array', -{{#if isReadOnly~}} - isReadOnly: {{{isReadOnly}}}, -{{/if}} -{{#if isRequired~}} - isRequired: {{{isRequired}}}, -{{/if}} -{{#if isNullable~}} - isNullable: {{{isNullable}}}, -{{/if}} -} diff --git a/src/templates/typescript/partials/definitionDictionary.hbs b/src/templates/typescript/partials/definitionDictionary.hbs deleted file mode 100644 index 0c159f34..00000000 --- a/src/templates/typescript/partials/definitionDictionary.hbs +++ /dev/null @@ -1,12 +0,0 @@ -{ - type: 'Dictionary', -{{#if isReadOnly~}} - isReadOnly: {{{isReadOnly}}}, -{{/if}} -{{#if isRequired~}} - isRequired: {{{isRequired}}}, -{{/if}} -{{#if isNullable~}} - isNullable: {{{isNullable}}}, -{{/if}} -} diff --git a/src/templates/typescript/partials/definitionEnum.hbs b/src/templates/typescript/partials/definitionEnum.hbs deleted file mode 100644 index 9a4e7ac3..00000000 --- a/src/templates/typescript/partials/definitionEnum.hbs +++ /dev/null @@ -1,12 +0,0 @@ -{ - type: 'Enum', -{{#if isReadOnly~}} - isReadOnly: {{{isReadOnly}}}, -{{/if}} -{{#if isRequired~}} - isRequired: {{{isRequired}}}, -{{/if}} -{{#if isNullable~}} - isNullable: {{{isNullable}}}, -{{/if}} -} diff --git a/src/templates/typescript/partials/definitionGeneric.hbs b/src/templates/typescript/partials/definitionGeneric.hbs deleted file mode 100644 index dd2a60dd..00000000 --- a/src/templates/typescript/partials/definitionGeneric.hbs +++ /dev/null @@ -1,56 +0,0 @@ -{ -{{#if type~}} - type: '{{{base}}}', -{{/if}} -{{#if isReadOnly~}} - isReadOnly: {{{isReadOnly}}}, -{{/if}} -{{#if isRequired~}} - isRequired: {{{isRequired}}}, -{{/if}} -{{#if isNullable~}} - isNullable: {{{isNullable}}}, -{{/if}} -{{#if format~}} - format: '{{{format}}}', -{{/if}} -{{#if maximum~}} - maximum: {{{maximum}}}, -{{/if}} -{{#if exclusiveMaximum~}} - exclusiveMaximum: {{{exclusiveMaximum}}}, -{{/if}} -{{#if minimum~}} - minimum: {{{minimum}}}, -{{/if}} -{{#if exclusiveMinimum~}} - exclusiveMinimum: {{{exclusiveMinimum}}}, -{{/if}} -{{#if multipleOf~}} - multipleOf: {{{multipleOf}}}, -{{/if}} -{{#if maxLength~}} - maxLength: {{{maxLength}}}, -{{/if}} -{{#if minLength~}} - minLength: {{{minLength}}}, -{{/if}} -{{#if pattern~}} - pattern: '{{{pattern}}}', -{{/if}} -{{#if maxItems~}} - maxItems: {{{maxItems}}}, -{{/if}} -{{#if minItems~}} - minItems: {{{minItems}}}, -{{/if}} -{{#if uniqueItems~}} - uniqueItems: {{{uniqueItems}}}, -{{/if}} -{{#if maxProperties~}} - maxProperties: {{{maxProperties}}}, -{{/if}} -{{#if minProperties~}} - minProperties: {{{minProperties}}}, -{{/if}} -} diff --git a/src/utils/getFileName.spec.ts b/src/utils/getFileName.spec.ts deleted file mode 100644 index 3f3e8b04..00000000 --- a/src/utils/getFileName.spec.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Language } from '../index'; -import { getFileName } from './getFileName'; - -describe('getFileName', () => { - it('should convert to correct file name', () => { - expect(getFileName('file', Language.TYPESCRIPT)).toEqual('file.ts'); - expect(getFileName('file', Language.JAVASCRIPT)).toEqual('file.js'); - }); -}); diff --git a/src/utils/getFileName.ts b/src/utils/getFileName.ts deleted file mode 100644 index 711c0c06..00000000 --- a/src/utils/getFileName.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { Language } from '../index'; - -/** - * Get the correct file name and extension for a given language. - * @param fileName Any file name. - * @param language Typescript or Javascript. - */ -export function getFileName(fileName: string, language: Language): string { - switch (language) { - case Language.TYPESCRIPT: - return `${fileName}.ts`; - case Language.JAVASCRIPT: - return `${fileName}.js`; - } - return fileName; -} diff --git a/src/utils/getModelNames.spec.ts b/src/utils/getModelNames.spec.ts index eb313e18..478e9248 100644 --- a/src/utils/getModelNames.spec.ts +++ b/src/utils/getModelNames.spec.ts @@ -59,7 +59,7 @@ describe('getModelNames', () => { properties: [], }); - expect(getModelNames([])).toEqual(['Dictionary']); - expect(getModelNames(models)).toEqual(['Dictionary', 'Doe', 'Jane', 'John']); + expect(getModelNames([])).toEqual([]); + expect(getModelNames(models)).toEqual(['Doe', 'Jane', 'John']); }); }); diff --git a/src/utils/getModelNames.ts b/src/utils/getModelNames.ts index c2619ae4..4cc86dfb 100644 --- a/src/utils/getModelNames.ts +++ b/src/utils/getModelNames.ts @@ -3,7 +3,6 @@ import { Model } from '../client/interfaces/Model'; export function getModelNames(models: Model[]): string[] { return models .map(model => model.name) - .concat('Dictionary') .sort((a, b) => { const nameA = a.toLowerCase(); const nameB = b.toLowerCase(); diff --git a/src/utils/readHandlebarsTemplates.spec.ts b/src/utils/readHandlebarsTemplates.spec.ts index 9e034723..0e60c9bf 100644 --- a/src/utils/readHandlebarsTemplates.spec.ts +++ b/src/utils/readHandlebarsTemplates.spec.ts @@ -16,16 +16,18 @@ describe('readHandlebarsTemplates', () => { fsReadFileSync.mockReturnValue('{{{message}}}'); globSync.mockReturnValue([]); - const template = readHandlebarsTemplates(Language.TYPESCRIPT); + const template = readHandlebarsTemplates(); expect(template).toBeDefined(); - expect(template.index).toBeDefined(); expect(template.model).toBeDefined(); + expect(template.models).toBeDefined(); expect(template.service).toBeDefined(); + expect(template.services).toBeDefined(); expect(template.settings).toBeDefined(); - expect(template.index({ message: 'Hello World!' })).toEqual('Hello World!'); expect(template.model({ message: 'Hello World!' })).toEqual('Hello World!'); + expect(template.models({ message: 'Hello World!' })).toEqual('Hello World!'); expect(template.service({ message: 'Hello World!' })).toEqual('Hello World!'); + expect(template.services({ message: 'Hello World!' })).toEqual('Hello World!'); expect(template.settings({ message: 'Hello World!' })).toEqual('Hello World!'); }); }); diff --git a/src/utils/readHandlebarsTemplates.ts b/src/utils/readHandlebarsTemplates.ts index 69868094..cd06667c 100644 --- a/src/utils/readHandlebarsTemplates.ts +++ b/src/utils/readHandlebarsTemplates.ts @@ -1,13 +1,15 @@ import * as Handlebars from 'handlebars'; import * as glob from 'glob'; import * as path from 'path'; -import { Language } from '../index'; import { readHandlebarsTemplate } from './readHandlebarsTemplate'; import { registerHandlebarHelpers } from './registerHandlebarHelpers'; export interface Templates { - index: Handlebars.TemplateDelegate; + models: Handlebars.TemplateDelegate; model: Handlebars.TemplateDelegate; + schemas: Handlebars.TemplateDelegate; + schema: Handlebars.TemplateDelegate; + services: Handlebars.TemplateDelegate; service: Handlebars.TemplateDelegate; settings: Handlebars.TemplateDelegate; } @@ -15,20 +17,22 @@ export interface Templates { /** * Read all the Handlebar templates that we need and return on wrapper object * so we can easily access the templates in out generator / write functions. - * @param language The language we need to generate (Typescript or Javascript). */ -export function readHandlebarsTemplates(language: Language): Templates { +export function readHandlebarsTemplates(): Templates { try { registerHandlebarHelpers(); const templates: Templates = { - index: readHandlebarsTemplate(path.resolve(__dirname, `../../src/templates/${language}/index.hbs`)), - model: readHandlebarsTemplate(path.resolve(__dirname, `../../src/templates/${language}/model.hbs`)), - service: readHandlebarsTemplate(path.resolve(__dirname, `../../src/templates/${language}/service.hbs`)), - settings: readHandlebarsTemplate(path.resolve(__dirname, `../../src/templates/${language}/core/OpenAPI.hbs`)), + models: readHandlebarsTemplate(path.resolve(__dirname, `../../src/templates/models/index.hbs`)), + model: readHandlebarsTemplate(path.resolve(__dirname, `../../src/templates/models/model.hbs`)), + schemas: readHandlebarsTemplate(path.resolve(__dirname, `../../src/templates/schemas/index.hbs`)), + schema: readHandlebarsTemplate(path.resolve(__dirname, `../../src/templates/schemas/schema.hbs`)), + services: readHandlebarsTemplate(path.resolve(__dirname, `../../src/templates/services/index.hbs`)), + service: readHandlebarsTemplate(path.resolve(__dirname, `../../src/templates/services/service.hbs`)), + settings: readHandlebarsTemplate(path.resolve(__dirname, `../../src/templates/core/OpenAPI.hbs`)), }; - const partials = path.resolve(__dirname, `../../src/templates/${language}/partials`); + const partials = path.resolve(__dirname, `../../src/templates//partials`); const partialsFiles = glob.sync('*.hbs', { cwd: partials }); partialsFiles.forEach(partial => { Handlebars.registerPartial(path.basename(partial, '.hbs'), readHandlebarsTemplate(path.resolve(partials, partial))); diff --git a/src/utils/writeClient.spec.ts b/src/utils/writeClient.spec.ts index cf1ac3cf..8b2c98a3 100644 --- a/src/utils/writeClient.spec.ts +++ b/src/utils/writeClient.spec.ts @@ -3,7 +3,7 @@ import * as glob from 'glob'; import * as mkdirp from 'mkdirp'; import * as rimraf from 'rimraf'; import { Client } from '../client/interfaces/Client'; -import { HttpClient, Language } from '../index'; +import { HttpClient } from '../index'; import { Templates } from './readHandlebarsTemplates'; import { writeClient } from './writeClient'; @@ -27,15 +27,18 @@ describe('writeClient', () => { }; const templates: Templates = { - index: () => 'dummy', model: () => 'dummy', + models: () => 'dummy', + schema: () => 'dummy', + schemas: () => 'dummy', service: () => 'dummy', + services: () => 'dummy', settings: () => 'dummy', }; globSync.mockReturnValue([]); - writeClient(client, Language.TYPESCRIPT, HttpClient.FETCH, templates, '/'); + writeClient(client, HttpClient.FETCH, templates, '/'); expect(rimrafSync).toBeCalled(); expect(mkdirpSync).toBeCalled(); diff --git a/src/utils/writeClient.ts b/src/utils/writeClient.ts index b885b934..a8bc1b9c 100644 --- a/src/utils/writeClient.ts +++ b/src/utils/writeClient.ts @@ -4,24 +4,24 @@ import * as mkdirp from 'mkdirp'; import * as path from 'path'; import * as rimraf from 'rimraf'; import { Client } from '../client/interfaces/Client'; -import { HttpClient, Language } from '../index'; +import { HttpClient } from '../index'; import { Templates } from './readHandlebarsTemplates'; -import { writeClientIndex } from './writeClientIndex'; import { writeClientModels } from './writeClientModels'; +import { writeClientSchemas } from './writeClientSchemas'; import { writeClientServices } from './writeClientServices'; import { writeClientSettings } from './writeClientSettings'; /** * Write our OpenAPI client, using the given templates at the given output path. * @param client Client object with all the models, services, etc. - * @param language The language that should be generated (Typescript or Javascript). * @param httpClient The selected httpClient (fetch or XHR). * @param templates Templates wrapper with all loaded Handlebars templates. * @param outputPath */ -export function writeClient(client: Client, language: Language, httpClient: HttpClient, templates: Templates, outputPath: string): void { +export function writeClient(client: Client, httpClient: HttpClient, templates: Templates, outputPath: string): void { const outputPathCore = path.resolve(outputPath, 'core'); const outputPathModels = path.resolve(outputPath, 'models'); + const outputPathSchemas = path.resolve(outputPath, 'schemas'); const outputPathServices = path.resolve(outputPath, 'services'); // Clean output directory @@ -36,14 +36,15 @@ export function writeClient(client: Client, language: Language, httpClient: Http mkdirp.sync(outputPath); mkdirp.sync(outputPathCore); mkdirp.sync(outputPathModels); + mkdirp.sync(outputPathSchemas); mkdirp.sync(outputPathServices); } catch (e) { throw new Error(`Could not create output directories`); } // Copy all support files - const supportFiles = path.resolve(__dirname, `../../src/templates/${language}/`); - const supportFilesList = glob.sync('**/*.{ts,js}', { cwd: supportFiles }); + const supportFiles = path.resolve(__dirname, `../../src/templates/`); + const supportFilesList = glob.sync('**/*.ts', { cwd: supportFiles }); supportFilesList.forEach(file => { fs.copyFileSync( path.resolve(supportFiles, file), // From input path @@ -52,12 +53,8 @@ export function writeClient(client: Client, language: Language, httpClient: Http }); // Write the client files - try { - writeClientSettings(client, language, httpClient, templates, outputPathCore); - writeClientModels(client.models, language, templates, outputPathModels); - writeClientServices(client.services, language, templates, outputPathServices); - writeClientIndex(client, language, templates, outputPath); - } catch (e) { - throw e; - } + writeClientSettings(client, httpClient, templates, outputPathCore); + writeClientModels(client.models, templates, outputPathModels); + writeClientSchemas(client.models, templates, outputPathSchemas); + writeClientServices(client.services, templates, outputPathServices); } diff --git a/src/utils/writeClientIndex.spec.ts b/src/utils/writeClientIndex.spec.ts deleted file mode 100644 index dad99236..00000000 --- a/src/utils/writeClientIndex.spec.ts +++ /dev/null @@ -1,36 +0,0 @@ -import * as fs from 'fs'; -import * as glob from 'glob'; -import { Client } from '../client/interfaces/Client'; -import { Language } from '../index'; -import { Templates } from './readHandlebarsTemplates'; -import { writeClientIndex } from './writeClientIndex'; - -jest.mock('fs'); -jest.mock('glob'); - -const fsWriteFileSync = fs.writeFileSync as jest.MockedFunction; -const globSync = glob.sync as jest.MockedFunction; - -describe('writeClientIndex', () => { - it('should write to filesystem', () => { - const client: Client = { - server: 'http://localhost:8080', - version: '1.0', - models: [], - services: [], - }; - - const templates: Templates = { - index: () => 'dummy', - model: () => 'dummy', - service: () => 'dummy', - settings: () => 'dummy', - }; - - globSync.mockReturnValue([]); - - writeClientIndex(client, Language.TYPESCRIPT, templates, '/'); - - expect(fsWriteFileSync).toBeCalledWith('/index.ts', 'dummy'); - }); -}); diff --git a/src/utils/writeClientIndex.ts b/src/utils/writeClientIndex.ts deleted file mode 100644 index 8c25e60b..00000000 --- a/src/utils/writeClientIndex.ts +++ /dev/null @@ -1,34 +0,0 @@ -import * as fs from 'fs'; -import * as path from 'path'; -import { Client } from '../client/interfaces/Client'; -import { Language } from '../index'; -import { Templates } from './readHandlebarsTemplates'; -import { getFileName } from './getFileName'; -import { getModelNames } from './getModelNames'; -import { getServiceNames } from './getServiceNames'; - -/** - * Generate the OpenAPI client index file using the Handlebar template and write it to disk. - * The index file just contains all the exports you need to use the client as a standalone - * library. But yuo can also import individual models and services directly. - * @param client Client object, containing, models, schemas and services. - * @param language The output language (Typescript or javascript). - * @param templates The loaded handlebar templates. - * @param outputPath - */ -export function writeClientIndex(client: Client, language: Language, templates: Templates, outputPath: string): void { - const fileName = getFileName('index', language); - try { - fs.writeFileSync( - path.resolve(outputPath, fileName), - templates.index({ - server: client.server, - version: client.version, - models: getModelNames(client.models), - services: getServiceNames(client.services), - }) - ); - } catch (e) { - throw new Error(`Could not write index: "${fileName}"`); - } -} diff --git a/src/utils/writeClientModels.spec.ts b/src/utils/writeClientModels.spec.ts index 133a2930..b3882420 100644 --- a/src/utils/writeClientModels.spec.ts +++ b/src/utils/writeClientModels.spec.ts @@ -1,5 +1,4 @@ import * as fs from 'fs'; -import { Language } from '../index'; import { Model } from '../client/interfaces/Model'; import { Templates } from './readHandlebarsTemplates'; import { writeClientModels } from './writeClientModels'; @@ -31,13 +30,16 @@ describe('writeClientModels', () => { }); const templates: Templates = { - index: () => 'dummy', model: () => 'dummy', + models: () => 'dummy', + schema: () => 'dummy', + schemas: () => 'dummy', service: () => 'dummy', + services: () => 'dummy', settings: () => 'dummy', }; - writeClientModels(models, Language.TYPESCRIPT, templates, '/'); + writeClientModels(models, templates, '/'); expect(fsWriteFileSync).toBeCalledWith('/Item.ts', 'dummy'); }); diff --git a/src/utils/writeClientModels.ts b/src/utils/writeClientModels.ts index 2748a3eb..1cca133c 100644 --- a/src/utils/writeClientModels.ts +++ b/src/utils/writeClientModels.ts @@ -1,28 +1,28 @@ import * as fs from 'fs'; import * as path from 'path'; -import { Language } from '../index'; import { Model } from '../client/interfaces/Model'; import { Templates } from './readHandlebarsTemplates'; import { exportModel } from './exportModel'; import { format } from './format'; -import { getFileName } from './getFileName'; +import { getModelNames } from './getModelNames'; /** * Generate Models using the Handlebar template and write to disk. * @param models Array of Models to write. - * @param language The output language (Typescript or javascript). * @param templates The loaded handlebar templates. * @param outputPath */ -export function writeClientModels(models: Model[], language: Language, templates: Templates, outputPath: string): void { +export function writeClientModels(models: Model[], templates: Templates, outputPath: string): void { models.forEach(model => { - const fileName = getFileName(model.name, language); - try { - const templateData = exportModel(model); - const templateResult = templates.model(templateData); - fs.writeFileSync(path.resolve(outputPath, fileName), format(templateResult)); - } catch (e) { - throw new Error(`Could not write model: "${fileName}"`); - } + const file = path.resolve(outputPath, `${model.name}.ts`); + const templateData = exportModel(model); + const templateResult = templates.model(templateData); + fs.writeFileSync(file, format(templateResult)); }); + + const file = path.resolve(outputPath, 'index.ts'); + const templateResult = templates.models({ + models: getModelNames(models), + }); + fs.writeFileSync(file, format(templateResult)); } diff --git a/src/utils/writeClientSchemas.spec.ts b/src/utils/writeClientSchemas.spec.ts new file mode 100644 index 00000000..b3882420 --- /dev/null +++ b/src/utils/writeClientSchemas.spec.ts @@ -0,0 +1,46 @@ +import * as fs from 'fs'; +import { Model } from '../client/interfaces/Model'; +import { Templates } from './readHandlebarsTemplates'; +import { writeClientModels } from './writeClientModels'; + +jest.mock('fs'); + +const fsWriteFileSync = fs.writeFileSync as jest.MockedFunction; + +describe('writeClientModels', () => { + it('should write to filesystem', () => { + const models: Model[] = []; + models.push({ + export: 'interface', + name: 'Item', + type: 'Item', + base: 'Item', + template: null, + link: null, + description: null, + isProperty: false, + isReadOnly: false, + isRequired: false, + isNullable: false, + imports: [], + extends: [], + enum: [], + enums: [], + properties: [], + }); + + const templates: Templates = { + model: () => 'dummy', + models: () => 'dummy', + schema: () => 'dummy', + schemas: () => 'dummy', + service: () => 'dummy', + services: () => 'dummy', + settings: () => 'dummy', + }; + + writeClientModels(models, templates, '/'); + + expect(fsWriteFileSync).toBeCalledWith('/Item.ts', 'dummy'); + }); +}); diff --git a/src/utils/writeClientSchemas.ts b/src/utils/writeClientSchemas.ts new file mode 100644 index 00000000..0e3751c6 --- /dev/null +++ b/src/utils/writeClientSchemas.ts @@ -0,0 +1,28 @@ +import * as fs from 'fs'; +import * as path from 'path'; +import { Model } from '../client/interfaces/Model'; +import { Templates } from './readHandlebarsTemplates'; +import { exportModel } from './exportModel'; +import { format } from './format'; +import { getModelNames } from './getModelNames'; + +/** + * Generate Schemas using the Handlebar template and write to disk. + * @param models Array of Models to write. + * @param templates The loaded handlebar templates. + * @param outputPath + */ +export function writeClientSchemas(models: Model[], templates: Templates, outputPath: string): void { + models.forEach(model => { + const file = path.resolve(outputPath, `$${model.name}.ts`); + const templateData = exportModel(model); + const templateResult = templates.schema(templateData); + fs.writeFileSync(file, format(templateResult)); + }); + + const file = path.resolve(outputPath, 'index.ts'); + const templateResult = templates.schemas({ + schemas: getModelNames(models), + }); + fs.writeFileSync(file, format(templateResult)); +} diff --git a/src/utils/writeClientServices.spec.ts b/src/utils/writeClientServices.spec.ts index 9b8eba51..763a8e59 100644 --- a/src/utils/writeClientServices.spec.ts +++ b/src/utils/writeClientServices.spec.ts @@ -18,13 +18,16 @@ describe('writeClientServices', () => { }); const templates: Templates = { - index: () => 'dummy', model: () => 'dummy', + models: () => 'dummy', + schema: () => 'dummy', + schemas: () => 'dummy', service: () => 'dummy', + services: () => 'dummy', settings: () => 'dummy', }; - writeClientServices(services, Language.TYPESCRIPT, templates, '/'); + writeClientServices(services, templates, '/'); expect(fsWriteFileSync).toBeCalledWith('/Item.ts', 'dummy'); }); diff --git a/src/utils/writeClientServices.ts b/src/utils/writeClientServices.ts index 52bc923d..5c54179d 100644 --- a/src/utils/writeClientServices.ts +++ b/src/utils/writeClientServices.ts @@ -1,28 +1,28 @@ import * as fs from 'fs'; import * as path from 'path'; -import { Language } from '../index'; import { Service } from '../client/interfaces/Service'; import { Templates } from './readHandlebarsTemplates'; import { exportService } from './exportService'; import { format } from './format'; -import { getFileName } from './getFileName'; +import { getServiceNames } from './getServiceNames'; /** * Generate Services using the Handlebar template and write to disk. * @param services Array of Services to write. - * @param language The output language (Typescript or javascript). * @param templates The loaded handlebar templates. * @param outputPath */ -export function writeClientServices(services: Service[], language: Language, templates: Templates, outputPath: string): void { +export function writeClientServices(services: Service[], templates: Templates, outputPath: string): void { services.forEach(service => { - const fileName = getFileName(service.name, language); - try { - const templateData = exportService(service); - const templateResult = templates.service(templateData); - fs.writeFileSync(path.resolve(outputPath, fileName), format(templateResult)); - } catch (e) { - throw new Error(`Could not write service: "${fileName}"`); - } + const file = path.resolve(outputPath, `${service.name}.ts`); + const templateData = exportService(service); + const templateResult = templates.service(templateData); + fs.writeFileSync(file, format(templateResult)); }); + + const file = path.resolve(outputPath, 'index.ts'); + const templateResult = templates.services({ + services: getServiceNames(services), + }); + fs.writeFileSync(file, format(templateResult)); } diff --git a/src/utils/writeClientSettings.ts b/src/utils/writeClientSettings.ts index dc37ae56..f538f481 100644 --- a/src/utils/writeClientSettings.ts +++ b/src/utils/writeClientSettings.ts @@ -1,23 +1,16 @@ import * as fs from 'fs'; import * as path from 'path'; import { Client } from '../client/interfaces/Client'; -import { HttpClient, Language } from '../index'; +import { HttpClient } from '../index'; import { Templates } from './readHandlebarsTemplates'; -import { getFileName } from './getFileName'; -export function writeClientSettings(client: Client, language: Language, httpClient: HttpClient, templates: Templates, outputPath: string): void { - const fileName = getFileName('OpenAPI', language); - try { - fs.writeFileSync( - path.resolve(outputPath, fileName), - templates.settings({ - language, - httpClient, - server: client.server, - version: client.version, - }) - ); - } catch (e) { - throw new Error(`Could not write settings: "${fileName}"`); - } +export function writeClientSettings(client: Client, httpClient: HttpClient, templates: Templates, outputPath: string): void { + fs.writeFileSync( + path.resolve(outputPath, 'OpenAPI.ts'), + templates.settings({ + httpClient, + server: client.server, + version: client.version, + }) + ); } diff --git a/test/__snapshots__/index.spec.js.snap b/test/__snapshots__/index.spec.js.snap index ba8fe453..a8e5711a 100644 --- a/test/__snapshots__/index.spec.js.snap +++ b/test/__snapshots__/index.spec.js.snap @@ -1,1854 +1,6 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`generation v2 javascript file(./test/result/v2/javascript/core/ApiError.js): ./test/result/v2/javascript/core/ApiError.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -import { isSuccess } from \\"./isSuccess\\"; - -export class ApiError extends Error { - - constructor(result, message) { - super(message); - - this.url = result.url; - this.status = result.status; - this.statusText = result.statusText; - this.body = result.body; - } -} - -(function (ApiError) { - let Message; - (function (Message) { - Message.BAD_REQUEST = 'Bad Request'; - Message.UNAUTHORIZED = 'Unauthorized'; - Message.FORBIDDEN = 'Forbidden'; - Message.NOT_FOUND = 'Not Found'; - Message.INTERNAL_SERVER_ERROR = 'Internal Server Error'; - Message.BAD_GATEWAY = 'Bad Gateway'; - Message.SERVICE_UNAVAILABLE = 'Service Unavailable'; - Message.GENERIC_ERROR = 'Generic Error'; - })(Message = ApiError.Message || (ApiError.Message = {})); -})(ApiError || (ApiError = {})); - -/** - * Catch common errors (based on status code). - * @param result - */ -export function catchGenericError(result) { - - switch (result.status) { - case 400: throw new ApiError(result, ApiError.Message.BAD_REQUEST); - case 401: throw new ApiError(result, ApiError.Message.UNAUTHORIZED); - case 403: throw new ApiError(result, ApiError.Message.FORBIDDEN); - case 404: throw new ApiError(result, ApiError.Message.NOT_FOUND); - case 500: throw new ApiError(result, ApiError.Message.INTERNAL_SERVER_ERROR); - case 502: throw new ApiError(result, ApiError.Message.BAD_GATEWAY); - case 503: throw new ApiError(result, ApiError.Message.SERVICE_UNAVAILABLE); - } - - if (!isSuccess(result.status)) { - throw new ApiError(result, ApiError.Message.GENERIC_ERROR); - } -} -" -`; - -exports[`generation v2 javascript file(./test/result/v2/javascript/core/OpenAPI.js): ./test/result/v2/javascript/core/OpenAPI.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -export let OpenAPI; -(function (OpenAPI) { - OpenAPI.BASE = 'http://localhost:8080/api'; - OpenAPI.VERSION = '9.0'; - OpenAPI.CLIENT = 'xhr'; - OpenAPI.TOKEN = ''; -})(OpenAPI || (OpenAPI = {}));" -`; - -exports[`generation v2 javascript file(./test/result/v2/javascript/core/getFormData.js): ./test/result/v2/javascript/core/getFormData.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -/** - * Get FormData from object. This method is needed to upload - * multipart form data to the REST API. - * @param params Key value based object. - */ -export function getFormData(params) { - const formData = new FormData(); - for (const key in params) { - if (typeof params[key] !== 'undefined') { - const value = params[key]; - if (value !== undefined && value !== null) { - formData.append(key, value); - } - } - } - return formData; -} -" -`; - -exports[`generation v2 javascript file(./test/result/v2/javascript/core/getQueryString.js): ./test/result/v2/javascript/core/getQueryString.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -/** - * Get query string from query parameters object. This method also - * supports multi-value items by creating a key for each item. - * @param params Key value based object. - */ -export function getQueryString(params) { - const qs = []; - for (const key in params) { - if (typeof params[key] !== 'undefined') { - const value = params[key]; - if (value !== undefined && value !== null) { - if (Array.isArray(value)) { - value.forEach(value => { - qs.push(\`\${encodeURIComponent(key)}=\${encodeURIComponent(String(value))}\`); - }); - } else { - qs.push(\`\${encodeURIComponent(key)}=\${encodeURIComponent(String(value))}\`); - } - } - } - } - if (qs.length > 0) { - return \`?\${qs.join('&')}\`; - } - return ''; -} -" -`; - -exports[`generation v2 javascript file(./test/result/v2/javascript/core/isSuccess.js): ./test/result/v2/javascript/core/isSuccess.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -/** - * Check success response code. - * @param status Status code - */ -export function isSuccess(status) { - return status >= 200 && status < 300; -} -" -`; - -exports[`generation v2 javascript file(./test/result/v2/javascript/core/request.js): ./test/result/v2/javascript/core/request.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -import { getFormData } from './getFormData'; -import { getQueryString } from './getQueryString'; -import { OpenAPI } from './OpenAPI'; -import { requestUsingFetch } from './requestUsingFetch'; -import { requestUsingXHR } from './requestUsingXHR'; - -/** - * Create the request. - * @param options Request method options. - * @returns Result object (see above) - */ -export async function request(options) { - - // Create the request URL - let url = \`\${OpenAPI.BASE}\${options.path}\`; - - // Create request headers - const headers = new Headers({ - ...options.headers, - Accept: 'application/json', - }); - - // Create request settings - const request = { - headers, - method: options.method, - credentials: 'same-origin', - }; - - // If we have a bearer token then we set the authentication header. - if (OpenAPI.TOKEN !== null && OpenAPI.TOKEN !== '') { - headers.append('Authorization', \`Bearer \${OpenAPI.TOKEN}\`); - } - - // Add the query parameters (if defined). - if (options.query) { - url += getQueryString(options.query); - } - - // Append formData as body - if (options.formData) { - request.body = getFormData(options.formData); - } else if (options.body) { - - // If this is blob data, then pass it directly to the body and set content type. - // Otherwise we just convert request data to JSON string (needed for fetch api) - if (options.body instanceof Blob) { - request.body = options.body; - if (options.body.type) { - headers.append('Content-Type', options.body.type); - } - } else { - request.body = JSON.stringify(options.body); - headers.append('Content-Type', 'application/json'); - } - } - - try { - switch (OpenAPI.CLIENT) { - case 'xhr': - return await requestUsingXHR(url, request); - default: - return await requestUsingFetch(url, request); - } - } catch (error) { - return { - url, - ok: false, - status: 0, - statusText: '', - body: error - }; - } -} -" -`; - -exports[`generation v2 javascript file(./test/result/v2/javascript/core/requestUsingFetch.js): ./test/result/v2/javascript/core/requestUsingFetch.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -/** - * Request content using the new Fetch API. This is the default API that is used and - * is create for all JSON, XML and text objects. However it is limited to UTF-8. - * This is a problem for some of the Docs content, since that requires UTF-16! - * @param url The url to request. - * @param request The request object, containing method, headers, body, etc. - */ -export async function requestUsingFetch(url, request) { - - // Fetch response using fetch API. - const response = await fetch(url, request); - - // Create result object. - const result = { - url, - ok: response.ok, - status: response.status, - statusText: response.statusText, - body: null, - }; - - // Try to parse the content for any response status code. - // We check the \\"Content-Type\\" header to see if we need to parse the - // content as json or as plain text. - const contentType = response.headers.get('Content-Type'); - if (contentType) { - switch (contentType.toLowerCase()) { - case 'application/json': - case 'application/json; charset=utf-8': - result.body = await response.json(); - break; - - case 'text/plain': - case 'text/xml': - case 'text/xml; charset=utf-8': - case 'text/xml; charset=utf-16': - result.body = await response.text(); - break; - } - } - - return result; -} -" -`; - -exports[`generation v2 javascript file(./test/result/v2/javascript/core/requestUsingXHR.js): ./test/result/v2/javascript/core/requestUsingXHR.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -import { isSuccess } from './isSuccess'; - -/** - * Request content using the new legacy XMLHttpRequest API. This method is useful - * when we want to request UTF-16 content, since it natively supports loading UTF-16. - * We could do the same with the Fetch API, but then we will need to convert the - * content using JavaScript... And that is very very slow. - * @param url The url to request. - * @param request The request object, containing method, headers, body, etc. - */ -export async function requestUsingXHR(url, request) { - return new Promise(resolve => { - const xhr = new XMLHttpRequest(); - - // Open the request, remember to do this before adding any headers, - // because the request needs to be initialized! - xhr.open(request.method, url, true); - - // Add the headers (required when dealing with JSON) - const headers = request.headers as Headers; - headers.forEach((value, key) => { - xhr.setRequestHeader(key, value); - }); - - // Register the readystate handler, this will fire when the request is done. - xhr.onreadystatechange = () => { - if (xhr.readyState === XMLHttpRequest.DONE) { - - // Create result object. - const result = { - url, - ok: isSuccess(xhr.status), - status: xhr.status, - statusText: xhr.statusText, - body: null, - }; - - // Try to parse the content for any response status code. - // We check the \\"Content-Type\\" header to see if we need to parse the - // content as json or as plain text. - const contentType = xhr.getResponseHeader('Content-Type'); - if (contentType) { - switch (contentType.toLowerCase()) { - case 'application/json': - case 'application/json; charset=utf-8': - result.body = JSON.parse(xhr.responseText); - break; - - case 'text/plain': - case 'text/xml': - case 'text/xml; charset=utf-8': - case 'text/xml; charset=utf-16': - result.body = xhr.responseText; - break; - } - } - - // Done! - resolve(result); - } - }; - - // Start the request! - xhr.send(request.body); - }); -} -" -`; - -exports[`generation v2 javascript file(./test/result/v2/javascript/index.js): ./test/result/v2/javascript/index.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -export { ApiError } from './core/ApiError'; -export { isSuccess } from './core/isSuccess'; -export { OpenAPI } from './core/OpenAPI'; - -import { ArrayWithArray } from './models/ArrayWithArray'; -import { ArrayWithBooleans } from './models/ArrayWithBooleans'; -import { ArrayWithNumbers } from './models/ArrayWithNumbers'; -import { ArrayWithProperties } from './models/ArrayWithProperties'; -import { ArrayWithReferences } from './models/ArrayWithReferences'; -import { ArrayWithStrings } from './models/ArrayWithStrings'; -import { Dictionary } from './models/Dictionary'; -import { DictionaryWithArray } from './models/DictionaryWithArray'; -import { DictionaryWithDictionary } from './models/DictionaryWithDictionary'; -import { DictionaryWithProperties } from './models/DictionaryWithProperties'; -import { DictionaryWithReference } from './models/DictionaryWithReference'; -import { DictionaryWithString } from './models/DictionaryWithString'; -import { EnumFromDescription } from './models/EnumFromDescription'; -import { EnumWithNumbers } from './models/EnumWithNumbers'; -import { EnumWithStrings } from './models/EnumWithStrings'; -import { ModelLink } from './models/ModelLink'; -import { ModelThatExtends } from './models/ModelThatExtends'; -import { ModelThatExtendsExtends } from './models/ModelThatExtendsExtends'; -import { ModelWithArray } from './models/ModelWithArray'; -import { ModelWithBoolean } from './models/ModelWithBoolean'; -import { ModelWithCircularReference } from './models/ModelWithCircularReference'; -import { ModelWithDictionary } from './models/ModelWithDictionary'; -import { ModelWithDuplicateImports } from './models/ModelWithDuplicateImports'; -import { ModelWithDuplicateProperties } from './models/ModelWithDuplicateProperties'; -import { ModelWithEnum } from './models/ModelWithEnum'; -import { ModelWithEnumFromDescription } from './models/ModelWithEnumFromDescription'; -import { ModelWithInteger } from './models/ModelWithInteger'; -import { ModelWithLink } from './models/ModelWithLink'; -import { ModelWithNestedEnums } from './models/ModelWithNestedEnums'; -import { ModelWithNestedProperties } from './models/ModelWithNestedProperties'; -import { ModelWithProperties } from './models/ModelWithProperties'; -import { ModelWithReference } from './models/ModelWithReference'; -import { ModelWithString } from './models/ModelWithString'; -import { SimpleBoolean } from './models/SimpleBoolean'; -import { SimpleFile } from './models/SimpleFile'; -import { SimpleInteger } from './models/SimpleInteger'; -import { SimpleReference } from './models/SimpleReference'; -import { SimpleString } from './models/SimpleString'; - -export { ArrayWithArray }; -export { ArrayWithBooleans }; -export { ArrayWithNumbers }; -export { ArrayWithProperties }; -export { ArrayWithReferences }; -export { ArrayWithStrings }; -export { Dictionary }; -export { DictionaryWithArray }; -export { DictionaryWithDictionary }; -export { DictionaryWithProperties }; -export { DictionaryWithReference }; -export { DictionaryWithString }; -export { EnumFromDescription }; -export { EnumWithNumbers }; -export { EnumWithStrings }; -export { ModelLink }; -export { ModelThatExtends }; -export { ModelThatExtendsExtends }; -export { ModelWithArray }; -export { ModelWithBoolean }; -export { ModelWithCircularReference }; -export { ModelWithDictionary }; -export { ModelWithDuplicateImports }; -export { ModelWithDuplicateProperties }; -export { ModelWithEnum }; -export { ModelWithEnumFromDescription }; -export { ModelWithInteger }; -export { ModelWithLink }; -export { ModelWithNestedEnums }; -export { ModelWithNestedProperties }; -export { ModelWithProperties }; -export { ModelWithReference }; -export { ModelWithString }; -export { SimpleBoolean }; -export { SimpleFile }; -export { SimpleInteger }; -export { SimpleReference }; -export { SimpleString }; - -export { ComplexService } from './services/ComplexService'; -export { DefaultsService } from './services/DefaultsService'; -export { ParametersService } from './services/ParametersService'; -export { ResponseService } from './services/ResponseService'; -export { SimpleService } from './services/SimpleService'; -export { TypesService } from './services/TypesService'; - -const definitions = { - 'ArrayWithArray': ArrayWithArray.definition, - 'ArrayWithBooleans': ArrayWithBooleans.definition, - 'ArrayWithNumbers': ArrayWithNumbers.definition, - 'ArrayWithProperties': ArrayWithProperties.definition, - 'ArrayWithReferences': ArrayWithReferences.definition, - 'ArrayWithStrings': ArrayWithStrings.definition, - 'Dictionary': Dictionary.definition, - 'DictionaryWithArray': DictionaryWithArray.definition, - 'DictionaryWithDictionary': DictionaryWithDictionary.definition, - 'DictionaryWithProperties': DictionaryWithProperties.definition, - 'DictionaryWithReference': DictionaryWithReference.definition, - 'DictionaryWithString': DictionaryWithString.definition, - 'EnumFromDescription': EnumFromDescription.definition, - 'EnumWithNumbers': EnumWithNumbers.definition, - 'EnumWithStrings': EnumWithStrings.definition, - 'ModelLink': ModelLink.definition, - 'ModelThatExtends': ModelThatExtends.definition, - 'ModelThatExtendsExtends': ModelThatExtendsExtends.definition, - 'ModelWithArray': ModelWithArray.definition, - 'ModelWithBoolean': ModelWithBoolean.definition, - 'ModelWithCircularReference': ModelWithCircularReference.definition, - 'ModelWithDictionary': ModelWithDictionary.definition, - 'ModelWithDuplicateImports': ModelWithDuplicateImports.definition, - 'ModelWithDuplicateProperties': ModelWithDuplicateProperties.definition, - 'ModelWithEnum': ModelWithEnum.definition, - 'ModelWithEnumFromDescription': ModelWithEnumFromDescription.definition, - 'ModelWithInteger': ModelWithInteger.definition, - 'ModelWithLink': ModelWithLink.definition, - 'ModelWithNestedEnums': ModelWithNestedEnums.definition, - 'ModelWithNestedProperties': ModelWithNestedProperties.definition, - 'ModelWithProperties': ModelWithProperties.definition, - 'ModelWithReference': ModelWithReference.definition, - 'ModelWithString': ModelWithString.definition, - 'SimpleBoolean': SimpleBoolean.definition, - 'SimpleFile': SimpleFile.definition, - 'SimpleInteger': SimpleInteger.definition, - 'SimpleReference': SimpleReference.definition, - 'SimpleString': SimpleString.definition, -}; - -export function getDefinition(definition) { - if (definitions.hasOwnProperty(definition)) { - return definitions[definition]; - } - return null; -} -" -`; - -exports[`generation v2 javascript file(./test/result/v2/javascript/models/ArrayWithArray.js): ./test/result/v2/javascript/models/ArrayWithArray.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -/** - * This is a simple array containing an array - */ -export let ArrayWithArray; -(function (ArrayWithArray) { - - ArrayWithArray.definition = { - type: 'Array', - }; - -})(ArrayWithArray || (ArrayWithArray = {}));" -`; - -exports[`generation v2 javascript file(./test/result/v2/javascript/models/ArrayWithBooleans.js): ./test/result/v2/javascript/models/ArrayWithBooleans.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -/** - * This is a simple array with booleans - */ -export let ArrayWithBooleans; -(function (ArrayWithBooleans) { - - ArrayWithBooleans.definition = { - type: 'Array', - }; - -})(ArrayWithBooleans || (ArrayWithBooleans = {}));" -`; - -exports[`generation v2 javascript file(./test/result/v2/javascript/models/ArrayWithNumbers.js): ./test/result/v2/javascript/models/ArrayWithNumbers.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -/** - * This is a simple array with numbers - */ -export let ArrayWithNumbers; -(function (ArrayWithNumbers) { - - ArrayWithNumbers.definition = { - type: 'Array', - }; - -})(ArrayWithNumbers || (ArrayWithNumbers = {}));" -`; - -exports[`generation v2 javascript file(./test/result/v2/javascript/models/ArrayWithProperties.js): ./test/result/v2/javascript/models/ArrayWithProperties.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -/** - * This is a simple array with properties - */ -export let ArrayWithProperties; -(function (ArrayWithProperties) { - - ArrayWithProperties.definition = { - type: 'Array', - }; - -})(ArrayWithProperties || (ArrayWithProperties = {}));" -`; - -exports[`generation v2 javascript file(./test/result/v2/javascript/models/ArrayWithReferences.js): ./test/result/v2/javascript/models/ArrayWithReferences.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -/** - * This is a simple array with references - */ -export let ArrayWithReferences; -(function (ArrayWithReferences) { - - ArrayWithReferences.definition = { - type: 'Array', - }; - -})(ArrayWithReferences || (ArrayWithReferences = {}));" -`; - -exports[`generation v2 javascript file(./test/result/v2/javascript/models/ArrayWithStrings.js): ./test/result/v2/javascript/models/ArrayWithStrings.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -/** - * This is a simple array with strings - */ -export let ArrayWithStrings; -(function (ArrayWithStrings) { - - ArrayWithStrings.definition = { - type: 'Array', - }; - -})(ArrayWithStrings || (ArrayWithStrings = {}));" -`; - -exports[`generation v2 javascript file(./test/result/v2/javascript/models/Dictionary.js): ./test/result/v2/javascript/models/Dictionary.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -export let Dictionary; -(function (Dictionary) { - - Dictionary.definition = { - type: 'Dictionary' - }; - -})(Dictionary || (Dictionary = {})); -" -`; - -exports[`generation v2 javascript file(./test/result/v2/javascript/models/DictionaryWithArray.js): ./test/result/v2/javascript/models/DictionaryWithArray.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -/** - * This is a complex dictionary - */ -export let DictionaryWithArray; -(function (DictionaryWithArray) { - - DictionaryWithArray.definition = { - type: 'Dictionary', - }; - -})(DictionaryWithArray || (DictionaryWithArray = {}));" -`; - -exports[`generation v2 javascript file(./test/result/v2/javascript/models/DictionaryWithDictionary.js): ./test/result/v2/javascript/models/DictionaryWithDictionary.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -/** - * This is a string dictionary - */ -export let DictionaryWithDictionary; -(function (DictionaryWithDictionary) { - - DictionaryWithDictionary.definition = { - type: 'Dictionary', - }; - -})(DictionaryWithDictionary || (DictionaryWithDictionary = {}));" -`; - -exports[`generation v2 javascript file(./test/result/v2/javascript/models/DictionaryWithProperties.js): ./test/result/v2/javascript/models/DictionaryWithProperties.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -/** - * This is a complex dictionary - */ -export let DictionaryWithProperties; -(function (DictionaryWithProperties) { - - DictionaryWithProperties.definition = { - type: 'Dictionary', - }; - -})(DictionaryWithProperties || (DictionaryWithProperties = {}));" -`; - -exports[`generation v2 javascript file(./test/result/v2/javascript/models/DictionaryWithReference.js): ./test/result/v2/javascript/models/DictionaryWithReference.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -/** - * This is a string reference - */ -export let DictionaryWithReference; -(function (DictionaryWithReference) { - - DictionaryWithReference.definition = { - type: 'Dictionary', - }; - -})(DictionaryWithReference || (DictionaryWithReference = {}));" -`; - -exports[`generation v2 javascript file(./test/result/v2/javascript/models/DictionaryWithString.js): ./test/result/v2/javascript/models/DictionaryWithString.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -/** - * This is a string dictionary - */ -export let DictionaryWithString; -(function (DictionaryWithString) { - - DictionaryWithString.definition = { - type: 'Dictionary', - }; - -})(DictionaryWithString || (DictionaryWithString = {}));" -`; - -exports[`generation v2 javascript file(./test/result/v2/javascript/models/EnumFromDescription.js): ./test/result/v2/javascript/models/EnumFromDescription.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -/** - * Success=1,Warning=2,Error=3 - */ -export let EnumFromDescription; -(function (EnumFromDescription) { - - EnumFromDescription.ERROR = 3; - EnumFromDescription.SUCCESS = 1; - EnumFromDescription.WARNING = 2; - - EnumFromDescription.definition = { - type: 'Enum', - }; - -})(EnumFromDescription || (EnumFromDescription = {}));" -`; - -exports[`generation v2 javascript file(./test/result/v2/javascript/models/EnumWithNumbers.js): ./test/result/v2/javascript/models/EnumWithNumbers.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -/** - * This is a simple enum with numbers - */ -export let EnumWithNumbers; -(function (EnumWithNumbers) { - - EnumWithNumbers.NUM_1 = 1; - EnumWithNumbers.NUM_2 = 2; - EnumWithNumbers.NUM_3 = 3; - - EnumWithNumbers.definition = { - type: 'Enum', - }; - -})(EnumWithNumbers || (EnumWithNumbers = {}));" -`; - -exports[`generation v2 javascript file(./test/result/v2/javascript/models/EnumWithStrings.js): ./test/result/v2/javascript/models/EnumWithStrings.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -/** - * This is a simple enum with strings - */ -export let EnumWithStrings; -(function (EnumWithStrings) { - - EnumWithStrings.ERROR = 'Error'; - EnumWithStrings.SUCCESS = 'Success'; - EnumWithStrings.WARNING = 'Warning'; - - EnumWithStrings.definition = { - type: 'Enum', - }; - -})(EnumWithStrings || (EnumWithStrings = {}));" -`; - -exports[`generation v2 javascript file(./test/result/v2/javascript/models/ModelLink.js): ./test/result/v2/javascript/models/ModelLink.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -/** - * This is a model that can have a template?? - */ -export let ModelLink; -(function (ModelLink) { - - ModelLink.definition = { - properties: { - id: { - type: 'string', - }, - }, - }; - -})(ModelLink || (ModelLink = {}));" -`; - -exports[`generation v2 javascript file(./test/result/v2/javascript/models/ModelThatExtends.js): ./test/result/v2/javascript/models/ModelThatExtends.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -/** - * This is a model that extends another model - */ -export let ModelThatExtends; -(function (ModelThatExtends) { - - ModelThatExtends.definition = { - properties: { - ...ModelWithString.definition.properties, - propExtendsA: { - type: 'string', - }, - propExtendsB: { - type: 'ModelWithString', - }, - }, - }; - -})(ModelThatExtends || (ModelThatExtends = {}));" -`; - -exports[`generation v2 javascript file(./test/result/v2/javascript/models/ModelThatExtendsExtends.js): ./test/result/v2/javascript/models/ModelThatExtendsExtends.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -/** - * This is a model that extends another model - */ -export let ModelThatExtendsExtends; -(function (ModelThatExtendsExtends) { - - ModelThatExtendsExtends.definition = { - properties: { - ...ModelWithString.definition.properties, - ...ModelThatExtends.definition.properties, - propExtendsC: { - type: 'string', - }, - propExtendsD: { - type: 'ModelWithString', - }, - }, - }; - -})(ModelThatExtendsExtends || (ModelThatExtendsExtends = {}));" -`; - -exports[`generation v2 javascript file(./test/result/v2/javascript/models/ModelWithArray.js): ./test/result/v2/javascript/models/ModelWithArray.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -/** - * This is a model with one property containing an array - */ -export let ModelWithArray; -(function (ModelWithArray) { - - ModelWithArray.definition = { - properties: { - prop: { - type: 'Array', - }, - propWithFile: { - type: 'Array', - }, - propWithNumber: { - type: 'Array', - }, - }, - }; - -})(ModelWithArray || (ModelWithArray = {}));" -`; - -exports[`generation v2 javascript file(./test/result/v2/javascript/models/ModelWithBoolean.js): ./test/result/v2/javascript/models/ModelWithBoolean.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -/** - * This is a model with one boolean property - */ -export let ModelWithBoolean; -(function (ModelWithBoolean) { - - ModelWithBoolean.definition = { - properties: { - prop: { - type: 'boolean', - }, - }, - }; - -})(ModelWithBoolean || (ModelWithBoolean = {}));" -`; - -exports[`generation v2 javascript file(./test/result/v2/javascript/models/ModelWithCircularReference.js): ./test/result/v2/javascript/models/ModelWithCircularReference.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -/** - * This is a model with one property containing a circular reference - */ -export let ModelWithCircularReference; -(function (ModelWithCircularReference) { - - ModelWithCircularReference.definition = { - properties: { - prop: { - type: 'ModelWithCircularReference', - }, - }, - }; - -})(ModelWithCircularReference || (ModelWithCircularReference = {}));" -`; - -exports[`generation v2 javascript file(./test/result/v2/javascript/models/ModelWithDictionary.js): ./test/result/v2/javascript/models/ModelWithDictionary.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -/** - * This is a model with one property containing a dictionary - */ -export let ModelWithDictionary; -(function (ModelWithDictionary) { - - ModelWithDictionary.definition = { - properties: { - prop: { - type: 'Dictionary', - }, - }, - }; - -})(ModelWithDictionary || (ModelWithDictionary = {}));" -`; - -exports[`generation v2 javascript file(./test/result/v2/javascript/models/ModelWithDuplicateImports.js): ./test/result/v2/javascript/models/ModelWithDuplicateImports.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -/** - * This is a model with duplicated imports - */ -export let ModelWithDuplicateImports; -(function (ModelWithDuplicateImports) { - - ModelWithDuplicateImports.definition = { - properties: { - propA: { - type: 'ModelWithString', - }, - propB: { - type: 'ModelWithString', - }, - propC: { - type: 'ModelWithString', - }, - }, - }; - -})(ModelWithDuplicateImports || (ModelWithDuplicateImports = {}));" -`; - -exports[`generation v2 javascript file(./test/result/v2/javascript/models/ModelWithDuplicateProperties.js): ./test/result/v2/javascript/models/ModelWithDuplicateProperties.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -/** - * This is a model with duplicated properties - */ -export let ModelWithDuplicateProperties; -(function (ModelWithDuplicateProperties) { - - ModelWithDuplicateProperties.definition = { - properties: { - prop: { - type: 'ModelWithString', - }, - }, - }; - -})(ModelWithDuplicateProperties || (ModelWithDuplicateProperties = {}));" -`; - -exports[`generation v2 javascript file(./test/result/v2/javascript/models/ModelWithEnum.js): ./test/result/v2/javascript/models/ModelWithEnum.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -/** - * This is a model with one enum - */ -export let ModelWithEnum; -(function (ModelWithEnum) { - - /** - * This is a simple enum with strings - */ - ModelWithEnum.test = { - SUCCESS: 'Success', - WARNING: 'Warning', - ERROR: 'Error', - }; - - ModelWithEnum.definition = { - properties: { - test: { - type: 'Enum', - }, - }, - }; - -})(ModelWithEnum || (ModelWithEnum = {}));" -`; - -exports[`generation v2 javascript file(./test/result/v2/javascript/models/ModelWithEnumFromDescription.js): ./test/result/v2/javascript/models/ModelWithEnumFromDescription.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -/** - * This is a model with one enum - */ -export let ModelWithEnumFromDescription; -(function (ModelWithEnumFromDescription) { - - /** - * Success=1,Warning=2,Error=3 - */ - ModelWithEnumFromDescription.test = { - SUCCESS: 1, - WARNING: 2, - ERROR: 3, - }; - - ModelWithEnumFromDescription.definition = { - properties: { - test: { - type: 'Enum', - }, - }, - }; - -})(ModelWithEnumFromDescription || (ModelWithEnumFromDescription = {}));" -`; - -exports[`generation v2 javascript file(./test/result/v2/javascript/models/ModelWithInteger.js): ./test/result/v2/javascript/models/ModelWithInteger.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -/** - * This is a model with one number property - */ -export let ModelWithInteger; -(function (ModelWithInteger) { - - ModelWithInteger.definition = { - properties: { - prop: { - type: 'number', - }, - }, - }; - -})(ModelWithInteger || (ModelWithInteger = {}));" -`; - -exports[`generation v2 javascript file(./test/result/v2/javascript/models/ModelWithLink.js): ./test/result/v2/javascript/models/ModelWithLink.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -/** - * This is a model that can have a template?? - */ -export let ModelWithLink; -(function (ModelWithLink) { - - ModelWithLink.definition = { - properties: { - prop: { - type: 'ModelLink', - }, - }, - }; - -})(ModelWithLink || (ModelWithLink = {}));" -`; - -exports[`generation v2 javascript file(./test/result/v2/javascript/models/ModelWithNestedEnums.js): ./test/result/v2/javascript/models/ModelWithNestedEnums.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -/** - * This is a model with nested enums - */ -export let ModelWithNestedEnums; -(function (ModelWithNestedEnums) { - - ModelWithNestedEnums.definition = { - properties: { - arrayWithDescription: { - type: 'Array', - }, - arrayWithEnum: { - type: 'Array', - }, - dictionaryWithEnum: { - type: 'Dictionary', - }, - dictionaryWithEnumFromDescription: { - type: 'Dictionary', - }, - }, - }; - -})(ModelWithNestedEnums || (ModelWithNestedEnums = {}));" -`; - -exports[`generation v2 javascript file(./test/result/v2/javascript/models/ModelWithNestedProperties.js): ./test/result/v2/javascript/models/ModelWithNestedProperties.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -/** - * This is a model with one nested property - */ -export let ModelWithNestedProperties; -(function (ModelWithNestedProperties) { - - ModelWithNestedProperties.definition = { - properties: { - first: { - properties: { - second: { - properties: { - third: { - type: 'string', - isReadOnly: true, - isRequired: true, - }, - }, - isReadOnly: true, - isRequired: true, - }, - }, - isReadOnly: true, - isRequired: true, - }, - }, - }; - -})(ModelWithNestedProperties || (ModelWithNestedProperties = {}));" -`; - -exports[`generation v2 javascript file(./test/result/v2/javascript/models/ModelWithProperties.js): ./test/result/v2/javascript/models/ModelWithProperties.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -/** - * This is a model with one nested property - */ -export let ModelWithProperties; -(function (ModelWithProperties) { - - ModelWithProperties.definition = { - properties: { - boolean: { - type: 'boolean', - }, - number: { - type: 'number', - }, - reference: { - type: 'ModelWithString', - }, - required: { - type: 'string', - isRequired: true, - }, - requiredAndReadOnly: { - type: 'string', - isReadOnly: true, - isRequired: true, - }, - string: { - type: 'string', - }, - }, - }; - -})(ModelWithProperties || (ModelWithProperties = {}));" -`; - -exports[`generation v2 javascript file(./test/result/v2/javascript/models/ModelWithReference.js): ./test/result/v2/javascript/models/ModelWithReference.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -/** - * This is a model with one property containing a reference - */ -export let ModelWithReference; -(function (ModelWithReference) { - - ModelWithReference.definition = { - properties: { - prop: { - type: 'ModelWithProperties', - }, - }, - }; - -})(ModelWithReference || (ModelWithReference = {}));" -`; - -exports[`generation v2 javascript file(./test/result/v2/javascript/models/ModelWithString.js): ./test/result/v2/javascript/models/ModelWithString.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -/** - * This is a model with one string property - */ -export let ModelWithString; -(function (ModelWithString) { - - ModelWithString.definition = { - properties: { - prop: { - type: 'string', - }, - }, - }; - -})(ModelWithString || (ModelWithString = {}));" -`; - -exports[`generation v2 javascript file(./test/result/v2/javascript/models/SimpleBoolean.js): ./test/result/v2/javascript/models/SimpleBoolean.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -/** - * This is a simple boolean - */ -export let SimpleBoolean; -(function (SimpleBoolean) { - - SimpleBoolean.definition = { - type: 'boolean', - }; - -})(SimpleBoolean || (SimpleBoolean = {}));" -`; - -exports[`generation v2 javascript file(./test/result/v2/javascript/models/SimpleFile.js): ./test/result/v2/javascript/models/SimpleFile.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -/** - * This is a simple file - */ -export let SimpleFile; -(function (SimpleFile) { - - SimpleFile.definition = { - type: 'File', - }; - -})(SimpleFile || (SimpleFile = {}));" -`; - -exports[`generation v2 javascript file(./test/result/v2/javascript/models/SimpleInteger.js): ./test/result/v2/javascript/models/SimpleInteger.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -/** - * This is a simple number - */ -export let SimpleInteger; -(function (SimpleInteger) { - - SimpleInteger.definition = { - type: 'number', - }; - -})(SimpleInteger || (SimpleInteger = {}));" -`; - -exports[`generation v2 javascript file(./test/result/v2/javascript/models/SimpleReference.js): ./test/result/v2/javascript/models/SimpleReference.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -/** - * This is a simple reference - */ -export let SimpleReference; -(function (SimpleReference) { - - SimpleReference.definition = { - type: 'ModelWithString', - }; - -})(SimpleReference || (SimpleReference = {}));" -`; - -exports[`generation v2 javascript file(./test/result/v2/javascript/models/SimpleString.js): ./test/result/v2/javascript/models/SimpleString.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -/** - * This is a simple string - */ -export let SimpleString; -(function (SimpleString) { - - SimpleString.definition = { - type: 'string', - }; - -})(SimpleString || (SimpleString = {}));" -`; - -exports[`generation v2 javascript file(./test/result/v2/javascript/services/ComplexService.js): ./test/result/v2/javascript/services/ComplexService.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -import { ApiError, catchGenericError } from '../core/ApiError'; -import { request as $request } from '../core/request'; -import { OpenAPI } from '../core/OpenAPI'; - -export class ComplexService { - - /** - * @param parameterObject Parameter containing object - * @param parameterReference Parameter containing reference - * @result ModelWithString Successful response - * @throws ApiError - */ - static async complexTypes( - parameterObject, - parameterReference, - ) { - - const result = await $request({ - method: 'get', - path: \`/api/v\${OpenAPI.VERSION}/complex\`, - query: { - 'parameterObject': parameterObject, - 'parameterReference': parameterReference, - }, - }); - - if (!result.ok) { - switch (result.status) { - case 400: throw new ApiError(result, \`400 server error\`); - case 500: throw new ApiError(result, \`500 server error\`); - } - } - - catchGenericError(result); - - return result.body; - } - -}" -`; - -exports[`generation v2 javascript file(./test/result/v2/javascript/services/DefaultsService.js): ./test/result/v2/javascript/services/DefaultsService.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -import { ApiError, catchGenericError } from '../core/ApiError'; -import { request as $request } from '../core/request'; -import { OpenAPI } from '../core/OpenAPI'; - -export class DefaultsService { - - /** - * @param parameterString This is a simple string - * @param parameterNumber This is a simple number - * @param parameterBoolean This is a simple boolean - * @param parameterEnum This is a simple enum - * @param parameterModel This is a simple model - * @throws ApiError - */ - static async callWithDefaultParameters( - parameterString = 'Hello World!', - parameterNumber = 123, - parameterBoolean = true, - parameterEnum = 'Success', - parameterModel = { - \\"prop\\": \\"Hello World\\" - }, - ) { - - const result = await $request({ - method: 'get', - path: \`/api/v\${OpenAPI.VERSION}/defaults\`, - query: { - 'parameterString': parameterString, - 'parameterNumber': parameterNumber, - 'parameterBoolean': parameterBoolean, - 'parameterEnum': parameterEnum, - 'parameterModel': parameterModel, - }, - }); - - catchGenericError(result); - - return result.body; - } - -}" -`; - -exports[`generation v2 javascript file(./test/result/v2/javascript/services/ParametersService.js): ./test/result/v2/javascript/services/ParametersService.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -import { ApiError, catchGenericError } from '../core/ApiError'; -import { request as $request } from '../core/request'; -import { OpenAPI } from '../core/OpenAPI'; - -export class ParametersService { - - /** - * @param parameterHeader This is the parameter that goes into the request header - * @param parameterQuery This is the parameter that goes into the request query params - * @param parameterForm This is the parameter that goes into the request form data - * @param parameterBody This is the parameter that is send as request body - * @throws ApiError - */ - static async callWithParameters( - parameterHeader, - parameterQuery, - parameterForm, - parameterBody, - ) { - - const result = await $request({ - method: 'get', - path: \`/api/v\${OpenAPI.VERSION}/parameters\`, - headers: { - 'parameterHeader': parameterHeader, - }, - query: { - 'parameterQuery': parameterQuery, - }, - formData: { - 'parameterForm': parameterForm, - }, - body: parameterBody, - }); - - catchGenericError(result); - - return result.body; - } - -}" -`; - -exports[`generation v2 javascript file(./test/result/v2/javascript/services/ResponseService.js): ./test/result/v2/javascript/services/ResponseService.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -import { ApiError, catchGenericError } from '../core/ApiError'; -import { request as $request } from '../core/request'; -import { OpenAPI } from '../core/OpenAPI'; - -export class ResponseService { - - /** - * @result ModelWithString Message for default response - * @throws ApiError - */ - static async callWithDuplicateResponses() { - - const result = await $request({ - method: 'post', - path: \`/api/v\${OpenAPI.VERSION}/response\`, - }); - - if (!result.ok) { - switch (result.status) { - case 500: throw new ApiError(result, \`Message for 500 error\`); - case 501: throw new ApiError(result, \`Message for 501 error\`); - case 502: throw new ApiError(result, \`Message for 502 error\`); - } - } - - catchGenericError(result); - - return result.body; - } - - /** - * @result ModelWithString Message for default response - * @throws ApiError - */ - static async callWithResponse() { - - const result = await $request({ - method: 'get', - path: \`/api/v\${OpenAPI.VERSION}/response\`, - }); - - catchGenericError(result); - - return result.body; - } - - /** - * @result ModelWithString Message for default response - * @result ModelThatExtends Message for 201 response - * @result ModelThatExtendsExtends Message for 202 response - * @throws ApiError - */ - static async callWithResponses() { - - const result = await $request({ - method: 'put', - path: \`/api/v\${OpenAPI.VERSION}/response\`, - }); - - if (!result.ok) { - switch (result.status) { - case 500: throw new ApiError(result, \`Message for 500 error\`); - case 501: throw new ApiError(result, \`Message for 501 error\`); - case 502: throw new ApiError(result, \`Message for 502 error\`); - } - } - - catchGenericError(result); - - return result.body; - } - -}" -`; - -exports[`generation v2 javascript file(./test/result/v2/javascript/services/SimpleService.js): ./test/result/v2/javascript/services/SimpleService.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -import { ApiError, catchGenericError } from '../core/ApiError'; -import { request as $request } from '../core/request'; -import { OpenAPI } from '../core/OpenAPI'; - -export class SimpleService { - - /** - * @throws ApiError - */ - static async deleteCallWithoutParametersAndResponse() { - - const result = await $request({ - method: 'delete', - path: \`/api/v\${OpenAPI.VERSION}/simple\`, - }); - - catchGenericError(result); - - return result.body; - } - - /** - * @throws ApiError - */ - static async getCallWithoutParametersAndResponse() { - - const result = await $request({ - method: 'get', - path: \`/api/v\${OpenAPI.VERSION}/simple\`, - }); - - catchGenericError(result); - - return result.body; - } - - /** - * @throws ApiError - */ - static async headCallWithoutParametersAndResponse() { - - const result = await $request({ - method: 'head', - path: \`/api/v\${OpenAPI.VERSION}/simple\`, - }); - - catchGenericError(result); - - return result.body; - } - - /** - * @throws ApiError - */ - static async optionsCallWithoutParametersAndResponse() { - - const result = await $request({ - method: 'options', - path: \`/api/v\${OpenAPI.VERSION}/simple\`, - }); - - catchGenericError(result); - - return result.body; - } - - /** - * @throws ApiError - */ - static async patchCallWithoutParametersAndResponse() { - - const result = await $request({ - method: 'patch', - path: \`/api/v\${OpenAPI.VERSION}/simple\`, - }); - - catchGenericError(result); - - return result.body; - } - - /** - * @throws ApiError - */ - static async postCallWithoutParametersAndResponse() { - - const result = await $request({ - method: 'post', - path: \`/api/v\${OpenAPI.VERSION}/simple\`, - }); - - catchGenericError(result); - - return result.body; - } - - /** - * @throws ApiError - */ - static async putCallWithoutParametersAndResponse() { - - const result = await $request({ - method: 'put', - path: \`/api/v\${OpenAPI.VERSION}/simple\`, - }); - - catchGenericError(result); - - return result.body; - } - -}" -`; - -exports[`generation v2 javascript file(./test/result/v2/javascript/services/TypesService.js): ./test/result/v2/javascript/services/TypesService.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -import { ApiError, catchGenericError } from '../core/ApiError'; -import { request as $request } from '../core/request'; -import { OpenAPI } from '../core/OpenAPI'; - -export class TypesService { - - /** - * @param parameterNumber This is a number parameter - * @param parameterString This is a string parameter - * @param parameterBoolean This is a boolean parameter - * @param parameterObject This is an object parameter - * @param parameterArray This is an array parameter - * @param parameterDictionary This is a dictionary parameter - * @param parameterEnum This is an enum parameter - * @param id This is a number parameter - * @result number Response is a simple number - * @result string Response is a simple string - * @result boolean Response is a simple boolean - * @result any Response is a simple object - * @throws ApiError - */ - static async types( - parameterNumber = 123, - parameterString = 'default', - parameterBoolean = true, - parameterObject = null, - parameterArray, - parameterDictionary, - parameterEnum, - id, - ) { - - const result = await $request({ - method: 'get', - path: \`/api/v\${OpenAPI.VERSION}/types\`, - query: { - 'parameterNumber': parameterNumber, - 'parameterString': parameterString, - 'parameterBoolean': parameterBoolean, - 'parameterObject': parameterObject, - 'parameterArray': parameterArray, - 'parameterDictionary': parameterDictionary, - 'parameterEnum': parameterEnum, - }, - }); - - catchGenericError(result); - - return result.body; - } - -}" -`; - -exports[`generation v2 typescript file(./test/result/v2/typescript/core/ApiError.ts): ./test/result/v2/typescript/core/ApiError.ts 1`] = ` +exports[`generation v2 file(./test/result/v2/core/ApiError.ts): ./test/result/v2/core/ApiError.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ @@ -1909,7 +61,7 @@ export function catchGenericError(result: Result): void { " `; -exports[`generation v2 typescript file(./test/result/v2/typescript/core/Definition.ts): ./test/result/v2/typescript/core/Definition.ts 1`] = ` +exports[`generation v2 file(./test/result/v2/core/Definition.ts): ./test/result/v2/core/Definition.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ @@ -1963,7 +115,7 @@ export type Definition = " `; -exports[`generation v2 typescript file(./test/result/v2/typescript/core/OpenAPI.ts): ./test/result/v2/typescript/core/OpenAPI.ts 1`] = ` +exports[`generation v2 file(./test/result/v2/core/OpenAPI.ts): ./test/result/v2/core/OpenAPI.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ @@ -1977,7 +129,7 @@ export namespace OpenAPI { }" `; -exports[`generation v2 typescript file(./test/result/v2/typescript/core/RequestOptions.ts): ./test/result/v2/typescript/core/RequestOptions.ts 1`] = ` +exports[`generation v2 file(./test/result/v2/core/RequestOptions.ts): ./test/result/v2/core/RequestOptions.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ @@ -1995,7 +147,7 @@ export interface RequestOptions { " `; -exports[`generation v2 typescript file(./test/result/v2/typescript/core/Result.ts): ./test/result/v2/typescript/core/Result.ts 1`] = ` +exports[`generation v2 file(./test/result/v2/core/Result.ts): ./test/result/v2/core/Result.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ @@ -2011,7 +163,7 @@ export interface Result { " `; -exports[`generation v2 typescript file(./test/result/v2/typescript/core/getFormData.ts): ./test/result/v2/typescript/core/getFormData.ts 1`] = ` +exports[`generation v2 file(./test/result/v2/core/getFormData.ts): ./test/result/v2/core/getFormData.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ @@ -2037,7 +189,7 @@ export function getFormData(params: { [key: string]: any }): FormData { " `; -exports[`generation v2 typescript file(./test/result/v2/typescript/core/getQueryString.ts): ./test/result/v2/typescript/core/getQueryString.ts 1`] = ` +exports[`generation v2 file(./test/result/v2/core/getQueryString.ts): ./test/result/v2/core/getQueryString.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ @@ -2072,7 +224,28 @@ export function getQueryString(params: { [key: string]: any }): string { " `; -exports[`generation v2 typescript file(./test/result/v2/typescript/core/isSuccess.ts): ./test/result/v2/typescript/core/isSuccess.ts 1`] = ` +exports[`generation v2 file(./test/result/v2/core/getSchema.ts): ./test/result/v2/core/getSchema.ts 1`] = ` +"/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +/* prettier-ignore */ + +import * as schemas from '../schemas'; + +/** + * Get a schema object for a given model name. + * @param model The model name to return the schema from. + */ +export function getSchema(model: K) { + if (schemas.hasOwnProperty(model)) { + return schemas[model]; + } + return null; +} +" +`; + +exports[`generation v2 file(./test/result/v2/core/isSuccess.ts): ./test/result/v2/core/isSuccess.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ @@ -2088,7 +261,7 @@ export function isSuccess(status: number): boolean { " `; -exports[`generation v2 typescript file(./test/result/v2/typescript/core/request.ts): ./test/result/v2/typescript/core/request.ts 1`] = ` +exports[`generation v2 file(./test/result/v2/core/request.ts): ./test/result/v2/core/request.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ @@ -2173,7 +346,7 @@ export async function request(options: Readonly): Promise(definition: K) { - if (definitions.hasOwnProperty(definition)) { - return definitions[definition]; - } - return null; -} - +export * from './models/'; +export * from './services/'; " `; -exports[`generation v2 typescript file(./test/result/v2/typescript/models/ArrayWithArray.ts): ./test/result/v2/typescript/models/ArrayWithArray.ts 1`] = ` +exports[`generation v2 file(./test/result/v2/models/ArrayWithArray.ts): ./test/result/v2/models/ArrayWithArray.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ /* prettier-ignore */ -import { ModelWithString } from '../models/ModelWithString'; +import { ModelWithString } from './ModelWithString'; /** * This is a simple array containing an array */ -export type ArrayWithArray = Array>; - -export namespace ArrayWithArray { - - export const definition = { - type: 'Array', - }; - -}" +export type ArrayWithArray = Array>;" `; -exports[`generation v2 typescript file(./test/result/v2/typescript/models/ArrayWithBooleans.ts): ./test/result/v2/typescript/models/ArrayWithBooleans.ts 1`] = ` +exports[`generation v2 file(./test/result/v2/models/ArrayWithBooleans.ts): ./test/result/v2/models/ArrayWithBooleans.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ @@ -2481,18 +515,10 @@ exports[`generation v2 typescript file(./test/result/v2/typescript/models/ArrayW /** * This is a simple array with booleans */ -export type ArrayWithBooleans = Array; - -export namespace ArrayWithBooleans { - - export const definition = { - type: 'Array', - }; - -}" +export type ArrayWithBooleans = Array;" `; -exports[`generation v2 typescript file(./test/result/v2/typescript/models/ArrayWithNumbers.ts): ./test/result/v2/typescript/models/ArrayWithNumbers.ts 1`] = ` +exports[`generation v2 file(./test/result/v2/models/ArrayWithNumbers.ts): ./test/result/v2/models/ArrayWithNumbers.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ @@ -2502,18 +528,10 @@ exports[`generation v2 typescript file(./test/result/v2/typescript/models/ArrayW /** * This is a simple array with numbers */ -export type ArrayWithNumbers = Array; - -export namespace ArrayWithNumbers { - - export const definition = { - type: 'Array', - }; - -}" +export type ArrayWithNumbers = Array;" `; -exports[`generation v2 typescript file(./test/result/v2/typescript/models/ArrayWithProperties.ts): ./test/result/v2/typescript/models/ArrayWithProperties.ts 1`] = ` +exports[`generation v2 file(./test/result/v2/models/ArrayWithProperties.ts): ./test/result/v2/models/ArrayWithProperties.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ @@ -2526,40 +544,24 @@ exports[`generation v2 typescript file(./test/result/v2/typescript/models/ArrayW export type ArrayWithProperties = Array<{ foo?: string, bar?: string, -}>; - -export namespace ArrayWithProperties { - - export const definition = { - type: 'Array', - }; - -}" +}>;" `; -exports[`generation v2 typescript file(./test/result/v2/typescript/models/ArrayWithReferences.ts): ./test/result/v2/typescript/models/ArrayWithReferences.ts 1`] = ` +exports[`generation v2 file(./test/result/v2/models/ArrayWithReferences.ts): ./test/result/v2/models/ArrayWithReferences.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ /* prettier-ignore */ -import { ModelWithString } from '../models/ModelWithString'; +import { ModelWithString } from './ModelWithString'; /** * This is a simple array with references */ -export type ArrayWithReferences = Array; - -export namespace ArrayWithReferences { - - export const definition = { - type: 'Array', - }; - -}" +export type ArrayWithReferences = Array;" `; -exports[`generation v2 typescript file(./test/result/v2/typescript/models/ArrayWithStrings.ts): ./test/result/v2/typescript/models/ArrayWithStrings.ts 1`] = ` +exports[`generation v2 file(./test/result/v2/models/ArrayWithStrings.ts): ./test/result/v2/models/ArrayWithStrings.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ @@ -2569,18 +571,10 @@ exports[`generation v2 typescript file(./test/result/v2/typescript/models/ArrayW /** * This is a simple array with strings */ -export type ArrayWithStrings = Array; - -export namespace ArrayWithStrings { - - export const definition = { - type: 'Array', - }; - -}" +export type ArrayWithStrings = Array;" `; -exports[`generation v2 typescript file(./test/result/v2/typescript/models/Dictionary.ts): ./test/result/v2/typescript/models/Dictionary.ts 1`] = ` +exports[`generation v2 file(./test/result/v2/models/Dictionary.ts): ./test/result/v2/models/Dictionary.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ @@ -2589,69 +583,45 @@ exports[`generation v2 typescript file(./test/result/v2/typescript/models/Dictio export type Dictionary = { [key: string]: T; } - -export namespace Dictionary { - - export const definition = { - type: 'Dictionary' - }; - -} " `; -exports[`generation v2 typescript file(./test/result/v2/typescript/models/DictionaryWithArray.ts): ./test/result/v2/typescript/models/DictionaryWithArray.ts 1`] = ` +exports[`generation v2 file(./test/result/v2/models/DictionaryWithArray.ts): ./test/result/v2/models/DictionaryWithArray.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ /* prettier-ignore */ -import { Dictionary } from '../models/Dictionary'; -import { ModelWithString } from '../models/ModelWithString'; +import { Dictionary } from './Dictionary'; +import { ModelWithString } from './ModelWithString'; /** * This is a complex dictionary */ -export type DictionaryWithArray = Dictionary>; - -export namespace DictionaryWithArray { - - export const definition = { - type: 'Dictionary', - }; - -}" +export type DictionaryWithArray = Dictionary>;" `; -exports[`generation v2 typescript file(./test/result/v2/typescript/models/DictionaryWithDictionary.ts): ./test/result/v2/typescript/models/DictionaryWithDictionary.ts 1`] = ` +exports[`generation v2 file(./test/result/v2/models/DictionaryWithDictionary.ts): ./test/result/v2/models/DictionaryWithDictionary.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ /* prettier-ignore */ -import { Dictionary } from '../models/Dictionary'; +import { Dictionary } from './Dictionary'; /** * This is a string dictionary */ -export type DictionaryWithDictionary = Dictionary>; - -export namespace DictionaryWithDictionary { - - export const definition = { - type: 'Dictionary', - }; - -}" +export type DictionaryWithDictionary = Dictionary>;" `; -exports[`generation v2 typescript file(./test/result/v2/typescript/models/DictionaryWithProperties.ts): ./test/result/v2/typescript/models/DictionaryWithProperties.ts 1`] = ` +exports[`generation v2 file(./test/result/v2/models/DictionaryWithProperties.ts): ./test/result/v2/models/DictionaryWithProperties.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ /* prettier-ignore */ -import { Dictionary } from '../models/Dictionary'; +import { Dictionary } from './Dictionary'; /** * This is a complex dictionary @@ -2659,63 +629,39 @@ import { Dictionary } from '../models/Dictionary'; export type DictionaryWithProperties = Dictionary<{ foo?: string, bar?: string, -}>; - -export namespace DictionaryWithProperties { - - export const definition = { - type: 'Dictionary', - }; - -}" +}>;" `; -exports[`generation v2 typescript file(./test/result/v2/typescript/models/DictionaryWithReference.ts): ./test/result/v2/typescript/models/DictionaryWithReference.ts 1`] = ` +exports[`generation v2 file(./test/result/v2/models/DictionaryWithReference.ts): ./test/result/v2/models/DictionaryWithReference.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ /* prettier-ignore */ -import { Dictionary } from '../models/Dictionary'; -import { ModelWithString } from '../models/ModelWithString'; +import { Dictionary } from './Dictionary'; +import { ModelWithString } from './ModelWithString'; /** * This is a string reference */ -export type DictionaryWithReference = Dictionary; - -export namespace DictionaryWithReference { - - export const definition = { - type: 'Dictionary', - }; - -}" +export type DictionaryWithReference = Dictionary;" `; -exports[`generation v2 typescript file(./test/result/v2/typescript/models/DictionaryWithString.ts): ./test/result/v2/typescript/models/DictionaryWithString.ts 1`] = ` +exports[`generation v2 file(./test/result/v2/models/DictionaryWithString.ts): ./test/result/v2/models/DictionaryWithString.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ /* prettier-ignore */ -import { Dictionary } from '../models/Dictionary'; +import { Dictionary } from './Dictionary'; /** * This is a string dictionary */ -export type DictionaryWithString = Dictionary; - -export namespace DictionaryWithString { - - export const definition = { - type: 'Dictionary', - }; - -}" +export type DictionaryWithString = Dictionary;" `; -exports[`generation v2 typescript file(./test/result/v2/typescript/models/EnumFromDescription.ts): ./test/result/v2/typescript/models/EnumFromDescription.ts 1`] = ` +exports[`generation v2 file(./test/result/v2/models/EnumFromDescription.ts): ./test/result/v2/models/EnumFromDescription.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ @@ -2729,18 +675,10 @@ export enum EnumFromDescription { ERROR = 3, SUCCESS = 1, WARNING = 2, -} - -export namespace EnumFromDescription { - - export const definition = { - type: 'Enum', - }; - }" `; -exports[`generation v2 typescript file(./test/result/v2/typescript/models/EnumWithNumbers.ts): ./test/result/v2/typescript/models/EnumWithNumbers.ts 1`] = ` +exports[`generation v2 file(./test/result/v2/models/EnumWithNumbers.ts): ./test/result/v2/models/EnumWithNumbers.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ @@ -2754,18 +692,10 @@ export enum EnumWithNumbers { NUM_1 = 1, NUM_2 = 2, NUM_3 = 3, -} - -export namespace EnumWithNumbers { - - export const definition = { - type: 'Enum', - }; - }" `; -exports[`generation v2 typescript file(./test/result/v2/typescript/models/EnumWithStrings.ts): ./test/result/v2/typescript/models/EnumWithStrings.ts 1`] = ` +exports[`generation v2 file(./test/result/v2/models/EnumWithStrings.ts): ./test/result/v2/models/EnumWithStrings.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ @@ -2779,18 +709,10 @@ export enum EnumWithStrings { ERROR = 'Error', SUCCESS = 'Success', WARNING = 'Warning', -} - -export namespace EnumWithStrings { - - export const definition = { - type: 'Enum', - }; - }" `; -exports[`generation v2 typescript file(./test/result/v2/typescript/models/ModelLink.ts): ./test/result/v2/typescript/models/ModelLink.ts 1`] = ` +exports[`generation v2 file(./test/result/v2/models/ModelLink.ts): ./test/result/v2/models/ModelLink.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ @@ -2803,27 +725,16 @@ exports[`generation v2 typescript file(./test/result/v2/typescript/models/ModelL export interface ModelLink { id?: string; } - -export namespace ModelLink { - - export const definition = { - properties: { - id: { - type: 'string', - }, - }, - }; - -}" +" `; -exports[`generation v2 typescript file(./test/result/v2/typescript/models/ModelThatExtends.ts): ./test/result/v2/typescript/models/ModelThatExtends.ts 1`] = ` +exports[`generation v2 file(./test/result/v2/models/ModelThatExtends.ts): ./test/result/v2/models/ModelThatExtends.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ /* prettier-ignore */ -import { ModelWithString } from '../models/ModelWithString'; +import { ModelWithString } from './ModelWithString'; /** * This is a model that extends another model @@ -2832,32 +743,17 @@ export interface ModelThatExtends extends ModelWithString { propExtendsA?: string; propExtendsB?: ModelWithString; } - -export namespace ModelThatExtends { - - export const definition = { - properties: { - ...ModelWithString.definition.properties, - propExtendsA: { - type: 'string', - }, - propExtendsB: { - type: 'ModelWithString', - }, - }, - }; - -}" +" `; -exports[`generation v2 typescript file(./test/result/v2/typescript/models/ModelThatExtendsExtends.ts): ./test/result/v2/typescript/models/ModelThatExtendsExtends.ts 1`] = ` +exports[`generation v2 file(./test/result/v2/models/ModelThatExtendsExtends.ts): ./test/result/v2/models/ModelThatExtendsExtends.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ /* prettier-ignore */ -import { ModelThatExtends } from '../models/ModelThatExtends'; -import { ModelWithString } from '../models/ModelWithString'; +import { ModelThatExtends } from './ModelThatExtends'; +import { ModelWithString } from './ModelWithString'; /** * This is a model that extends another model @@ -2866,32 +762,16 @@ export interface ModelThatExtendsExtends extends ModelWithString, ModelThatExten propExtendsC?: string; propExtendsD?: ModelWithString; } - -export namespace ModelThatExtendsExtends { - - export const definition = { - properties: { - ...ModelWithString.definition.properties, - ...ModelThatExtends.definition.properties, - propExtendsC: { - type: 'string', - }, - propExtendsD: { - type: 'ModelWithString', - }, - }, - }; - -}" +" `; -exports[`generation v2 typescript file(./test/result/v2/typescript/models/ModelWithArray.ts): ./test/result/v2/typescript/models/ModelWithArray.ts 1`] = ` +exports[`generation v2 file(./test/result/v2/models/ModelWithArray.ts): ./test/result/v2/models/ModelWithArray.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ /* prettier-ignore */ -import { ModelWithString } from '../models/ModelWithString'; +import { ModelWithString } from './ModelWithString'; /** * This is a model with one property containing an array @@ -2901,27 +781,10 @@ export interface ModelWithArray { propWithFile?: Array; propWithNumber?: Array; } - -export namespace ModelWithArray { - - export const definition = { - properties: { - prop: { - type: 'Array', - }, - propWithFile: { - type: 'Array', - }, - propWithNumber: { - type: 'Array', - }, - }, - }; - -}" +" `; -exports[`generation v2 typescript file(./test/result/v2/typescript/models/ModelWithBoolean.ts): ./test/result/v2/typescript/models/ModelWithBoolean.ts 1`] = ` +exports[`generation v2 file(./test/result/v2/models/ModelWithBoolean.ts): ./test/result/v2/models/ModelWithBoolean.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ @@ -2937,21 +800,10 @@ export interface ModelWithBoolean { */ prop?: boolean; } - -export namespace ModelWithBoolean { - - export const definition = { - properties: { - prop: { - type: 'boolean', - }, - }, - }; - -}" +" `; -exports[`generation v2 typescript file(./test/result/v2/typescript/models/ModelWithCircularReference.ts): ./test/result/v2/typescript/models/ModelWithCircularReference.ts 1`] = ` +exports[`generation v2 file(./test/result/v2/models/ModelWithCircularReference.ts): ./test/result/v2/models/ModelWithCircularReference.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ @@ -2964,27 +816,16 @@ exports[`generation v2 typescript file(./test/result/v2/typescript/models/ModelW export interface ModelWithCircularReference { prop?: ModelWithCircularReference; } - -export namespace ModelWithCircularReference { - - export const definition = { - properties: { - prop: { - type: 'ModelWithCircularReference', - }, - }, - }; - -}" +" `; -exports[`generation v2 typescript file(./test/result/v2/typescript/models/ModelWithDictionary.ts): ./test/result/v2/typescript/models/ModelWithDictionary.ts 1`] = ` +exports[`generation v2 file(./test/result/v2/models/ModelWithDictionary.ts): ./test/result/v2/models/ModelWithDictionary.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ /* prettier-ignore */ -import { Dictionary } from '../models/Dictionary'; +import { Dictionary } from './Dictionary'; /** * This is a model with one property containing a dictionary @@ -2992,27 +833,16 @@ import { Dictionary } from '../models/Dictionary'; export interface ModelWithDictionary { prop?: Dictionary; } - -export namespace ModelWithDictionary { - - export const definition = { - properties: { - prop: { - type: 'Dictionary', - }, - }, - }; - -}" +" `; -exports[`generation v2 typescript file(./test/result/v2/typescript/models/ModelWithDuplicateImports.ts): ./test/result/v2/typescript/models/ModelWithDuplicateImports.ts 1`] = ` +exports[`generation v2 file(./test/result/v2/models/ModelWithDuplicateImports.ts): ./test/result/v2/models/ModelWithDuplicateImports.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ /* prettier-ignore */ -import { ModelWithString } from '../models/ModelWithString'; +import { ModelWithString } from './ModelWithString'; /** * This is a model with duplicated imports @@ -3022,33 +852,16 @@ export interface ModelWithDuplicateImports { propB?: ModelWithString; propC?: ModelWithString; } - -export namespace ModelWithDuplicateImports { - - export const definition = { - properties: { - propA: { - type: 'ModelWithString', - }, - propB: { - type: 'ModelWithString', - }, - propC: { - type: 'ModelWithString', - }, - }, - }; - -}" +" `; -exports[`generation v2 typescript file(./test/result/v2/typescript/models/ModelWithDuplicateProperties.ts): ./test/result/v2/typescript/models/ModelWithDuplicateProperties.ts 1`] = ` +exports[`generation v2 file(./test/result/v2/models/ModelWithDuplicateProperties.ts): ./test/result/v2/models/ModelWithDuplicateProperties.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ /* prettier-ignore */ -import { ModelWithString } from '../models/ModelWithString'; +import { ModelWithString } from './ModelWithString'; /** * This is a model with duplicated properties @@ -3056,21 +869,10 @@ import { ModelWithString } from '../models/ModelWithString'; export interface ModelWithDuplicateProperties { prop?: ModelWithString; } - -export namespace ModelWithDuplicateProperties { - - export const definition = { - properties: { - prop: { - type: 'ModelWithString', - }, - }, - }; - -}" +" `; -exports[`generation v2 typescript file(./test/result/v2/typescript/models/ModelWithEnum.ts): ./test/result/v2/typescript/models/ModelWithEnum.ts 1`] = ` +exports[`generation v2 file(./test/result/v2/models/ModelWithEnum.ts): ./test/result/v2/models/ModelWithEnum.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ @@ -3098,18 +900,12 @@ export namespace ModelWithEnum { ERROR = 'Error', } - export const definition = { - properties: { - test: { - type: 'Enum', - }, - }, - }; -}" +} +" `; -exports[`generation v2 typescript file(./test/result/v2/typescript/models/ModelWithEnumFromDescription.ts): ./test/result/v2/typescript/models/ModelWithEnumFromDescription.ts 1`] = ` +exports[`generation v2 file(./test/result/v2/models/ModelWithEnumFromDescription.ts): ./test/result/v2/models/ModelWithEnumFromDescription.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ @@ -3137,18 +933,12 @@ export namespace ModelWithEnumFromDescription { ERROR = 3, } - export const definition = { - properties: { - test: { - type: 'Enum', - }, - }, - }; -}" +} +" `; -exports[`generation v2 typescript file(./test/result/v2/typescript/models/ModelWithInteger.ts): ./test/result/v2/typescript/models/ModelWithInteger.ts 1`] = ` +exports[`generation v2 file(./test/result/v2/models/ModelWithInteger.ts): ./test/result/v2/models/ModelWithInteger.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ @@ -3164,28 +954,17 @@ export interface ModelWithInteger { */ prop?: number; } - -export namespace ModelWithInteger { - - export const definition = { - properties: { - prop: { - type: 'number', - }, - }, - }; - -}" +" `; -exports[`generation v2 typescript file(./test/result/v2/typescript/models/ModelWithLink.ts): ./test/result/v2/typescript/models/ModelWithLink.ts 1`] = ` +exports[`generation v2 file(./test/result/v2/models/ModelWithLink.ts): ./test/result/v2/models/ModelWithLink.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ /* prettier-ignore */ -import { ModelLink } from '../models/ModelLink'; -import { ModelWithString } from '../models/ModelWithString'; +import { ModelLink } from './ModelLink'; +import { ModelWithString } from './ModelWithString'; /** * This is a model that can have a template?? @@ -3193,27 +972,16 @@ import { ModelWithString } from '../models/ModelWithString'; export interface ModelWithLink { prop?: ModelLink; } - -export namespace ModelWithLink { - - export const definition = { - properties: { - prop: { - type: 'ModelLink', - }, - }, - }; - -}" +" `; -exports[`generation v2 typescript file(./test/result/v2/typescript/models/ModelWithNestedEnums.ts): ./test/result/v2/typescript/models/ModelWithNestedEnums.ts 1`] = ` +exports[`generation v2 file(./test/result/v2/models/ModelWithNestedEnums.ts): ./test/result/v2/models/ModelWithNestedEnums.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ /* prettier-ignore */ -import { Dictionary } from '../models/Dictionary'; +import { Dictionary } from './Dictionary'; /** * This is a model with nested enums @@ -3224,30 +992,10 @@ export interface ModelWithNestedEnums { dictionaryWithEnum?: Dictionary<('Success' | 'Warning' | 'Error')>; dictionaryWithEnumFromDescription?: Dictionary<(1 | 2 | 3)>; } - -export namespace ModelWithNestedEnums { - - export const definition = { - properties: { - arrayWithDescription: { - type: 'Array', - }, - arrayWithEnum: { - type: 'Array', - }, - dictionaryWithEnum: { - type: 'Dictionary', - }, - dictionaryWithEnumFromDescription: { - type: 'Dictionary', - }, - }, - }; - -}" +" `; -exports[`generation v2 typescript file(./test/result/v2/typescript/models/ModelWithNestedProperties.ts): ./test/result/v2/typescript/models/ModelWithNestedProperties.ts 1`] = ` +exports[`generation v2 file(./test/result/v2/models/ModelWithNestedProperties.ts): ./test/result/v2/models/ModelWithNestedProperties.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ @@ -3264,41 +1012,16 @@ export interface ModelWithNestedProperties { }, }; } - -export namespace ModelWithNestedProperties { - - export const definition = { - properties: { - first: { - properties: { - second: { - properties: { - third: { - type: 'string', - isReadOnly: true, - isRequired: true, - }, - }, - isReadOnly: true, - isRequired: true, - }, - }, - isReadOnly: true, - isRequired: true, - }, - }, - }; - -}" +" `; -exports[`generation v2 typescript file(./test/result/v2/typescript/models/ModelWithProperties.ts): ./test/result/v2/typescript/models/ModelWithProperties.ts 1`] = ` +exports[`generation v2 file(./test/result/v2/models/ModelWithProperties.ts): ./test/result/v2/models/ModelWithProperties.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ /* prettier-ignore */ -import { ModelWithString } from '../models/ModelWithString'; +import { ModelWithString } from './ModelWithString'; /** * This is a model with one nested property @@ -3311,45 +1034,16 @@ export interface ModelWithProperties { readonly requiredAndReadOnly: string; string?: string; } - -export namespace ModelWithProperties { - - export const definition = { - properties: { - boolean: { - type: 'boolean', - }, - number: { - type: 'number', - }, - reference: { - type: 'ModelWithString', - }, - required: { - type: 'string', - isRequired: true, - }, - requiredAndReadOnly: { - type: 'string', - isReadOnly: true, - isRequired: true, - }, - string: { - type: 'string', - }, - }, - }; - -}" +" `; -exports[`generation v2 typescript file(./test/result/v2/typescript/models/ModelWithReference.ts): ./test/result/v2/typescript/models/ModelWithReference.ts 1`] = ` +exports[`generation v2 file(./test/result/v2/models/ModelWithReference.ts): ./test/result/v2/models/ModelWithReference.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ /* prettier-ignore */ -import { ModelWithProperties } from '../models/ModelWithProperties'; +import { ModelWithProperties } from './ModelWithProperties'; /** * This is a model with one property containing a reference @@ -3357,21 +1051,10 @@ import { ModelWithProperties } from '../models/ModelWithProperties'; export interface ModelWithReference { prop?: ModelWithProperties; } - -export namespace ModelWithReference { - - export const definition = { - properties: { - prop: { - type: 'ModelWithProperties', - }, - }, - }; - -}" +" `; -exports[`generation v2 typescript file(./test/result/v2/typescript/models/ModelWithString.ts): ./test/result/v2/typescript/models/ModelWithString.ts 1`] = ` +exports[`generation v2 file(./test/result/v2/models/ModelWithString.ts): ./test/result/v2/models/ModelWithString.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ @@ -3387,21 +1070,10 @@ export interface ModelWithString { */ prop?: string; } - -export namespace ModelWithString { - - export const definition = { - properties: { - prop: { - type: 'string', - }, - }, - }; - -}" +" `; -exports[`generation v2 typescript file(./test/result/v2/typescript/models/SimpleBoolean.ts): ./test/result/v2/typescript/models/SimpleBoolean.ts 1`] = ` +exports[`generation v2 file(./test/result/v2/models/SimpleBoolean.ts): ./test/result/v2/models/SimpleBoolean.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ @@ -3411,18 +1083,10 @@ exports[`generation v2 typescript file(./test/result/v2/typescript/models/Simple /** * This is a simple boolean */ -export type SimpleBoolean = boolean; - -export namespace SimpleBoolean { - - export const definition = { - type: 'boolean', - }; - -}" +export type SimpleBoolean = boolean;" `; -exports[`generation v2 typescript file(./test/result/v2/typescript/models/SimpleFile.ts): ./test/result/v2/typescript/models/SimpleFile.ts 1`] = ` +exports[`generation v2 file(./test/result/v2/models/SimpleFile.ts): ./test/result/v2/models/SimpleFile.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ @@ -3432,18 +1096,10 @@ exports[`generation v2 typescript file(./test/result/v2/typescript/models/Simple /** * This is a simple file */ -export type SimpleFile = File; - -export namespace SimpleFile { - - export const definition = { - type: 'File', - }; - -}" +export type SimpleFile = File;" `; -exports[`generation v2 typescript file(./test/result/v2/typescript/models/SimpleInteger.ts): ./test/result/v2/typescript/models/SimpleInteger.ts 1`] = ` +exports[`generation v2 file(./test/result/v2/models/SimpleInteger.ts): ./test/result/v2/models/SimpleInteger.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ @@ -3453,40 +1109,24 @@ exports[`generation v2 typescript file(./test/result/v2/typescript/models/Simple /** * This is a simple number */ -export type SimpleInteger = number; - -export namespace SimpleInteger { - - export const definition = { - type: 'number', - }; - -}" +export type SimpleInteger = number;" `; -exports[`generation v2 typescript file(./test/result/v2/typescript/models/SimpleReference.ts): ./test/result/v2/typescript/models/SimpleReference.ts 1`] = ` +exports[`generation v2 file(./test/result/v2/models/SimpleReference.ts): ./test/result/v2/models/SimpleReference.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ /* prettier-ignore */ -import { ModelWithString } from '../models/ModelWithString'; +import { ModelWithString } from './ModelWithString'; /** * This is a simple reference */ -export type SimpleReference = ModelWithString; - -export namespace SimpleReference { - - export const definition = { - type: 'ModelWithString', - }; - -}" +export type SimpleReference = ModelWithString;" `; -exports[`generation v2 typescript file(./test/result/v2/typescript/models/SimpleString.ts): ./test/result/v2/typescript/models/SimpleString.ts 1`] = ` +exports[`generation v2 file(./test/result/v2/models/SimpleString.ts): ./test/result/v2/models/SimpleString.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ @@ -3496,18 +1136,695 @@ exports[`generation v2 typescript file(./test/result/v2/typescript/models/Simple /** * This is a simple string */ -export type SimpleString = string; - -export namespace SimpleString { - - export const definition = { - type: 'string', - }; - -}" +export type SimpleString = string;" `; -exports[`generation v2 typescript file(./test/result/v2/typescript/services/ComplexService.ts): ./test/result/v2/typescript/services/ComplexService.ts 1`] = ` +exports[`generation v2 file(./test/result/v2/models/index.ts): ./test/result/v2/models/index.ts 1`] = ` +"/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +/* prettier-ignore */ + +export { ArrayWithArray } from './ArrayWithArray'; +export { ArrayWithBooleans } from './ArrayWithBooleans'; +export { ArrayWithNumbers } from './ArrayWithNumbers'; +export { ArrayWithProperties } from './ArrayWithProperties'; +export { ArrayWithReferences } from './ArrayWithReferences'; +export { ArrayWithStrings } from './ArrayWithStrings'; +export { DictionaryWithArray } from './DictionaryWithArray'; +export { DictionaryWithDictionary } from './DictionaryWithDictionary'; +export { DictionaryWithProperties } from './DictionaryWithProperties'; +export { DictionaryWithReference } from './DictionaryWithReference'; +export { DictionaryWithString } from './DictionaryWithString'; +export { EnumFromDescription } from './EnumFromDescription'; +export { EnumWithNumbers } from './EnumWithNumbers'; +export { EnumWithStrings } from './EnumWithStrings'; +export { ModelLink } from './ModelLink'; +export { ModelThatExtends } from './ModelThatExtends'; +export { ModelThatExtendsExtends } from './ModelThatExtendsExtends'; +export { ModelWithArray } from './ModelWithArray'; +export { ModelWithBoolean } from './ModelWithBoolean'; +export { ModelWithCircularReference } from './ModelWithCircularReference'; +export { ModelWithDictionary } from './ModelWithDictionary'; +export { ModelWithDuplicateImports } from './ModelWithDuplicateImports'; +export { ModelWithDuplicateProperties } from './ModelWithDuplicateProperties'; +export { ModelWithEnum } from './ModelWithEnum'; +export { ModelWithEnumFromDescription } from './ModelWithEnumFromDescription'; +export { ModelWithInteger } from './ModelWithInteger'; +export { ModelWithLink } from './ModelWithLink'; +export { ModelWithNestedEnums } from './ModelWithNestedEnums'; +export { ModelWithNestedProperties } from './ModelWithNestedProperties'; +export { ModelWithProperties } from './ModelWithProperties'; +export { ModelWithReference } from './ModelWithReference'; +export { ModelWithString } from './ModelWithString'; +export { SimpleBoolean } from './SimpleBoolean'; +export { SimpleFile } from './SimpleFile'; +export { SimpleInteger } from './SimpleInteger'; +export { SimpleReference } from './SimpleReference'; +export { SimpleString } from './SimpleString'; +" +`; + +exports[`generation v2 file(./test/result/v2/schemas/$ArrayWithArray.ts): ./test/result/v2/schemas/$ArrayWithArray.ts 1`] = ` +"/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +/* prettier-ignore */ + + +export const $ArrayWithArray = { + type: 'Array', +};" +`; + +exports[`generation v2 file(./test/result/v2/schemas/$ArrayWithBooleans.ts): ./test/result/v2/schemas/$ArrayWithBooleans.ts 1`] = ` +"/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +/* prettier-ignore */ + + +export const $ArrayWithBooleans = { + type: 'Array', +};" +`; + +exports[`generation v2 file(./test/result/v2/schemas/$ArrayWithNumbers.ts): ./test/result/v2/schemas/$ArrayWithNumbers.ts 1`] = ` +"/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +/* prettier-ignore */ + + +export const $ArrayWithNumbers = { + type: 'Array', +};" +`; + +exports[`generation v2 file(./test/result/v2/schemas/$ArrayWithProperties.ts): ./test/result/v2/schemas/$ArrayWithProperties.ts 1`] = ` +"/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +/* prettier-ignore */ + + +export const $ArrayWithProperties = { + type: 'Array', +};" +`; + +exports[`generation v2 file(./test/result/v2/schemas/$ArrayWithReferences.ts): ./test/result/v2/schemas/$ArrayWithReferences.ts 1`] = ` +"/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +/* prettier-ignore */ + + +export const $ArrayWithReferences = { + type: 'Array', +};" +`; + +exports[`generation v2 file(./test/result/v2/schemas/$ArrayWithStrings.ts): ./test/result/v2/schemas/$ArrayWithStrings.ts 1`] = ` +"/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +/* prettier-ignore */ + + +export const $ArrayWithStrings = { + type: 'Array', +};" +`; + +exports[`generation v2 file(./test/result/v2/schemas/$Dictionary.ts): ./test/result/v2/schemas/$Dictionary.ts 1`] = ` +"/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +/* prettier-ignore */ + +export const $Dictionary = { + type: 'Dictionary' +}; +" +`; + +exports[`generation v2 file(./test/result/v2/schemas/$DictionaryWithArray.ts): ./test/result/v2/schemas/$DictionaryWithArray.ts 1`] = ` +"/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +/* prettier-ignore */ + + +export const $DictionaryWithArray = { + type: 'Dictionary', +};" +`; + +exports[`generation v2 file(./test/result/v2/schemas/$DictionaryWithDictionary.ts): ./test/result/v2/schemas/$DictionaryWithDictionary.ts 1`] = ` +"/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +/* prettier-ignore */ + + +export const $DictionaryWithDictionary = { + type: 'Dictionary', +};" +`; + +exports[`generation v2 file(./test/result/v2/schemas/$DictionaryWithProperties.ts): ./test/result/v2/schemas/$DictionaryWithProperties.ts 1`] = ` +"/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +/* prettier-ignore */ + + +export const $DictionaryWithProperties = { + type: 'Dictionary', +};" +`; + +exports[`generation v2 file(./test/result/v2/schemas/$DictionaryWithReference.ts): ./test/result/v2/schemas/$DictionaryWithReference.ts 1`] = ` +"/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +/* prettier-ignore */ + + +export const $DictionaryWithReference = { + type: 'Dictionary', +};" +`; + +exports[`generation v2 file(./test/result/v2/schemas/$DictionaryWithString.ts): ./test/result/v2/schemas/$DictionaryWithString.ts 1`] = ` +"/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +/* prettier-ignore */ + + +export const $DictionaryWithString = { + type: 'Dictionary', +};" +`; + +exports[`generation v2 file(./test/result/v2/schemas/$EnumFromDescription.ts): ./test/result/v2/schemas/$EnumFromDescription.ts 1`] = ` +"/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +/* prettier-ignore */ + + +export const $EnumFromDescription = { + type: 'Enum', +};" +`; + +exports[`generation v2 file(./test/result/v2/schemas/$EnumWithNumbers.ts): ./test/result/v2/schemas/$EnumWithNumbers.ts 1`] = ` +"/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +/* prettier-ignore */ + + +export const $EnumWithNumbers = { + type: 'Enum', +};" +`; + +exports[`generation v2 file(./test/result/v2/schemas/$EnumWithStrings.ts): ./test/result/v2/schemas/$EnumWithStrings.ts 1`] = ` +"/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +/* prettier-ignore */ + + +export const $EnumWithStrings = { + type: 'Enum', +};" +`; + +exports[`generation v2 file(./test/result/v2/schemas/$ModelLink.ts): ./test/result/v2/schemas/$ModelLink.ts 1`] = ` +"/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +/* prettier-ignore */ + + +export const $ModelLink = { + properties: { + id: { + type: 'string', + }, + }, +};" +`; + +exports[`generation v2 file(./test/result/v2/schemas/$ModelThatExtends.ts): ./test/result/v2/schemas/$ModelThatExtends.ts 1`] = ` +"/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +/* prettier-ignore */ + +import { $ModelWithString } from './$ModelWithString'; + +export const $ModelThatExtends = { + properties: { + ...$ModelWithString.properties, + propExtendsA: { + type: 'string', + }, + propExtendsB: { + type: 'ModelWithString', + }, + }, +};" +`; + +exports[`generation v2 file(./test/result/v2/schemas/$ModelThatExtendsExtends.ts): ./test/result/v2/schemas/$ModelThatExtendsExtends.ts 1`] = ` +"/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +/* prettier-ignore */ + +import { $ModelWithString } from './$ModelWithString'; +import { $ModelThatExtends } from './$ModelThatExtends'; + +export const $ModelThatExtendsExtends = { + properties: { + ...$ModelWithString.properties, + ...$ModelThatExtends.properties, + propExtendsC: { + type: 'string', + }, + propExtendsD: { + type: 'ModelWithString', + }, + }, +};" +`; + +exports[`generation v2 file(./test/result/v2/schemas/$ModelWithArray.ts): ./test/result/v2/schemas/$ModelWithArray.ts 1`] = ` +"/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +/* prettier-ignore */ + + +export const $ModelWithArray = { + properties: { + prop: { + type: 'Array', + }, + propWithFile: { + type: 'Array', + }, + propWithNumber: { + type: 'Array', + }, + }, +};" +`; + +exports[`generation v2 file(./test/result/v2/schemas/$ModelWithBoolean.ts): ./test/result/v2/schemas/$ModelWithBoolean.ts 1`] = ` +"/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +/* prettier-ignore */ + + +export const $ModelWithBoolean = { + properties: { + prop: { + type: 'boolean', + }, + }, +};" +`; + +exports[`generation v2 file(./test/result/v2/schemas/$ModelWithCircularReference.ts): ./test/result/v2/schemas/$ModelWithCircularReference.ts 1`] = ` +"/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +/* prettier-ignore */ + + +export const $ModelWithCircularReference = { + properties: { + prop: { + type: 'ModelWithCircularReference', + }, + }, +};" +`; + +exports[`generation v2 file(./test/result/v2/schemas/$ModelWithDictionary.ts): ./test/result/v2/schemas/$ModelWithDictionary.ts 1`] = ` +"/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +/* prettier-ignore */ + + +export const $ModelWithDictionary = { + properties: { + prop: { + type: 'Dictionary', + }, + }, +};" +`; + +exports[`generation v2 file(./test/result/v2/schemas/$ModelWithDuplicateImports.ts): ./test/result/v2/schemas/$ModelWithDuplicateImports.ts 1`] = ` +"/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +/* prettier-ignore */ + + +export const $ModelWithDuplicateImports = { + properties: { + propA: { + type: 'ModelWithString', + }, + propB: { + type: 'ModelWithString', + }, + propC: { + type: 'ModelWithString', + }, + }, +};" +`; + +exports[`generation v2 file(./test/result/v2/schemas/$ModelWithDuplicateProperties.ts): ./test/result/v2/schemas/$ModelWithDuplicateProperties.ts 1`] = ` +"/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +/* prettier-ignore */ + + +export const $ModelWithDuplicateProperties = { + properties: { + prop: { + type: 'ModelWithString', + }, + }, +};" +`; + +exports[`generation v2 file(./test/result/v2/schemas/$ModelWithEnum.ts): ./test/result/v2/schemas/$ModelWithEnum.ts 1`] = ` +"/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +/* prettier-ignore */ + + +export const $ModelWithEnum = { + properties: { + test: { + type: 'Enum', + }, + }, +};" +`; + +exports[`generation v2 file(./test/result/v2/schemas/$ModelWithEnumFromDescription.ts): ./test/result/v2/schemas/$ModelWithEnumFromDescription.ts 1`] = ` +"/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +/* prettier-ignore */ + + +export const $ModelWithEnumFromDescription = { + properties: { + test: { + type: 'Enum', + }, + }, +};" +`; + +exports[`generation v2 file(./test/result/v2/schemas/$ModelWithInteger.ts): ./test/result/v2/schemas/$ModelWithInteger.ts 1`] = ` +"/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +/* prettier-ignore */ + + +export const $ModelWithInteger = { + properties: { + prop: { + type: 'number', + }, + }, +};" +`; + +exports[`generation v2 file(./test/result/v2/schemas/$ModelWithLink.ts): ./test/result/v2/schemas/$ModelWithLink.ts 1`] = ` +"/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +/* prettier-ignore */ + + +export const $ModelWithLink = { + properties: { + prop: { + type: 'ModelLink', + }, + }, +};" +`; + +exports[`generation v2 file(./test/result/v2/schemas/$ModelWithNestedEnums.ts): ./test/result/v2/schemas/$ModelWithNestedEnums.ts 1`] = ` +"/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +/* prettier-ignore */ + + +export const $ModelWithNestedEnums = { + properties: { + arrayWithDescription: { + type: 'Array', + }, + arrayWithEnum: { + type: 'Array', + }, + dictionaryWithEnum: { + type: 'Dictionary', + }, + dictionaryWithEnumFromDescription: { + type: 'Dictionary', + }, + }, +};" +`; + +exports[`generation v2 file(./test/result/v2/schemas/$ModelWithNestedProperties.ts): ./test/result/v2/schemas/$ModelWithNestedProperties.ts 1`] = ` +"/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +/* prettier-ignore */ + + +export const $ModelWithNestedProperties = { + properties: { + first: { + properties: { + second: { + properties: { + third: { + type: 'string', + isReadOnly: true, + isRequired: true, + }, + }, + isReadOnly: true, + isRequired: true, + }, + }, + isReadOnly: true, + isRequired: true, + }, + }, +};" +`; + +exports[`generation v2 file(./test/result/v2/schemas/$ModelWithProperties.ts): ./test/result/v2/schemas/$ModelWithProperties.ts 1`] = ` +"/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +/* prettier-ignore */ + + +export const $ModelWithProperties = { + properties: { + boolean: { + type: 'boolean', + }, + number: { + type: 'number', + }, + reference: { + type: 'ModelWithString', + }, + required: { + type: 'string', + isRequired: true, + }, + requiredAndReadOnly: { + type: 'string', + isReadOnly: true, + isRequired: true, + }, + string: { + type: 'string', + }, + }, +};" +`; + +exports[`generation v2 file(./test/result/v2/schemas/$ModelWithReference.ts): ./test/result/v2/schemas/$ModelWithReference.ts 1`] = ` +"/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +/* prettier-ignore */ + + +export const $ModelWithReference = { + properties: { + prop: { + type: 'ModelWithProperties', + }, + }, +};" +`; + +exports[`generation v2 file(./test/result/v2/schemas/$ModelWithString.ts): ./test/result/v2/schemas/$ModelWithString.ts 1`] = ` +"/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +/* prettier-ignore */ + + +export const $ModelWithString = { + properties: { + prop: { + type: 'string', + }, + }, +};" +`; + +exports[`generation v2 file(./test/result/v2/schemas/$SimpleBoolean.ts): ./test/result/v2/schemas/$SimpleBoolean.ts 1`] = ` +"/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +/* prettier-ignore */ + + +export const $SimpleBoolean = { + type: 'boolean', +};" +`; + +exports[`generation v2 file(./test/result/v2/schemas/$SimpleFile.ts): ./test/result/v2/schemas/$SimpleFile.ts 1`] = ` +"/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +/* prettier-ignore */ + + +export const $SimpleFile = { + type: 'File', +};" +`; + +exports[`generation v2 file(./test/result/v2/schemas/$SimpleInteger.ts): ./test/result/v2/schemas/$SimpleInteger.ts 1`] = ` +"/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +/* prettier-ignore */ + + +export const $SimpleInteger = { + type: 'number', +};" +`; + +exports[`generation v2 file(./test/result/v2/schemas/$SimpleReference.ts): ./test/result/v2/schemas/$SimpleReference.ts 1`] = ` +"/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +/* prettier-ignore */ + + +export const $SimpleReference = { + type: 'ModelWithString', +};" +`; + +exports[`generation v2 file(./test/result/v2/schemas/$SimpleString.ts): ./test/result/v2/schemas/$SimpleString.ts 1`] = ` +"/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +/* prettier-ignore */ + + +export const $SimpleString = { + type: 'string', +};" +`; + +exports[`generation v2 file(./test/result/v2/schemas/index.ts): ./test/result/v2/schemas/index.ts 1`] = ` +"/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +/* prettier-ignore */ + +export { $ArrayWithArray as ArrayWithArray } from './$ArrayWithArray'; +export { $ArrayWithBooleans as ArrayWithBooleans } from './$ArrayWithBooleans'; +export { $ArrayWithNumbers as ArrayWithNumbers } from './$ArrayWithNumbers'; +export { $ArrayWithProperties as ArrayWithProperties } from './$ArrayWithProperties'; +export { $ArrayWithReferences as ArrayWithReferences } from './$ArrayWithReferences'; +export { $ArrayWithStrings as ArrayWithStrings } from './$ArrayWithStrings'; +export { $DictionaryWithArray as DictionaryWithArray } from './$DictionaryWithArray'; +export { $DictionaryWithDictionary as DictionaryWithDictionary } from './$DictionaryWithDictionary'; +export { $DictionaryWithProperties as DictionaryWithProperties } from './$DictionaryWithProperties'; +export { $DictionaryWithReference as DictionaryWithReference } from './$DictionaryWithReference'; +export { $DictionaryWithString as DictionaryWithString } from './$DictionaryWithString'; +export { $EnumFromDescription as EnumFromDescription } from './$EnumFromDescription'; +export { $EnumWithNumbers as EnumWithNumbers } from './$EnumWithNumbers'; +export { $EnumWithStrings as EnumWithStrings } from './$EnumWithStrings'; +export { $ModelLink as ModelLink } from './$ModelLink'; +export { $ModelThatExtends as ModelThatExtends } from './$ModelThatExtends'; +export { $ModelThatExtendsExtends as ModelThatExtendsExtends } from './$ModelThatExtendsExtends'; +export { $ModelWithArray as ModelWithArray } from './$ModelWithArray'; +export { $ModelWithBoolean as ModelWithBoolean } from './$ModelWithBoolean'; +export { $ModelWithCircularReference as ModelWithCircularReference } from './$ModelWithCircularReference'; +export { $ModelWithDictionary as ModelWithDictionary } from './$ModelWithDictionary'; +export { $ModelWithDuplicateImports as ModelWithDuplicateImports } from './$ModelWithDuplicateImports'; +export { $ModelWithDuplicateProperties as ModelWithDuplicateProperties } from './$ModelWithDuplicateProperties'; +export { $ModelWithEnum as ModelWithEnum } from './$ModelWithEnum'; +export { $ModelWithEnumFromDescription as ModelWithEnumFromDescription } from './$ModelWithEnumFromDescription'; +export { $ModelWithInteger as ModelWithInteger } from './$ModelWithInteger'; +export { $ModelWithLink as ModelWithLink } from './$ModelWithLink'; +export { $ModelWithNestedEnums as ModelWithNestedEnums } from './$ModelWithNestedEnums'; +export { $ModelWithNestedProperties as ModelWithNestedProperties } from './$ModelWithNestedProperties'; +export { $ModelWithProperties as ModelWithProperties } from './$ModelWithProperties'; +export { $ModelWithReference as ModelWithReference } from './$ModelWithReference'; +export { $ModelWithString as ModelWithString } from './$ModelWithString'; +export { $SimpleBoolean as SimpleBoolean } from './$SimpleBoolean'; +export { $SimpleFile as SimpleFile } from './$SimpleFile'; +export { $SimpleInteger as SimpleInteger } from './$SimpleInteger'; +export { $SimpleReference as SimpleReference } from './$SimpleReference'; +export { $SimpleString as SimpleString } from './$SimpleString'; +" +`; + +exports[`generation v2 file(./test/result/v2/services/ComplexService.ts): ./test/result/v2/services/ComplexService.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ @@ -3561,7 +1878,7 @@ export class ComplexService { }" `; -exports[`generation v2 typescript file(./test/result/v2/typescript/services/DefaultsService.ts): ./test/result/v2/typescript/services/DefaultsService.ts 1`] = ` +exports[`generation v2 file(./test/result/v2/services/DefaultsService.ts): ./test/result/v2/services/DefaultsService.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ @@ -3612,7 +1929,7 @@ export class DefaultsService { }" `; -exports[`generation v2 typescript file(./test/result/v2/typescript/services/ParametersService.ts): ./test/result/v2/typescript/services/ParametersService.ts 1`] = ` +exports[`generation v2 file(./test/result/v2/services/ParametersService.ts): ./test/result/v2/services/ParametersService.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ @@ -3661,7 +1978,7 @@ export class ParametersService { }" `; -exports[`generation v2 typescript file(./test/result/v2/typescript/services/ResponseService.ts): ./test/result/v2/typescript/services/ResponseService.ts 1`] = ` +exports[`generation v2 file(./test/result/v2/services/ResponseService.ts): ./test/result/v2/services/ResponseService.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ @@ -3745,7 +2062,7 @@ export class ResponseService { }" `; -exports[`generation v2 typescript file(./test/result/v2/typescript/services/SimpleService.ts): ./test/result/v2/typescript/services/SimpleService.ts 1`] = ` +exports[`generation v2 file(./test/result/v2/services/SimpleService.ts): ./test/result/v2/services/SimpleService.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ @@ -3865,7 +2182,7 @@ export class SimpleService { }" `; -exports[`generation v2 typescript file(./test/result/v2/typescript/services/TypesService.ts): ./test/result/v2/typescript/services/TypesService.ts 1`] = ` +exports[`generation v2 file(./test/result/v2/services/TypesService.ts): ./test/result/v2/services/TypesService.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ @@ -3926,1901 +2243,22 @@ export class TypesService { }" `; -exports[`generation v3 javascript file(./test/result/v3/javascript/core/ApiError.js): ./test/result/v3/javascript/core/ApiError.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ +exports[`generation v2 file(./test/result/v2/services/index.ts): ./test/result/v2/services/index.ts 1`] = ` +"/* istanbul ignore file */ +/* tslint:disable */ /* eslint-disable */ /* prettier-ignore */ -import { isSuccess } from \\"./isSuccess\\"; - -export class ApiError extends Error { - - constructor(result, message) { - super(message); - - this.url = result.url; - this.status = result.status; - this.statusText = result.statusText; - this.body = result.body; - } -} - -(function (ApiError) { - let Message; - (function (Message) { - Message.BAD_REQUEST = 'Bad Request'; - Message.UNAUTHORIZED = 'Unauthorized'; - Message.FORBIDDEN = 'Forbidden'; - Message.NOT_FOUND = 'Not Found'; - Message.INTERNAL_SERVER_ERROR = 'Internal Server Error'; - Message.BAD_GATEWAY = 'Bad Gateway'; - Message.SERVICE_UNAVAILABLE = 'Service Unavailable'; - Message.GENERIC_ERROR = 'Generic Error'; - })(Message = ApiError.Message || (ApiError.Message = {})); -})(ApiError || (ApiError = {})); - -/** - * Catch common errors (based on status code). - * @param result - */ -export function catchGenericError(result) { - - switch (result.status) { - case 400: throw new ApiError(result, ApiError.Message.BAD_REQUEST); - case 401: throw new ApiError(result, ApiError.Message.UNAUTHORIZED); - case 403: throw new ApiError(result, ApiError.Message.FORBIDDEN); - case 404: throw new ApiError(result, ApiError.Message.NOT_FOUND); - case 500: throw new ApiError(result, ApiError.Message.INTERNAL_SERVER_ERROR); - case 502: throw new ApiError(result, ApiError.Message.BAD_GATEWAY); - case 503: throw new ApiError(result, ApiError.Message.SERVICE_UNAVAILABLE); - } - - if (!isSuccess(result.status)) { - throw new ApiError(result, ApiError.Message.GENERIC_ERROR); - } -} +export { ComplexService } from './ComplexService'; +export { DefaultsService } from './DefaultsService'; +export { ParametersService } from './ParametersService'; +export { ResponseService } from './ResponseService'; +export { SimpleService } from './SimpleService'; +export { TypesService } from './TypesService'; " `; -exports[`generation v3 javascript file(./test/result/v3/javascript/core/OpenAPI.js): ./test/result/v3/javascript/core/OpenAPI.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -export let OpenAPI; -(function (OpenAPI) { - OpenAPI.BASE = '/api'; - OpenAPI.VERSION = '1'; - OpenAPI.CLIENT = 'xhr'; - OpenAPI.TOKEN = ''; -})(OpenAPI || (OpenAPI = {}));" -`; - -exports[`generation v3 javascript file(./test/result/v3/javascript/core/getFormData.js): ./test/result/v3/javascript/core/getFormData.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -/** - * Get FormData from object. This method is needed to upload - * multipart form data to the REST API. - * @param params Key value based object. - */ -export function getFormData(params) { - const formData = new FormData(); - for (const key in params) { - if (typeof params[key] !== 'undefined') { - const value = params[key]; - if (value !== undefined && value !== null) { - formData.append(key, value); - } - } - } - return formData; -} -" -`; - -exports[`generation v3 javascript file(./test/result/v3/javascript/core/getQueryString.js): ./test/result/v3/javascript/core/getQueryString.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -/** - * Get query string from query parameters object. This method also - * supports multi-value items by creating a key for each item. - * @param params Key value based object. - */ -export function getQueryString(params) { - const qs = []; - for (const key in params) { - if (typeof params[key] !== 'undefined') { - const value = params[key]; - if (value !== undefined && value !== null) { - if (Array.isArray(value)) { - value.forEach(value => { - qs.push(\`\${encodeURIComponent(key)}=\${encodeURIComponent(String(value))}\`); - }); - } else { - qs.push(\`\${encodeURIComponent(key)}=\${encodeURIComponent(String(value))}\`); - } - } - } - } - if (qs.length > 0) { - return \`?\${qs.join('&')}\`; - } - return ''; -} -" -`; - -exports[`generation v3 javascript file(./test/result/v3/javascript/core/isSuccess.js): ./test/result/v3/javascript/core/isSuccess.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -/** - * Check success response code. - * @param status Status code - */ -export function isSuccess(status) { - return status >= 200 && status < 300; -} -" -`; - -exports[`generation v3 javascript file(./test/result/v3/javascript/core/request.js): ./test/result/v3/javascript/core/request.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -import { getFormData } from './getFormData'; -import { getQueryString } from './getQueryString'; -import { OpenAPI } from './OpenAPI'; -import { requestUsingFetch } from './requestUsingFetch'; -import { requestUsingXHR } from './requestUsingXHR'; - -/** - * Create the request. - * @param options Request method options. - * @returns Result object (see above) - */ -export async function request(options) { - - // Create the request URL - let url = \`\${OpenAPI.BASE}\${options.path}\`; - - // Create request headers - const headers = new Headers({ - ...options.headers, - Accept: 'application/json', - }); - - // Create request settings - const request = { - headers, - method: options.method, - credentials: 'same-origin', - }; - - // If we have a bearer token then we set the authentication header. - if (OpenAPI.TOKEN !== null && OpenAPI.TOKEN !== '') { - headers.append('Authorization', \`Bearer \${OpenAPI.TOKEN}\`); - } - - // Add the query parameters (if defined). - if (options.query) { - url += getQueryString(options.query); - } - - // Append formData as body - if (options.formData) { - request.body = getFormData(options.formData); - } else if (options.body) { - - // If this is blob data, then pass it directly to the body and set content type. - // Otherwise we just convert request data to JSON string (needed for fetch api) - if (options.body instanceof Blob) { - request.body = options.body; - if (options.body.type) { - headers.append('Content-Type', options.body.type); - } - } else { - request.body = JSON.stringify(options.body); - headers.append('Content-Type', 'application/json'); - } - } - - try { - switch (OpenAPI.CLIENT) { - case 'xhr': - return await requestUsingXHR(url, request); - default: - return await requestUsingFetch(url, request); - } - } catch (error) { - return { - url, - ok: false, - status: 0, - statusText: '', - body: error - }; - } -} -" -`; - -exports[`generation v3 javascript file(./test/result/v3/javascript/core/requestUsingFetch.js): ./test/result/v3/javascript/core/requestUsingFetch.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -/** - * Request content using the new Fetch API. This is the default API that is used and - * is create for all JSON, XML and text objects. However it is limited to UTF-8. - * This is a problem for some of the Docs content, since that requires UTF-16! - * @param url The url to request. - * @param request The request object, containing method, headers, body, etc. - */ -export async function requestUsingFetch(url, request) { - - // Fetch response using fetch API. - const response = await fetch(url, request); - - // Create result object. - const result = { - url, - ok: response.ok, - status: response.status, - statusText: response.statusText, - body: null, - }; - - // Try to parse the content for any response status code. - // We check the \\"Content-Type\\" header to see if we need to parse the - // content as json or as plain text. - const contentType = response.headers.get('Content-Type'); - if (contentType) { - switch (contentType.toLowerCase()) { - case 'application/json': - case 'application/json; charset=utf-8': - result.body = await response.json(); - break; - - case 'text/plain': - case 'text/xml': - case 'text/xml; charset=utf-8': - case 'text/xml; charset=utf-16': - result.body = await response.text(); - break; - } - } - - return result; -} -" -`; - -exports[`generation v3 javascript file(./test/result/v3/javascript/core/requestUsingXHR.js): ./test/result/v3/javascript/core/requestUsingXHR.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -import { isSuccess } from './isSuccess'; - -/** - * Request content using the new legacy XMLHttpRequest API. This method is useful - * when we want to request UTF-16 content, since it natively supports loading UTF-16. - * We could do the same with the Fetch API, but then we will need to convert the - * content using JavaScript... And that is very very slow. - * @param url The url to request. - * @param request The request object, containing method, headers, body, etc. - */ -export async function requestUsingXHR(url, request) { - return new Promise(resolve => { - const xhr = new XMLHttpRequest(); - - // Open the request, remember to do this before adding any headers, - // because the request needs to be initialized! - xhr.open(request.method, url, true); - - // Add the headers (required when dealing with JSON) - const headers = request.headers as Headers; - headers.forEach((value, key) => { - xhr.setRequestHeader(key, value); - }); - - // Register the readystate handler, this will fire when the request is done. - xhr.onreadystatechange = () => { - if (xhr.readyState === XMLHttpRequest.DONE) { - - // Create result object. - const result = { - url, - ok: isSuccess(xhr.status), - status: xhr.status, - statusText: xhr.statusText, - body: null, - }; - - // Try to parse the content for any response status code. - // We check the \\"Content-Type\\" header to see if we need to parse the - // content as json or as plain text. - const contentType = xhr.getResponseHeader('Content-Type'); - if (contentType) { - switch (contentType.toLowerCase()) { - case 'application/json': - case 'application/json; charset=utf-8': - result.body = JSON.parse(xhr.responseText); - break; - - case 'text/plain': - case 'text/xml': - case 'text/xml; charset=utf-8': - case 'text/xml; charset=utf-16': - result.body = xhr.responseText; - break; - } - } - - // Done! - resolve(result); - } - }; - - // Start the request! - xhr.send(request.body); - }); -} -" -`; - -exports[`generation v3 javascript file(./test/result/v3/javascript/index.js): ./test/result/v3/javascript/index.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -export { ApiError } from './core/ApiError'; -export { isSuccess } from './core/isSuccess'; -export { OpenAPI } from './core/OpenAPI'; - -import { ArrayWithArray } from './models/ArrayWithArray'; -import { ArrayWithBooleans } from './models/ArrayWithBooleans'; -import { ArrayWithNumbers } from './models/ArrayWithNumbers'; -import { ArrayWithProperties } from './models/ArrayWithProperties'; -import { ArrayWithReferences } from './models/ArrayWithReferences'; -import { ArrayWithStrings } from './models/ArrayWithStrings'; -import { Dictionary } from './models/Dictionary'; -import { DictionaryWithArray } from './models/DictionaryWithArray'; -import { DictionaryWithDictionary } from './models/DictionaryWithDictionary'; -import { DictionaryWithProperties } from './models/DictionaryWithProperties'; -import { DictionaryWithReference } from './models/DictionaryWithReference'; -import { DictionaryWithString } from './models/DictionaryWithString'; -import { EnumFromDescription } from './models/EnumFromDescription'; -import { EnumWithNumbers } from './models/EnumWithNumbers'; -import { EnumWithStrings } from './models/EnumWithStrings'; -import { ModelLink } from './models/ModelLink'; -import { ModelThatExtends } from './models/ModelThatExtends'; -import { ModelThatExtendsExtends } from './models/ModelThatExtendsExtends'; -import { ModelWithArray } from './models/ModelWithArray'; -import { ModelWithBoolean } from './models/ModelWithBoolean'; -import { ModelWithCircularReference } from './models/ModelWithCircularReference'; -import { ModelWithDictionary } from './models/ModelWithDictionary'; -import { ModelWithDuplicateImports } from './models/ModelWithDuplicateImports'; -import { ModelWithDuplicateProperties } from './models/ModelWithDuplicateProperties'; -import { ModelWithEnum } from './models/ModelWithEnum'; -import { ModelWithEnumFromDescription } from './models/ModelWithEnumFromDescription'; -import { ModelWithInteger } from './models/ModelWithInteger'; -import { ModelWithLink } from './models/ModelWithLink'; -import { ModelWithNestedEnums } from './models/ModelWithNestedEnums'; -import { ModelWithNestedProperties } from './models/ModelWithNestedProperties'; -import { ModelWithProperties } from './models/ModelWithProperties'; -import { ModelWithReference } from './models/ModelWithReference'; -import { ModelWithString } from './models/ModelWithString'; -import { SimpleBoolean } from './models/SimpleBoolean'; -import { SimpleFile } from './models/SimpleFile'; -import { SimpleInteger } from './models/SimpleInteger'; -import { SimpleReference } from './models/SimpleReference'; -import { SimpleString } from './models/SimpleString'; - -export { ArrayWithArray }; -export { ArrayWithBooleans }; -export { ArrayWithNumbers }; -export { ArrayWithProperties }; -export { ArrayWithReferences }; -export { ArrayWithStrings }; -export { Dictionary }; -export { DictionaryWithArray }; -export { DictionaryWithDictionary }; -export { DictionaryWithProperties }; -export { DictionaryWithReference }; -export { DictionaryWithString }; -export { EnumFromDescription }; -export { EnumWithNumbers }; -export { EnumWithStrings }; -export { ModelLink }; -export { ModelThatExtends }; -export { ModelThatExtendsExtends }; -export { ModelWithArray }; -export { ModelWithBoolean }; -export { ModelWithCircularReference }; -export { ModelWithDictionary }; -export { ModelWithDuplicateImports }; -export { ModelWithDuplicateProperties }; -export { ModelWithEnum }; -export { ModelWithEnumFromDescription }; -export { ModelWithInteger }; -export { ModelWithLink }; -export { ModelWithNestedEnums }; -export { ModelWithNestedProperties }; -export { ModelWithProperties }; -export { ModelWithReference }; -export { ModelWithString }; -export { SimpleBoolean }; -export { SimpleFile }; -export { SimpleInteger }; -export { SimpleReference }; -export { SimpleString }; - -export { ComplexService } from './services/ComplexService'; -export { DefaultsService } from './services/DefaultsService'; -export { MultipartService } from './services/MultipartService'; -export { ParametersService } from './services/ParametersService'; -export { ResponseService } from './services/ResponseService'; -export { SimpleService } from './services/SimpleService'; -export { TypesService } from './services/TypesService'; - -const definitions = { - 'ArrayWithArray': ArrayWithArray.definition, - 'ArrayWithBooleans': ArrayWithBooleans.definition, - 'ArrayWithNumbers': ArrayWithNumbers.definition, - 'ArrayWithProperties': ArrayWithProperties.definition, - 'ArrayWithReferences': ArrayWithReferences.definition, - 'ArrayWithStrings': ArrayWithStrings.definition, - 'Dictionary': Dictionary.definition, - 'DictionaryWithArray': DictionaryWithArray.definition, - 'DictionaryWithDictionary': DictionaryWithDictionary.definition, - 'DictionaryWithProperties': DictionaryWithProperties.definition, - 'DictionaryWithReference': DictionaryWithReference.definition, - 'DictionaryWithString': DictionaryWithString.definition, - 'EnumFromDescription': EnumFromDescription.definition, - 'EnumWithNumbers': EnumWithNumbers.definition, - 'EnumWithStrings': EnumWithStrings.definition, - 'ModelLink': ModelLink.definition, - 'ModelThatExtends': ModelThatExtends.definition, - 'ModelThatExtendsExtends': ModelThatExtendsExtends.definition, - 'ModelWithArray': ModelWithArray.definition, - 'ModelWithBoolean': ModelWithBoolean.definition, - 'ModelWithCircularReference': ModelWithCircularReference.definition, - 'ModelWithDictionary': ModelWithDictionary.definition, - 'ModelWithDuplicateImports': ModelWithDuplicateImports.definition, - 'ModelWithDuplicateProperties': ModelWithDuplicateProperties.definition, - 'ModelWithEnum': ModelWithEnum.definition, - 'ModelWithEnumFromDescription': ModelWithEnumFromDescription.definition, - 'ModelWithInteger': ModelWithInteger.definition, - 'ModelWithLink': ModelWithLink.definition, - 'ModelWithNestedEnums': ModelWithNestedEnums.definition, - 'ModelWithNestedProperties': ModelWithNestedProperties.definition, - 'ModelWithProperties': ModelWithProperties.definition, - 'ModelWithReference': ModelWithReference.definition, - 'ModelWithString': ModelWithString.definition, - 'SimpleBoolean': SimpleBoolean.definition, - 'SimpleFile': SimpleFile.definition, - 'SimpleInteger': SimpleInteger.definition, - 'SimpleReference': SimpleReference.definition, - 'SimpleString': SimpleString.definition, -}; - -export function getDefinition(definition) { - if (definitions.hasOwnProperty(definition)) { - return definitions[definition]; - } - return null; -} -" -`; - -exports[`generation v3 javascript file(./test/result/v3/javascript/models/ArrayWithArray.js): ./test/result/v3/javascript/models/ArrayWithArray.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -/** - * This is a simple array containing an array - */ -export let ArrayWithArray; -(function (ArrayWithArray) { - - ArrayWithArray.definition = { - type: 'Array', - }; - -})(ArrayWithArray || (ArrayWithArray = {}));" -`; - -exports[`generation v3 javascript file(./test/result/v3/javascript/models/ArrayWithBooleans.js): ./test/result/v3/javascript/models/ArrayWithBooleans.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -/** - * This is a simple array with booleans - */ -export let ArrayWithBooleans; -(function (ArrayWithBooleans) { - - ArrayWithBooleans.definition = { - type: 'Array', - }; - -})(ArrayWithBooleans || (ArrayWithBooleans = {}));" -`; - -exports[`generation v3 javascript file(./test/result/v3/javascript/models/ArrayWithNumbers.js): ./test/result/v3/javascript/models/ArrayWithNumbers.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -/** - * This is a simple array with numbers - */ -export let ArrayWithNumbers; -(function (ArrayWithNumbers) { - - ArrayWithNumbers.definition = { - type: 'Array', - }; - -})(ArrayWithNumbers || (ArrayWithNumbers = {}));" -`; - -exports[`generation v3 javascript file(./test/result/v3/javascript/models/ArrayWithProperties.js): ./test/result/v3/javascript/models/ArrayWithProperties.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -/** - * This is a simple array with properties - */ -export let ArrayWithProperties; -(function (ArrayWithProperties) { - - ArrayWithProperties.definition = { - type: 'Array', - }; - -})(ArrayWithProperties || (ArrayWithProperties = {}));" -`; - -exports[`generation v3 javascript file(./test/result/v3/javascript/models/ArrayWithReferences.js): ./test/result/v3/javascript/models/ArrayWithReferences.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -/** - * This is a simple array with references - */ -export let ArrayWithReferences; -(function (ArrayWithReferences) { - - ArrayWithReferences.definition = { - type: 'Array', - }; - -})(ArrayWithReferences || (ArrayWithReferences = {}));" -`; - -exports[`generation v3 javascript file(./test/result/v3/javascript/models/ArrayWithStrings.js): ./test/result/v3/javascript/models/ArrayWithStrings.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -/** - * This is a simple array with strings - */ -export let ArrayWithStrings; -(function (ArrayWithStrings) { - - ArrayWithStrings.definition = { - type: 'Array', - }; - -})(ArrayWithStrings || (ArrayWithStrings = {}));" -`; - -exports[`generation v3 javascript file(./test/result/v3/javascript/models/Dictionary.js): ./test/result/v3/javascript/models/Dictionary.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -export let Dictionary; -(function (Dictionary) { - - Dictionary.definition = { - type: 'Dictionary' - }; - -})(Dictionary || (Dictionary = {})); -" -`; - -exports[`generation v3 javascript file(./test/result/v3/javascript/models/DictionaryWithArray.js): ./test/result/v3/javascript/models/DictionaryWithArray.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -/** - * This is a complex dictionary - */ -export let DictionaryWithArray; -(function (DictionaryWithArray) { - - DictionaryWithArray.definition = { - type: 'Dictionary', - }; - -})(DictionaryWithArray || (DictionaryWithArray = {}));" -`; - -exports[`generation v3 javascript file(./test/result/v3/javascript/models/DictionaryWithDictionary.js): ./test/result/v3/javascript/models/DictionaryWithDictionary.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -/** - * This is a string dictionary - */ -export let DictionaryWithDictionary; -(function (DictionaryWithDictionary) { - - DictionaryWithDictionary.definition = { - type: 'Dictionary', - }; - -})(DictionaryWithDictionary || (DictionaryWithDictionary = {}));" -`; - -exports[`generation v3 javascript file(./test/result/v3/javascript/models/DictionaryWithProperties.js): ./test/result/v3/javascript/models/DictionaryWithProperties.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -/** - * This is a complex dictionary - */ -export let DictionaryWithProperties; -(function (DictionaryWithProperties) { - - DictionaryWithProperties.definition = { - type: 'Dictionary', - }; - -})(DictionaryWithProperties || (DictionaryWithProperties = {}));" -`; - -exports[`generation v3 javascript file(./test/result/v3/javascript/models/DictionaryWithReference.js): ./test/result/v3/javascript/models/DictionaryWithReference.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -/** - * This is a string reference - */ -export let DictionaryWithReference; -(function (DictionaryWithReference) { - - DictionaryWithReference.definition = { - type: 'Dictionary', - }; - -})(DictionaryWithReference || (DictionaryWithReference = {}));" -`; - -exports[`generation v3 javascript file(./test/result/v3/javascript/models/DictionaryWithString.js): ./test/result/v3/javascript/models/DictionaryWithString.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -/** - * This is a string dictionary - */ -export let DictionaryWithString; -(function (DictionaryWithString) { - - DictionaryWithString.definition = { - type: 'Dictionary', - }; - -})(DictionaryWithString || (DictionaryWithString = {}));" -`; - -exports[`generation v3 javascript file(./test/result/v3/javascript/models/EnumFromDescription.js): ./test/result/v3/javascript/models/EnumFromDescription.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -/** - * Success=1,Warning=2,Error=3 - */ -export let EnumFromDescription; -(function (EnumFromDescription) { - - EnumFromDescription.ERROR = 3; - EnumFromDescription.SUCCESS = 1; - EnumFromDescription.WARNING = 2; - - EnumFromDescription.definition = { - type: 'Enum', - }; - -})(EnumFromDescription || (EnumFromDescription = {}));" -`; - -exports[`generation v3 javascript file(./test/result/v3/javascript/models/EnumWithNumbers.js): ./test/result/v3/javascript/models/EnumWithNumbers.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -/** - * This is a simple enum with numbers - */ -export let EnumWithNumbers; -(function (EnumWithNumbers) { - - EnumWithNumbers.NUM_1 = 1; - EnumWithNumbers.NUM_2 = 2; - EnumWithNumbers.NUM_3 = 3; - - EnumWithNumbers.definition = { - type: 'Enum', - }; - -})(EnumWithNumbers || (EnumWithNumbers = {}));" -`; - -exports[`generation v3 javascript file(./test/result/v3/javascript/models/EnumWithStrings.js): ./test/result/v3/javascript/models/EnumWithStrings.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -/** - * This is a simple enum with strings - */ -export let EnumWithStrings; -(function (EnumWithStrings) { - - EnumWithStrings.ERROR = 'Error'; - EnumWithStrings.SUCCESS = 'Success'; - EnumWithStrings.WARNING = 'Warning'; - - EnumWithStrings.definition = { - type: 'Enum', - }; - -})(EnumWithStrings || (EnumWithStrings = {}));" -`; - -exports[`generation v3 javascript file(./test/result/v3/javascript/models/ModelLink.js): ./test/result/v3/javascript/models/ModelLink.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -/** - * This is a model that can have a template?? - */ -export let ModelLink; -(function (ModelLink) { - - ModelLink.definition = { - properties: { - id: { - type: 'string', - }, - }, - }; - -})(ModelLink || (ModelLink = {}));" -`; - -exports[`generation v3 javascript file(./test/result/v3/javascript/models/ModelThatExtends.js): ./test/result/v3/javascript/models/ModelThatExtends.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -/** - * This is a model that extends another model - */ -export let ModelThatExtends; -(function (ModelThatExtends) { - - ModelThatExtends.definition = { - properties: { - ...ModelWithString.definition.properties, - propExtendsA: { - type: 'string', - }, - propExtendsB: { - type: 'ModelWithString', - }, - }, - }; - -})(ModelThatExtends || (ModelThatExtends = {}));" -`; - -exports[`generation v3 javascript file(./test/result/v3/javascript/models/ModelThatExtendsExtends.js): ./test/result/v3/javascript/models/ModelThatExtendsExtends.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -/** - * This is a model that extends another model - */ -export let ModelThatExtendsExtends; -(function (ModelThatExtendsExtends) { - - ModelThatExtendsExtends.definition = { - properties: { - ...ModelWithString.definition.properties, - ...ModelThatExtends.definition.properties, - propExtendsC: { - type: 'string', - }, - propExtendsD: { - type: 'ModelWithString', - }, - }, - }; - -})(ModelThatExtendsExtends || (ModelThatExtendsExtends = {}));" -`; - -exports[`generation v3 javascript file(./test/result/v3/javascript/models/ModelWithArray.js): ./test/result/v3/javascript/models/ModelWithArray.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -/** - * This is a model with one property containing an array - */ -export let ModelWithArray; -(function (ModelWithArray) { - - ModelWithArray.definition = { - properties: { - prop: { - type: 'Array', - }, - propWithFile: { - type: 'Array', - }, - propWithNumber: { - type: 'Array', - }, - }, - }; - -})(ModelWithArray || (ModelWithArray = {}));" -`; - -exports[`generation v3 javascript file(./test/result/v3/javascript/models/ModelWithBoolean.js): ./test/result/v3/javascript/models/ModelWithBoolean.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -/** - * This is a model with one boolean property - */ -export let ModelWithBoolean; -(function (ModelWithBoolean) { - - ModelWithBoolean.definition = { - properties: { - prop: { - type: 'boolean', - }, - }, - }; - -})(ModelWithBoolean || (ModelWithBoolean = {}));" -`; - -exports[`generation v3 javascript file(./test/result/v3/javascript/models/ModelWithCircularReference.js): ./test/result/v3/javascript/models/ModelWithCircularReference.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -/** - * This is a model with one property containing a circular reference - */ -export let ModelWithCircularReference; -(function (ModelWithCircularReference) { - - ModelWithCircularReference.definition = { - properties: { - prop: { - type: 'ModelWithCircularReference', - }, - }, - }; - -})(ModelWithCircularReference || (ModelWithCircularReference = {}));" -`; - -exports[`generation v3 javascript file(./test/result/v3/javascript/models/ModelWithDictionary.js): ./test/result/v3/javascript/models/ModelWithDictionary.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -/** - * This is a model with one property containing a dictionary - */ -export let ModelWithDictionary; -(function (ModelWithDictionary) { - - ModelWithDictionary.definition = { - properties: { - prop: { - type: 'Dictionary', - }, - }, - }; - -})(ModelWithDictionary || (ModelWithDictionary = {}));" -`; - -exports[`generation v3 javascript file(./test/result/v3/javascript/models/ModelWithDuplicateImports.js): ./test/result/v3/javascript/models/ModelWithDuplicateImports.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -/** - * This is a model with duplicated imports - */ -export let ModelWithDuplicateImports; -(function (ModelWithDuplicateImports) { - - ModelWithDuplicateImports.definition = { - properties: { - propA: { - type: 'ModelWithString', - }, - propB: { - type: 'ModelWithString', - }, - propC: { - type: 'ModelWithString', - }, - }, - }; - -})(ModelWithDuplicateImports || (ModelWithDuplicateImports = {}));" -`; - -exports[`generation v3 javascript file(./test/result/v3/javascript/models/ModelWithDuplicateProperties.js): ./test/result/v3/javascript/models/ModelWithDuplicateProperties.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -/** - * This is a model with duplicated properties - */ -export let ModelWithDuplicateProperties; -(function (ModelWithDuplicateProperties) { - - ModelWithDuplicateProperties.definition = { - properties: { - prop: { - type: 'ModelWithString', - }, - }, - }; - -})(ModelWithDuplicateProperties || (ModelWithDuplicateProperties = {}));" -`; - -exports[`generation v3 javascript file(./test/result/v3/javascript/models/ModelWithEnum.js): ./test/result/v3/javascript/models/ModelWithEnum.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -/** - * This is a model with one enum - */ -export let ModelWithEnum; -(function (ModelWithEnum) { - - /** - * This is a simple enum with strings - */ - ModelWithEnum.Test = { - SUCCESS: 'Success', - WARNING: 'Warning', - ERROR: 'Error', - }; - - ModelWithEnum.definition = { - properties: { - Test: { - type: 'Enum', - }, - }, - }; - -})(ModelWithEnum || (ModelWithEnum = {}));" -`; - -exports[`generation v3 javascript file(./test/result/v3/javascript/models/ModelWithEnumFromDescription.js): ./test/result/v3/javascript/models/ModelWithEnumFromDescription.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -/** - * This is a model with one enum - */ -export let ModelWithEnumFromDescription; -(function (ModelWithEnumFromDescription) { - - /** - * Success=1,Warning=2,Error=3 - */ - ModelWithEnumFromDescription.Test = { - SUCCESS: 1, - WARNING: 2, - ERROR: 3, - }; - - ModelWithEnumFromDescription.definition = { - properties: { - Test: { - type: 'Enum', - }, - }, - }; - -})(ModelWithEnumFromDescription || (ModelWithEnumFromDescription = {}));" -`; - -exports[`generation v3 javascript file(./test/result/v3/javascript/models/ModelWithInteger.js): ./test/result/v3/javascript/models/ModelWithInteger.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -/** - * This is a model with one number property - */ -export let ModelWithInteger; -(function (ModelWithInteger) { - - ModelWithInteger.definition = { - properties: { - prop: { - type: 'number', - }, - }, - }; - -})(ModelWithInteger || (ModelWithInteger = {}));" -`; - -exports[`generation v3 javascript file(./test/result/v3/javascript/models/ModelWithLink.js): ./test/result/v3/javascript/models/ModelWithLink.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -/** - * This is a model that can have a template?? - */ -export let ModelWithLink; -(function (ModelWithLink) { - - ModelWithLink.definition = { - properties: { - prop: { - type: 'ModelLink', - }, - }, - }; - -})(ModelWithLink || (ModelWithLink = {}));" -`; - -exports[`generation v3 javascript file(./test/result/v3/javascript/models/ModelWithNestedEnums.js): ./test/result/v3/javascript/models/ModelWithNestedEnums.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -/** - * This is a model with nested enums - */ -export let ModelWithNestedEnums; -(function (ModelWithNestedEnums) { - - ModelWithNestedEnums.definition = { - properties: { - arrayWithDescription: { - type: 'Array', - }, - arrayWithEnum: { - type: 'Array', - }, - dictionaryWithEnum: { - type: 'Dictionary', - }, - dictionaryWithEnumFromDescription: { - type: 'Dictionary', - }, - }, - }; - -})(ModelWithNestedEnums || (ModelWithNestedEnums = {}));" -`; - -exports[`generation v3 javascript file(./test/result/v3/javascript/models/ModelWithNestedProperties.js): ./test/result/v3/javascript/models/ModelWithNestedProperties.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -/** - * This is a model with one nested property - */ -export let ModelWithNestedProperties; -(function (ModelWithNestedProperties) { - - ModelWithNestedProperties.definition = { - properties: { - first: { - properties: { - second: { - properties: { - third: { - type: 'string', - isReadOnly: true, - isRequired: true, - isNullable: true, - }, - }, - isReadOnly: true, - isRequired: true, - isNullable: true, - }, - }, - isReadOnly: true, - isRequired: true, - isNullable: true, - }, - }, - }; - -})(ModelWithNestedProperties || (ModelWithNestedProperties = {}));" -`; - -exports[`generation v3 javascript file(./test/result/v3/javascript/models/ModelWithProperties.js): ./test/result/v3/javascript/models/ModelWithProperties.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -/** - * This is a model with one nested property - */ -export let ModelWithProperties; -(function (ModelWithProperties) { - - ModelWithProperties.definition = { - properties: { - boolean: { - type: 'boolean', - }, - number: { - type: 'number', - }, - reference: { - type: 'ModelWithString', - }, - required: { - type: 'string', - isRequired: true, - }, - requiredAndNullable: { - type: 'string', - isRequired: true, - isNullable: true, - }, - requiredAndReadOnly: { - type: 'string', - isReadOnly: true, - isRequired: true, - }, - string: { - type: 'string', - }, - }, - }; - -})(ModelWithProperties || (ModelWithProperties = {}));" -`; - -exports[`generation v3 javascript file(./test/result/v3/javascript/models/ModelWithReference.js): ./test/result/v3/javascript/models/ModelWithReference.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -/** - * This is a model with one property containing a reference - */ -export let ModelWithReference; -(function (ModelWithReference) { - - ModelWithReference.definition = { - properties: { - prop: { - type: 'ModelWithProperties', - }, - }, - }; - -})(ModelWithReference || (ModelWithReference = {}));" -`; - -exports[`generation v3 javascript file(./test/result/v3/javascript/models/ModelWithString.js): ./test/result/v3/javascript/models/ModelWithString.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -/** - * This is a model with one string property - */ -export let ModelWithString; -(function (ModelWithString) { - - ModelWithString.definition = { - properties: { - prop: { - type: 'string', - }, - }, - }; - -})(ModelWithString || (ModelWithString = {}));" -`; - -exports[`generation v3 javascript file(./test/result/v3/javascript/models/SimpleBoolean.js): ./test/result/v3/javascript/models/SimpleBoolean.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -/** - * This is a simple boolean - */ -export let SimpleBoolean; -(function (SimpleBoolean) { - - SimpleBoolean.definition = { - type: 'boolean', - }; - -})(SimpleBoolean || (SimpleBoolean = {}));" -`; - -exports[`generation v3 javascript file(./test/result/v3/javascript/models/SimpleFile.js): ./test/result/v3/javascript/models/SimpleFile.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -/** - * This is a simple file - */ -export let SimpleFile; -(function (SimpleFile) { - - SimpleFile.definition = { - type: 'File', - }; - -})(SimpleFile || (SimpleFile = {}));" -`; - -exports[`generation v3 javascript file(./test/result/v3/javascript/models/SimpleInteger.js): ./test/result/v3/javascript/models/SimpleInteger.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -/** - * This is a simple number - */ -export let SimpleInteger; -(function (SimpleInteger) { - - SimpleInteger.definition = { - type: 'number', - }; - -})(SimpleInteger || (SimpleInteger = {}));" -`; - -exports[`generation v3 javascript file(./test/result/v3/javascript/models/SimpleReference.js): ./test/result/v3/javascript/models/SimpleReference.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -/** - * This is a simple reference - */ -export let SimpleReference; -(function (SimpleReference) { - - SimpleReference.definition = { - type: 'ModelWithString', - }; - -})(SimpleReference || (SimpleReference = {}));" -`; - -exports[`generation v3 javascript file(./test/result/v3/javascript/models/SimpleString.js): ./test/result/v3/javascript/models/SimpleString.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -/** - * This is a simple string - */ -export let SimpleString; -(function (SimpleString) { - - SimpleString.definition = { - type: 'string', - }; - -})(SimpleString || (SimpleString = {}));" -`; - -exports[`generation v3 javascript file(./test/result/v3/javascript/services/ComplexService.js): ./test/result/v3/javascript/services/ComplexService.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -import { ApiError, catchGenericError } from '../core/ApiError'; -import { request as $request } from '../core/request'; -import { OpenAPI } from '../core/OpenAPI'; - -export class ComplexService { - - /** - * @param parameterReference Parameter containing reference - * @param parameterObject Parameter containing object - * @result ModelWithString Successful response - * @throws ApiError - */ - static async complexTypes( - parameterReference, - parameterObject, - ) { - - const result = await $request({ - method: 'get', - path: \`/api/v\${OpenAPI.VERSION}/complex\`, - query: { - 'parameterReference': parameterReference, - 'parameterObject': parameterObject, - }, - }); - - if (!result.ok) { - switch (result.status) { - case 400: throw new ApiError(result, \`400 server error\`); - case 500: throw new ApiError(result, \`500 server error\`); - } - } - - catchGenericError(result); - - return result.body; - } - -}" -`; - -exports[`generation v3 javascript file(./test/result/v3/javascript/services/DefaultsService.js): ./test/result/v3/javascript/services/DefaultsService.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -import { ApiError, catchGenericError } from '../core/ApiError'; -import { request as $request } from '../core/request'; -import { OpenAPI } from '../core/OpenAPI'; - -export class DefaultsService { - - /** - * @param parameterString This is a simple string - * @param parameterNumber This is a simple number - * @param parameterBoolean This is a simple boolean - * @param parameterEnum This is a simple enum - * @param parameterModel This is a simple model - * @throws ApiError - */ - static async callWithDefaultParameters( - parameterString = 'Hello World!', - parameterNumber = 123, - parameterBoolean = true, - parameterEnum = 'Success', - parameterModel = { - \\"prop\\": \\"Hello World\\" - }, - ) { - - const result = await $request({ - method: 'get', - path: \`/api/v\${OpenAPI.VERSION}/defaults\`, - query: { - 'parameterString': parameterString, - 'parameterNumber': parameterNumber, - 'parameterBoolean': parameterBoolean, - 'parameterEnum': parameterEnum, - 'parameterModel': parameterModel, - }, - }); - - catchGenericError(result); - - return result.body; - } - -}" -`; - -exports[`generation v3 javascript file(./test/result/v3/javascript/services/MultipartService.js): ./test/result/v3/javascript/services/MultipartService.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -import { ApiError, catchGenericError } from '../core/ApiError'; -import { request as $request } from '../core/request'; -import { OpenAPI } from '../core/OpenAPI'; - -export class MultipartService { - - /** - * @result any OK - * @throws ApiError - */ - static async multipartResponse() { - - const result = await $request({ - method: 'get', - path: \`/api/v\${OpenAPI.VERSION}/multipart\`, - }); - - catchGenericError(result); - - return result.body; - } - -}" -`; - -exports[`generation v3 javascript file(./test/result/v3/javascript/services/ParametersService.js): ./test/result/v3/javascript/services/ParametersService.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -import { ApiError, catchGenericError } from '../core/ApiError'; -import { request as $request } from '../core/request'; -import { OpenAPI } from '../core/OpenAPI'; - -export class ParametersService { - - /** - * @param parameterHeader This is the parameter that goes into the request header - * @param parameterQuery This is the parameter that goes into the request query params - * @param parameterForm This is the parameter that goes into the request form data - * @param parameterCookie This is the parameter that goes into the cookie - * @param requestBody This is the parameter that goes into the body - * @throws ApiError - */ - static async callWithParameters( - parameterHeader, - parameterQuery, - parameterForm, - parameterCookie, - requestBody, - ) { - - const result = await $request({ - method: 'get', - path: \`/api/v\${OpenAPI.VERSION}/parameters\`, - cookies: { - 'parameterCookie': parameterCookie, - }, - headers: { - 'parameterHeader': parameterHeader, - }, - query: { - 'parameterQuery': parameterQuery, - }, - formData: { - 'parameterForm': parameterForm, - }, - body: requestBody, - }); - - catchGenericError(result); - - return result.body; - } - -}" -`; - -exports[`generation v3 javascript file(./test/result/v3/javascript/services/ResponseService.js): ./test/result/v3/javascript/services/ResponseService.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -import { ApiError, catchGenericError } from '../core/ApiError'; -import { request as $request } from '../core/request'; -import { OpenAPI } from '../core/OpenAPI'; - -export class ResponseService { - - /** - * @result ModelWithString Message for default response - * @throws ApiError - */ - static async callWithDuplicateResponses() { - - const result = await $request({ - method: 'post', - path: \`/api/v\${OpenAPI.VERSION}/response\`, - }); - - if (!result.ok) { - switch (result.status) { - case 500: throw new ApiError(result, \`Message for 500 error\`); - case 501: throw new ApiError(result, \`Message for 501 error\`); - case 502: throw new ApiError(result, \`Message for 502 error\`); - } - } - - catchGenericError(result); - - return result.body; - } - - /** - * @result ModelWithString - * @throws ApiError - */ - static async callWithResponse() { - - const result = await $request({ - method: 'get', - path: \`/api/v\${OpenAPI.VERSION}/response\`, - }); - - catchGenericError(result); - - return result.body; - } - - /** - * @result ModelWithString Message for default response - * @result ModelThatExtends Message for 201 response - * @result ModelThatExtendsExtends Message for 202 response - * @throws ApiError - */ - static async callWithResponses() { - - const result = await $request({ - method: 'put', - path: \`/api/v\${OpenAPI.VERSION}/response\`, - }); - - if (!result.ok) { - switch (result.status) { - case 500: throw new ApiError(result, \`Message for 500 error\`); - case 501: throw new ApiError(result, \`Message for 501 error\`); - case 502: throw new ApiError(result, \`Message for 502 error\`); - } - } - - catchGenericError(result); - - return result.body; - } - -}" -`; - -exports[`generation v3 javascript file(./test/result/v3/javascript/services/SimpleService.js): ./test/result/v3/javascript/services/SimpleService.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -import { ApiError, catchGenericError } from '../core/ApiError'; -import { request as $request } from '../core/request'; -import { OpenAPI } from '../core/OpenAPI'; - -export class SimpleService { - - /** - * @throws ApiError - */ - static async deleteCallWithoutParametersAndResponse() { - - const result = await $request({ - method: 'delete', - path: \`/api/v\${OpenAPI.VERSION}/simple\`, - }); - - catchGenericError(result); - - return result.body; - } - - /** - * @throws ApiError - */ - static async getCallWithoutParametersAndResponse() { - - const result = await $request({ - method: 'get', - path: \`/api/v\${OpenAPI.VERSION}/simple\`, - }); - - catchGenericError(result); - - return result.body; - } - - /** - * @throws ApiError - */ - static async headCallWithoutParametersAndResponse() { - - const result = await $request({ - method: 'head', - path: \`/api/v\${OpenAPI.VERSION}/simple\`, - }); - - catchGenericError(result); - - return result.body; - } - - /** - * @throws ApiError - */ - static async optionsCallWithoutParametersAndResponse() { - - const result = await $request({ - method: 'options', - path: \`/api/v\${OpenAPI.VERSION}/simple\`, - }); - - catchGenericError(result); - - return result.body; - } - - /** - * @throws ApiError - */ - static async patchCallWithoutParametersAndResponse() { - - const result = await $request({ - method: 'patch', - path: \`/api/v\${OpenAPI.VERSION}/simple\`, - }); - - catchGenericError(result); - - return result.body; - } - - /** - * @throws ApiError - */ - static async postCallWithoutParametersAndResponse() { - - const result = await $request({ - method: 'post', - path: \`/api/v\${OpenAPI.VERSION}/simple\`, - }); - - catchGenericError(result); - - return result.body; - } - - /** - * @throws ApiError - */ - static async putCallWithoutParametersAndResponse() { - - const result = await $request({ - method: 'put', - path: \`/api/v\${OpenAPI.VERSION}/simple\`, - }); - - catchGenericError(result); - - return result.body; - } - -}" -`; - -exports[`generation v3 javascript file(./test/result/v3/javascript/services/TypesService.js): ./test/result/v3/javascript/services/TypesService.js 1`] = ` -"'use strict'; - -/* istanbul ignore file */ -/* eslint-disable */ -/* prettier-ignore */ - -import { ApiError, catchGenericError } from '../core/ApiError'; -import { request as $request } from '../core/request'; -import { OpenAPI } from '../core/OpenAPI'; - -export class TypesService { - - /** - * @param parameterNumber This is a number parameter - * @param parameterString This is a string parameter - * @param parameterBoolean This is a boolean parameter - * @param parameterObject This is an object parameter - * @param parameterArray This is an array parameter - * @param parameterDictionary This is a dictionary parameter - * @param parameterEnum This is an enum parameter - * @param id This is a number parameter - * @result number Response is a simple number - * @result string Response is a simple string - * @result boolean Response is a simple boolean - * @result any Response is a simple object - * @throws ApiError - */ - static async types( - parameterNumber = 123, - parameterString = 'default', - parameterBoolean = true, - parameterObject = null, - parameterArray, - parameterDictionary, - parameterEnum, - id, - ) { - - const result = await $request({ - method: 'get', - path: \`/api/v\${OpenAPI.VERSION}/types\`, - query: { - 'parameterNumber': parameterNumber, - 'parameterString': parameterString, - 'parameterBoolean': parameterBoolean, - 'parameterObject': parameterObject, - 'parameterArray': parameterArray, - 'parameterDictionary': parameterDictionary, - 'parameterEnum': parameterEnum, - }, - }); - - catchGenericError(result); - - return result.body; - } - -}" -`; - -exports[`generation v3 typescript file(./test/result/v3/typescript/core/ApiError.ts): ./test/result/v3/typescript/core/ApiError.ts 1`] = ` +exports[`generation v3 file(./test/result/v3/core/ApiError.ts): ./test/result/v3/core/ApiError.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ @@ -5881,7 +2319,7 @@ export function catchGenericError(result: Result): void { " `; -exports[`generation v3 typescript file(./test/result/v3/typescript/core/Definition.ts): ./test/result/v3/typescript/core/Definition.ts 1`] = ` +exports[`generation v3 file(./test/result/v3/core/Definition.ts): ./test/result/v3/core/Definition.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ @@ -5935,7 +2373,7 @@ export type Definition = " `; -exports[`generation v3 typescript file(./test/result/v3/typescript/core/OpenAPI.ts): ./test/result/v3/typescript/core/OpenAPI.ts 1`] = ` +exports[`generation v3 file(./test/result/v3/core/OpenAPI.ts): ./test/result/v3/core/OpenAPI.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ @@ -5949,7 +2387,7 @@ export namespace OpenAPI { }" `; -exports[`generation v3 typescript file(./test/result/v3/typescript/core/RequestOptions.ts): ./test/result/v3/typescript/core/RequestOptions.ts 1`] = ` +exports[`generation v3 file(./test/result/v3/core/RequestOptions.ts): ./test/result/v3/core/RequestOptions.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ @@ -5967,7 +2405,7 @@ export interface RequestOptions { " `; -exports[`generation v3 typescript file(./test/result/v3/typescript/core/Result.ts): ./test/result/v3/typescript/core/Result.ts 1`] = ` +exports[`generation v3 file(./test/result/v3/core/Result.ts): ./test/result/v3/core/Result.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ @@ -5983,7 +2421,7 @@ export interface Result { " `; -exports[`generation v3 typescript file(./test/result/v3/typescript/core/getFormData.ts): ./test/result/v3/typescript/core/getFormData.ts 1`] = ` +exports[`generation v3 file(./test/result/v3/core/getFormData.ts): ./test/result/v3/core/getFormData.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ @@ -6009,7 +2447,7 @@ export function getFormData(params: { [key: string]: any }): FormData { " `; -exports[`generation v3 typescript file(./test/result/v3/typescript/core/getQueryString.ts): ./test/result/v3/typescript/core/getQueryString.ts 1`] = ` +exports[`generation v3 file(./test/result/v3/core/getQueryString.ts): ./test/result/v3/core/getQueryString.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ @@ -6044,7 +2482,28 @@ export function getQueryString(params: { [key: string]: any }): string { " `; -exports[`generation v3 typescript file(./test/result/v3/typescript/core/isSuccess.ts): ./test/result/v3/typescript/core/isSuccess.ts 1`] = ` +exports[`generation v3 file(./test/result/v3/core/getSchema.ts): ./test/result/v3/core/getSchema.ts 1`] = ` +"/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +/* prettier-ignore */ + +import * as schemas from '../schemas'; + +/** + * Get a schema object for a given model name. + * @param model The model name to return the schema from. + */ +export function getSchema(model: K) { + if (schemas.hasOwnProperty(model)) { + return schemas[model]; + } + return null; +} +" +`; + +exports[`generation v3 file(./test/result/v3/core/isSuccess.ts): ./test/result/v3/core/isSuccess.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ @@ -6060,7 +2519,7 @@ export function isSuccess(status: number): boolean { " `; -exports[`generation v3 typescript file(./test/result/v3/typescript/core/request.ts): ./test/result/v3/typescript/core/request.ts 1`] = ` +exports[`generation v3 file(./test/result/v3/core/request.ts): ./test/result/v3/core/request.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ @@ -6145,7 +2604,7 @@ export async function request(options: Readonly): Promise(definition: K) { - if (definitions.hasOwnProperty(definition)) { - return definitions[definition]; - } - return null; -} - +export * from './models/'; +export * from './services/'; " `; -exports[`generation v3 typescript file(./test/result/v3/typescript/models/ArrayWithArray.ts): ./test/result/v3/typescript/models/ArrayWithArray.ts 1`] = ` +exports[`generation v3 file(./test/result/v3/models/ArrayWithArray.ts): ./test/result/v3/models/ArrayWithArray.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ /* prettier-ignore */ -import { ModelWithString } from '../models/ModelWithString'; +import { ModelWithString } from './ModelWithString'; /** * This is a simple array containing an array */ -export type ArrayWithArray = Array>; - -export namespace ArrayWithArray { - - export const definition = { - type: 'Array', - }; - -}" +export type ArrayWithArray = Array>;" `; -exports[`generation v3 typescript file(./test/result/v3/typescript/models/ArrayWithBooleans.ts): ./test/result/v3/typescript/models/ArrayWithBooleans.ts 1`] = ` +exports[`generation v3 file(./test/result/v3/models/ArrayWithBooleans.ts): ./test/result/v3/models/ArrayWithBooleans.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ @@ -6454,18 +2773,10 @@ exports[`generation v3 typescript file(./test/result/v3/typescript/models/ArrayW /** * This is a simple array with booleans */ -export type ArrayWithBooleans = Array; - -export namespace ArrayWithBooleans { - - export const definition = { - type: 'Array', - }; - -}" +export type ArrayWithBooleans = Array;" `; -exports[`generation v3 typescript file(./test/result/v3/typescript/models/ArrayWithNumbers.ts): ./test/result/v3/typescript/models/ArrayWithNumbers.ts 1`] = ` +exports[`generation v3 file(./test/result/v3/models/ArrayWithNumbers.ts): ./test/result/v3/models/ArrayWithNumbers.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ @@ -6475,18 +2786,10 @@ exports[`generation v3 typescript file(./test/result/v3/typescript/models/ArrayW /** * This is a simple array with numbers */ -export type ArrayWithNumbers = Array; - -export namespace ArrayWithNumbers { - - export const definition = { - type: 'Array', - }; - -}" +export type ArrayWithNumbers = Array;" `; -exports[`generation v3 typescript file(./test/result/v3/typescript/models/ArrayWithProperties.ts): ./test/result/v3/typescript/models/ArrayWithProperties.ts 1`] = ` +exports[`generation v3 file(./test/result/v3/models/ArrayWithProperties.ts): ./test/result/v3/models/ArrayWithProperties.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ @@ -6499,40 +2802,24 @@ exports[`generation v3 typescript file(./test/result/v3/typescript/models/ArrayW export type ArrayWithProperties = Array<{ foo?: string, bar?: string, -}>; - -export namespace ArrayWithProperties { - - export const definition = { - type: 'Array', - }; - -}" +}>;" `; -exports[`generation v3 typescript file(./test/result/v3/typescript/models/ArrayWithReferences.ts): ./test/result/v3/typescript/models/ArrayWithReferences.ts 1`] = ` +exports[`generation v3 file(./test/result/v3/models/ArrayWithReferences.ts): ./test/result/v3/models/ArrayWithReferences.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ /* prettier-ignore */ -import { ModelWithString } from '../models/ModelWithString'; +import { ModelWithString } from './ModelWithString'; /** * This is a simple array with references */ -export type ArrayWithReferences = Array; - -export namespace ArrayWithReferences { - - export const definition = { - type: 'Array', - }; - -}" +export type ArrayWithReferences = Array;" `; -exports[`generation v3 typescript file(./test/result/v3/typescript/models/ArrayWithStrings.ts): ./test/result/v3/typescript/models/ArrayWithStrings.ts 1`] = ` +exports[`generation v3 file(./test/result/v3/models/ArrayWithStrings.ts): ./test/result/v3/models/ArrayWithStrings.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ @@ -6542,18 +2829,10 @@ exports[`generation v3 typescript file(./test/result/v3/typescript/models/ArrayW /** * This is a simple array with strings */ -export type ArrayWithStrings = Array; - -export namespace ArrayWithStrings { - - export const definition = { - type: 'Array', - }; - -}" +export type ArrayWithStrings = Array;" `; -exports[`generation v3 typescript file(./test/result/v3/typescript/models/Dictionary.ts): ./test/result/v3/typescript/models/Dictionary.ts 1`] = ` +exports[`generation v3 file(./test/result/v3/models/Dictionary.ts): ./test/result/v3/models/Dictionary.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ @@ -6562,69 +2841,45 @@ exports[`generation v3 typescript file(./test/result/v3/typescript/models/Dictio export type Dictionary = { [key: string]: T; } - -export namespace Dictionary { - - export const definition = { - type: 'Dictionary' - }; - -} " `; -exports[`generation v3 typescript file(./test/result/v3/typescript/models/DictionaryWithArray.ts): ./test/result/v3/typescript/models/DictionaryWithArray.ts 1`] = ` +exports[`generation v3 file(./test/result/v3/models/DictionaryWithArray.ts): ./test/result/v3/models/DictionaryWithArray.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ /* prettier-ignore */ -import { Dictionary } from '../models/Dictionary'; -import { ModelWithString } from '../models/ModelWithString'; +import { Dictionary } from './Dictionary'; +import { ModelWithString } from './ModelWithString'; /** * This is a complex dictionary */ -export type DictionaryWithArray = Dictionary>; - -export namespace DictionaryWithArray { - - export const definition = { - type: 'Dictionary', - }; - -}" +export type DictionaryWithArray = Dictionary>;" `; -exports[`generation v3 typescript file(./test/result/v3/typescript/models/DictionaryWithDictionary.ts): ./test/result/v3/typescript/models/DictionaryWithDictionary.ts 1`] = ` +exports[`generation v3 file(./test/result/v3/models/DictionaryWithDictionary.ts): ./test/result/v3/models/DictionaryWithDictionary.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ /* prettier-ignore */ -import { Dictionary } from '../models/Dictionary'; +import { Dictionary } from './Dictionary'; /** * This is a string dictionary */ -export type DictionaryWithDictionary = Dictionary>; - -export namespace DictionaryWithDictionary { - - export const definition = { - type: 'Dictionary', - }; - -}" +export type DictionaryWithDictionary = Dictionary>;" `; -exports[`generation v3 typescript file(./test/result/v3/typescript/models/DictionaryWithProperties.ts): ./test/result/v3/typescript/models/DictionaryWithProperties.ts 1`] = ` +exports[`generation v3 file(./test/result/v3/models/DictionaryWithProperties.ts): ./test/result/v3/models/DictionaryWithProperties.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ /* prettier-ignore */ -import { Dictionary } from '../models/Dictionary'; +import { Dictionary } from './Dictionary'; /** * This is a complex dictionary @@ -6632,63 +2887,39 @@ import { Dictionary } from '../models/Dictionary'; export type DictionaryWithProperties = Dictionary<{ foo?: string, bar?: string, -}>; - -export namespace DictionaryWithProperties { - - export const definition = { - type: 'Dictionary', - }; - -}" +}>;" `; -exports[`generation v3 typescript file(./test/result/v3/typescript/models/DictionaryWithReference.ts): ./test/result/v3/typescript/models/DictionaryWithReference.ts 1`] = ` +exports[`generation v3 file(./test/result/v3/models/DictionaryWithReference.ts): ./test/result/v3/models/DictionaryWithReference.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ /* prettier-ignore */ -import { Dictionary } from '../models/Dictionary'; -import { ModelWithString } from '../models/ModelWithString'; +import { Dictionary } from './Dictionary'; +import { ModelWithString } from './ModelWithString'; /** * This is a string reference */ -export type DictionaryWithReference = Dictionary; - -export namespace DictionaryWithReference { - - export const definition = { - type: 'Dictionary', - }; - -}" +export type DictionaryWithReference = Dictionary;" `; -exports[`generation v3 typescript file(./test/result/v3/typescript/models/DictionaryWithString.ts): ./test/result/v3/typescript/models/DictionaryWithString.ts 1`] = ` +exports[`generation v3 file(./test/result/v3/models/DictionaryWithString.ts): ./test/result/v3/models/DictionaryWithString.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ /* prettier-ignore */ -import { Dictionary } from '../models/Dictionary'; +import { Dictionary } from './Dictionary'; /** * This is a string dictionary */ -export type DictionaryWithString = Dictionary; - -export namespace DictionaryWithString { - - export const definition = { - type: 'Dictionary', - }; - -}" +export type DictionaryWithString = Dictionary;" `; -exports[`generation v3 typescript file(./test/result/v3/typescript/models/EnumFromDescription.ts): ./test/result/v3/typescript/models/EnumFromDescription.ts 1`] = ` +exports[`generation v3 file(./test/result/v3/models/EnumFromDescription.ts): ./test/result/v3/models/EnumFromDescription.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ @@ -6702,18 +2933,10 @@ export enum EnumFromDescription { ERROR = 3, SUCCESS = 1, WARNING = 2, -} - -export namespace EnumFromDescription { - - export const definition = { - type: 'Enum', - }; - }" `; -exports[`generation v3 typescript file(./test/result/v3/typescript/models/EnumWithNumbers.ts): ./test/result/v3/typescript/models/EnumWithNumbers.ts 1`] = ` +exports[`generation v3 file(./test/result/v3/models/EnumWithNumbers.ts): ./test/result/v3/models/EnumWithNumbers.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ @@ -6727,18 +2950,10 @@ export enum EnumWithNumbers { NUM_1 = 1, NUM_2 = 2, NUM_3 = 3, -} - -export namespace EnumWithNumbers { - - export const definition = { - type: 'Enum', - }; - }" `; -exports[`generation v3 typescript file(./test/result/v3/typescript/models/EnumWithStrings.ts): ./test/result/v3/typescript/models/EnumWithStrings.ts 1`] = ` +exports[`generation v3 file(./test/result/v3/models/EnumWithStrings.ts): ./test/result/v3/models/EnumWithStrings.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ @@ -6752,18 +2967,10 @@ export enum EnumWithStrings { ERROR = 'Error', SUCCESS = 'Success', WARNING = 'Warning', -} - -export namespace EnumWithStrings { - - export const definition = { - type: 'Enum', - }; - }" `; -exports[`generation v3 typescript file(./test/result/v3/typescript/models/ModelLink.ts): ./test/result/v3/typescript/models/ModelLink.ts 1`] = ` +exports[`generation v3 file(./test/result/v3/models/ModelLink.ts): ./test/result/v3/models/ModelLink.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ @@ -6776,27 +2983,16 @@ exports[`generation v3 typescript file(./test/result/v3/typescript/models/ModelL export interface ModelLink { id?: string; } - -export namespace ModelLink { - - export const definition = { - properties: { - id: { - type: 'string', - }, - }, - }; - -}" +" `; -exports[`generation v3 typescript file(./test/result/v3/typescript/models/ModelThatExtends.ts): ./test/result/v3/typescript/models/ModelThatExtends.ts 1`] = ` +exports[`generation v3 file(./test/result/v3/models/ModelThatExtends.ts): ./test/result/v3/models/ModelThatExtends.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ /* prettier-ignore */ -import { ModelWithString } from '../models/ModelWithString'; +import { ModelWithString } from './ModelWithString'; /** * This is a model that extends another model @@ -6805,32 +3001,17 @@ export interface ModelThatExtends extends ModelWithString { propExtendsA?: string; propExtendsB?: ModelWithString; } - -export namespace ModelThatExtends { - - export const definition = { - properties: { - ...ModelWithString.definition.properties, - propExtendsA: { - type: 'string', - }, - propExtendsB: { - type: 'ModelWithString', - }, - }, - }; - -}" +" `; -exports[`generation v3 typescript file(./test/result/v3/typescript/models/ModelThatExtendsExtends.ts): ./test/result/v3/typescript/models/ModelThatExtendsExtends.ts 1`] = ` +exports[`generation v3 file(./test/result/v3/models/ModelThatExtendsExtends.ts): ./test/result/v3/models/ModelThatExtendsExtends.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ /* prettier-ignore */ -import { ModelThatExtends } from '../models/ModelThatExtends'; -import { ModelWithString } from '../models/ModelWithString'; +import { ModelThatExtends } from './ModelThatExtends'; +import { ModelWithString } from './ModelWithString'; /** * This is a model that extends another model @@ -6839,32 +3020,16 @@ export interface ModelThatExtendsExtends extends ModelWithString, ModelThatExten propExtendsC?: string; propExtendsD?: ModelWithString; } - -export namespace ModelThatExtendsExtends { - - export const definition = { - properties: { - ...ModelWithString.definition.properties, - ...ModelThatExtends.definition.properties, - propExtendsC: { - type: 'string', - }, - propExtendsD: { - type: 'ModelWithString', - }, - }, - }; - -}" +" `; -exports[`generation v3 typescript file(./test/result/v3/typescript/models/ModelWithArray.ts): ./test/result/v3/typescript/models/ModelWithArray.ts 1`] = ` +exports[`generation v3 file(./test/result/v3/models/ModelWithArray.ts): ./test/result/v3/models/ModelWithArray.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ /* prettier-ignore */ -import { ModelWithString } from '../models/ModelWithString'; +import { ModelWithString } from './ModelWithString'; /** * This is a model with one property containing an array @@ -6874,27 +3039,10 @@ export interface ModelWithArray { propWithFile?: Array; propWithNumber?: Array; } - -export namespace ModelWithArray { - - export const definition = { - properties: { - prop: { - type: 'Array', - }, - propWithFile: { - type: 'Array', - }, - propWithNumber: { - type: 'Array', - }, - }, - }; - -}" +" `; -exports[`generation v3 typescript file(./test/result/v3/typescript/models/ModelWithBoolean.ts): ./test/result/v3/typescript/models/ModelWithBoolean.ts 1`] = ` +exports[`generation v3 file(./test/result/v3/models/ModelWithBoolean.ts): ./test/result/v3/models/ModelWithBoolean.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ @@ -6910,21 +3058,10 @@ export interface ModelWithBoolean { */ prop?: boolean; } - -export namespace ModelWithBoolean { - - export const definition = { - properties: { - prop: { - type: 'boolean', - }, - }, - }; - -}" +" `; -exports[`generation v3 typescript file(./test/result/v3/typescript/models/ModelWithCircularReference.ts): ./test/result/v3/typescript/models/ModelWithCircularReference.ts 1`] = ` +exports[`generation v3 file(./test/result/v3/models/ModelWithCircularReference.ts): ./test/result/v3/models/ModelWithCircularReference.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ @@ -6937,27 +3074,16 @@ exports[`generation v3 typescript file(./test/result/v3/typescript/models/ModelW export interface ModelWithCircularReference { prop?: ModelWithCircularReference; } - -export namespace ModelWithCircularReference { - - export const definition = { - properties: { - prop: { - type: 'ModelWithCircularReference', - }, - }, - }; - -}" +" `; -exports[`generation v3 typescript file(./test/result/v3/typescript/models/ModelWithDictionary.ts): ./test/result/v3/typescript/models/ModelWithDictionary.ts 1`] = ` +exports[`generation v3 file(./test/result/v3/models/ModelWithDictionary.ts): ./test/result/v3/models/ModelWithDictionary.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ /* prettier-ignore */ -import { Dictionary } from '../models/Dictionary'; +import { Dictionary } from './Dictionary'; /** * This is a model with one property containing a dictionary @@ -6965,27 +3091,16 @@ import { Dictionary } from '../models/Dictionary'; export interface ModelWithDictionary { prop?: Dictionary; } - -export namespace ModelWithDictionary { - - export const definition = { - properties: { - prop: { - type: 'Dictionary', - }, - }, - }; - -}" +" `; -exports[`generation v3 typescript file(./test/result/v3/typescript/models/ModelWithDuplicateImports.ts): ./test/result/v3/typescript/models/ModelWithDuplicateImports.ts 1`] = ` +exports[`generation v3 file(./test/result/v3/models/ModelWithDuplicateImports.ts): ./test/result/v3/models/ModelWithDuplicateImports.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ /* prettier-ignore */ -import { ModelWithString } from '../models/ModelWithString'; +import { ModelWithString } from './ModelWithString'; /** * This is a model with duplicated imports @@ -6995,33 +3110,16 @@ export interface ModelWithDuplicateImports { propB?: ModelWithString; propC?: ModelWithString; } - -export namespace ModelWithDuplicateImports { - - export const definition = { - properties: { - propA: { - type: 'ModelWithString', - }, - propB: { - type: 'ModelWithString', - }, - propC: { - type: 'ModelWithString', - }, - }, - }; - -}" +" `; -exports[`generation v3 typescript file(./test/result/v3/typescript/models/ModelWithDuplicateProperties.ts): ./test/result/v3/typescript/models/ModelWithDuplicateProperties.ts 1`] = ` +exports[`generation v3 file(./test/result/v3/models/ModelWithDuplicateProperties.ts): ./test/result/v3/models/ModelWithDuplicateProperties.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ /* prettier-ignore */ -import { ModelWithString } from '../models/ModelWithString'; +import { ModelWithString } from './ModelWithString'; /** * This is a model with duplicated properties @@ -7029,21 +3127,10 @@ import { ModelWithString } from '../models/ModelWithString'; export interface ModelWithDuplicateProperties { prop?: ModelWithString; } - -export namespace ModelWithDuplicateProperties { - - export const definition = { - properties: { - prop: { - type: 'ModelWithString', - }, - }, - }; - -}" +" `; -exports[`generation v3 typescript file(./test/result/v3/typescript/models/ModelWithEnum.ts): ./test/result/v3/typescript/models/ModelWithEnum.ts 1`] = ` +exports[`generation v3 file(./test/result/v3/models/ModelWithEnum.ts): ./test/result/v3/models/ModelWithEnum.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ @@ -7071,18 +3158,12 @@ export namespace ModelWithEnum { ERROR = 'Error', } - export const definition = { - properties: { - Test: { - type: 'Enum', - }, - }, - }; -}" +} +" `; -exports[`generation v3 typescript file(./test/result/v3/typescript/models/ModelWithEnumFromDescription.ts): ./test/result/v3/typescript/models/ModelWithEnumFromDescription.ts 1`] = ` +exports[`generation v3 file(./test/result/v3/models/ModelWithEnumFromDescription.ts): ./test/result/v3/models/ModelWithEnumFromDescription.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ @@ -7110,18 +3191,12 @@ export namespace ModelWithEnumFromDescription { ERROR = 3, } - export const definition = { - properties: { - Test: { - type: 'Enum', - }, - }, - }; -}" +} +" `; -exports[`generation v3 typescript file(./test/result/v3/typescript/models/ModelWithInteger.ts): ./test/result/v3/typescript/models/ModelWithInteger.ts 1`] = ` +exports[`generation v3 file(./test/result/v3/models/ModelWithInteger.ts): ./test/result/v3/models/ModelWithInteger.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ @@ -7137,28 +3212,17 @@ export interface ModelWithInteger { */ prop?: number; } - -export namespace ModelWithInteger { - - export const definition = { - properties: { - prop: { - type: 'number', - }, - }, - }; - -}" +" `; -exports[`generation v3 typescript file(./test/result/v3/typescript/models/ModelWithLink.ts): ./test/result/v3/typescript/models/ModelWithLink.ts 1`] = ` +exports[`generation v3 file(./test/result/v3/models/ModelWithLink.ts): ./test/result/v3/models/ModelWithLink.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ /* prettier-ignore */ -import { ModelLink } from '../models/ModelLink'; -import { ModelWithString } from '../models/ModelWithString'; +import { ModelLink } from './ModelLink'; +import { ModelWithString } from './ModelWithString'; /** * This is a model that can have a template?? @@ -7166,27 +3230,16 @@ import { ModelWithString } from '../models/ModelWithString'; export interface ModelWithLink { prop?: ModelLink; } - -export namespace ModelWithLink { - - export const definition = { - properties: { - prop: { - type: 'ModelLink', - }, - }, - }; - -}" +" `; -exports[`generation v3 typescript file(./test/result/v3/typescript/models/ModelWithNestedEnums.ts): ./test/result/v3/typescript/models/ModelWithNestedEnums.ts 1`] = ` +exports[`generation v3 file(./test/result/v3/models/ModelWithNestedEnums.ts): ./test/result/v3/models/ModelWithNestedEnums.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ /* prettier-ignore */ -import { Dictionary } from '../models/Dictionary'; +import { Dictionary } from './Dictionary'; /** * This is a model with nested enums @@ -7197,30 +3250,10 @@ export interface ModelWithNestedEnums { dictionaryWithEnum?: Dictionary<('Success' | 'Warning' | 'Error')>; dictionaryWithEnumFromDescription?: Dictionary<(1 | 2 | 3)>; } - -export namespace ModelWithNestedEnums { - - export const definition = { - properties: { - arrayWithDescription: { - type: 'Array', - }, - arrayWithEnum: { - type: 'Array', - }, - dictionaryWithEnum: { - type: 'Dictionary', - }, - dictionaryWithEnumFromDescription: { - type: 'Dictionary', - }, - }, - }; - -}" +" `; -exports[`generation v3 typescript file(./test/result/v3/typescript/models/ModelWithNestedProperties.ts): ./test/result/v3/typescript/models/ModelWithNestedProperties.ts 1`] = ` +exports[`generation v3 file(./test/result/v3/models/ModelWithNestedProperties.ts): ./test/result/v3/models/ModelWithNestedProperties.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ @@ -7237,44 +3270,16 @@ export interface ModelWithNestedProperties { } | null, } | null; } - -export namespace ModelWithNestedProperties { - - export const definition = { - properties: { - first: { - properties: { - second: { - properties: { - third: { - type: 'string', - isReadOnly: true, - isRequired: true, - isNullable: true, - }, - }, - isReadOnly: true, - isRequired: true, - isNullable: true, - }, - }, - isReadOnly: true, - isRequired: true, - isNullable: true, - }, - }, - }; - -}" +" `; -exports[`generation v3 typescript file(./test/result/v3/typescript/models/ModelWithProperties.ts): ./test/result/v3/typescript/models/ModelWithProperties.ts 1`] = ` +exports[`generation v3 file(./test/result/v3/models/ModelWithProperties.ts): ./test/result/v3/models/ModelWithProperties.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ /* prettier-ignore */ -import { ModelWithString } from '../models/ModelWithString'; +import { ModelWithString } from './ModelWithString'; /** * This is a model with one nested property @@ -7288,50 +3293,16 @@ export interface ModelWithProperties { readonly requiredAndReadOnly: string; string?: string; } - -export namespace ModelWithProperties { - - export const definition = { - properties: { - boolean: { - type: 'boolean', - }, - number: { - type: 'number', - }, - reference: { - type: 'ModelWithString', - }, - required: { - type: 'string', - isRequired: true, - }, - requiredAndNullable: { - type: 'string', - isRequired: true, - isNullable: true, - }, - requiredAndReadOnly: { - type: 'string', - isReadOnly: true, - isRequired: true, - }, - string: { - type: 'string', - }, - }, - }; - -}" +" `; -exports[`generation v3 typescript file(./test/result/v3/typescript/models/ModelWithReference.ts): ./test/result/v3/typescript/models/ModelWithReference.ts 1`] = ` +exports[`generation v3 file(./test/result/v3/models/ModelWithReference.ts): ./test/result/v3/models/ModelWithReference.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ /* prettier-ignore */ -import { ModelWithProperties } from '../models/ModelWithProperties'; +import { ModelWithProperties } from './ModelWithProperties'; /** * This is a model with one property containing a reference @@ -7339,21 +3310,10 @@ import { ModelWithProperties } from '../models/ModelWithProperties'; export interface ModelWithReference { prop?: ModelWithProperties; } - -export namespace ModelWithReference { - - export const definition = { - properties: { - prop: { - type: 'ModelWithProperties', - }, - }, - }; - -}" +" `; -exports[`generation v3 typescript file(./test/result/v3/typescript/models/ModelWithString.ts): ./test/result/v3/typescript/models/ModelWithString.ts 1`] = ` +exports[`generation v3 file(./test/result/v3/models/ModelWithString.ts): ./test/result/v3/models/ModelWithString.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ @@ -7369,21 +3329,10 @@ export interface ModelWithString { */ prop?: string; } - -export namespace ModelWithString { - - export const definition = { - properties: { - prop: { - type: 'string', - }, - }, - }; - -}" +" `; -exports[`generation v3 typescript file(./test/result/v3/typescript/models/SimpleBoolean.ts): ./test/result/v3/typescript/models/SimpleBoolean.ts 1`] = ` +exports[`generation v3 file(./test/result/v3/models/SimpleBoolean.ts): ./test/result/v3/models/SimpleBoolean.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ @@ -7393,18 +3342,10 @@ exports[`generation v3 typescript file(./test/result/v3/typescript/models/Simple /** * This is a simple boolean */ -export type SimpleBoolean = boolean; - -export namespace SimpleBoolean { - - export const definition = { - type: 'boolean', - }; - -}" +export type SimpleBoolean = boolean;" `; -exports[`generation v3 typescript file(./test/result/v3/typescript/models/SimpleFile.ts): ./test/result/v3/typescript/models/SimpleFile.ts 1`] = ` +exports[`generation v3 file(./test/result/v3/models/SimpleFile.ts): ./test/result/v3/models/SimpleFile.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ @@ -7414,18 +3355,10 @@ exports[`generation v3 typescript file(./test/result/v3/typescript/models/Simple /** * This is a simple file */ -export type SimpleFile = File; - -export namespace SimpleFile { - - export const definition = { - type: 'File', - }; - -}" +export type SimpleFile = File;" `; -exports[`generation v3 typescript file(./test/result/v3/typescript/models/SimpleInteger.ts): ./test/result/v3/typescript/models/SimpleInteger.ts 1`] = ` +exports[`generation v3 file(./test/result/v3/models/SimpleInteger.ts): ./test/result/v3/models/SimpleInteger.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ @@ -7435,40 +3368,24 @@ exports[`generation v3 typescript file(./test/result/v3/typescript/models/Simple /** * This is a simple number */ -export type SimpleInteger = number; - -export namespace SimpleInteger { - - export const definition = { - type: 'number', - }; - -}" +export type SimpleInteger = number;" `; -exports[`generation v3 typescript file(./test/result/v3/typescript/models/SimpleReference.ts): ./test/result/v3/typescript/models/SimpleReference.ts 1`] = ` +exports[`generation v3 file(./test/result/v3/models/SimpleReference.ts): ./test/result/v3/models/SimpleReference.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ /* prettier-ignore */ -import { ModelWithString } from '../models/ModelWithString'; +import { ModelWithString } from './ModelWithString'; /** * This is a simple reference */ -export type SimpleReference = ModelWithString; - -export namespace SimpleReference { - - export const definition = { - type: 'ModelWithString', - }; - -}" +export type SimpleReference = ModelWithString;" `; -exports[`generation v3 typescript file(./test/result/v3/typescript/models/SimpleString.ts): ./test/result/v3/typescript/models/SimpleString.ts 1`] = ` +exports[`generation v3 file(./test/result/v3/models/SimpleString.ts): ./test/result/v3/models/SimpleString.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ @@ -7478,18 +3395,703 @@ exports[`generation v3 typescript file(./test/result/v3/typescript/models/Simple /** * This is a simple string */ -export type SimpleString = string; - -export namespace SimpleString { - - export const definition = { - type: 'string', - }; - -}" +export type SimpleString = string;" `; -exports[`generation v3 typescript file(./test/result/v3/typescript/services/ComplexService.ts): ./test/result/v3/typescript/services/ComplexService.ts 1`] = ` +exports[`generation v3 file(./test/result/v3/models/index.ts): ./test/result/v3/models/index.ts 1`] = ` +"/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +/* prettier-ignore */ + +export { ArrayWithArray } from './ArrayWithArray'; +export { ArrayWithBooleans } from './ArrayWithBooleans'; +export { ArrayWithNumbers } from './ArrayWithNumbers'; +export { ArrayWithProperties } from './ArrayWithProperties'; +export { ArrayWithReferences } from './ArrayWithReferences'; +export { ArrayWithStrings } from './ArrayWithStrings'; +export { DictionaryWithArray } from './DictionaryWithArray'; +export { DictionaryWithDictionary } from './DictionaryWithDictionary'; +export { DictionaryWithProperties } from './DictionaryWithProperties'; +export { DictionaryWithReference } from './DictionaryWithReference'; +export { DictionaryWithString } from './DictionaryWithString'; +export { EnumFromDescription } from './EnumFromDescription'; +export { EnumWithNumbers } from './EnumWithNumbers'; +export { EnumWithStrings } from './EnumWithStrings'; +export { ModelLink } from './ModelLink'; +export { ModelThatExtends } from './ModelThatExtends'; +export { ModelThatExtendsExtends } from './ModelThatExtendsExtends'; +export { ModelWithArray } from './ModelWithArray'; +export { ModelWithBoolean } from './ModelWithBoolean'; +export { ModelWithCircularReference } from './ModelWithCircularReference'; +export { ModelWithDictionary } from './ModelWithDictionary'; +export { ModelWithDuplicateImports } from './ModelWithDuplicateImports'; +export { ModelWithDuplicateProperties } from './ModelWithDuplicateProperties'; +export { ModelWithEnum } from './ModelWithEnum'; +export { ModelWithEnumFromDescription } from './ModelWithEnumFromDescription'; +export { ModelWithInteger } from './ModelWithInteger'; +export { ModelWithLink } from './ModelWithLink'; +export { ModelWithNestedEnums } from './ModelWithNestedEnums'; +export { ModelWithNestedProperties } from './ModelWithNestedProperties'; +export { ModelWithProperties } from './ModelWithProperties'; +export { ModelWithReference } from './ModelWithReference'; +export { ModelWithString } from './ModelWithString'; +export { SimpleBoolean } from './SimpleBoolean'; +export { SimpleFile } from './SimpleFile'; +export { SimpleInteger } from './SimpleInteger'; +export { SimpleReference } from './SimpleReference'; +export { SimpleString } from './SimpleString'; +" +`; + +exports[`generation v3 file(./test/result/v3/schemas/$ArrayWithArray.ts): ./test/result/v3/schemas/$ArrayWithArray.ts 1`] = ` +"/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +/* prettier-ignore */ + + +export const $ArrayWithArray = { + type: 'Array', +};" +`; + +exports[`generation v3 file(./test/result/v3/schemas/$ArrayWithBooleans.ts): ./test/result/v3/schemas/$ArrayWithBooleans.ts 1`] = ` +"/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +/* prettier-ignore */ + + +export const $ArrayWithBooleans = { + type: 'Array', +};" +`; + +exports[`generation v3 file(./test/result/v3/schemas/$ArrayWithNumbers.ts): ./test/result/v3/schemas/$ArrayWithNumbers.ts 1`] = ` +"/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +/* prettier-ignore */ + + +export const $ArrayWithNumbers = { + type: 'Array', +};" +`; + +exports[`generation v3 file(./test/result/v3/schemas/$ArrayWithProperties.ts): ./test/result/v3/schemas/$ArrayWithProperties.ts 1`] = ` +"/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +/* prettier-ignore */ + + +export const $ArrayWithProperties = { + type: 'Array', +};" +`; + +exports[`generation v3 file(./test/result/v3/schemas/$ArrayWithReferences.ts): ./test/result/v3/schemas/$ArrayWithReferences.ts 1`] = ` +"/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +/* prettier-ignore */ + + +export const $ArrayWithReferences = { + type: 'Array', +};" +`; + +exports[`generation v3 file(./test/result/v3/schemas/$ArrayWithStrings.ts): ./test/result/v3/schemas/$ArrayWithStrings.ts 1`] = ` +"/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +/* prettier-ignore */ + + +export const $ArrayWithStrings = { + type: 'Array', +};" +`; + +exports[`generation v3 file(./test/result/v3/schemas/$Dictionary.ts): ./test/result/v3/schemas/$Dictionary.ts 1`] = ` +"/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +/* prettier-ignore */ + +export const $Dictionary = { + type: 'Dictionary' +}; +" +`; + +exports[`generation v3 file(./test/result/v3/schemas/$DictionaryWithArray.ts): ./test/result/v3/schemas/$DictionaryWithArray.ts 1`] = ` +"/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +/* prettier-ignore */ + + +export const $DictionaryWithArray = { + type: 'Dictionary', +};" +`; + +exports[`generation v3 file(./test/result/v3/schemas/$DictionaryWithDictionary.ts): ./test/result/v3/schemas/$DictionaryWithDictionary.ts 1`] = ` +"/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +/* prettier-ignore */ + + +export const $DictionaryWithDictionary = { + type: 'Dictionary', +};" +`; + +exports[`generation v3 file(./test/result/v3/schemas/$DictionaryWithProperties.ts): ./test/result/v3/schemas/$DictionaryWithProperties.ts 1`] = ` +"/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +/* prettier-ignore */ + + +export const $DictionaryWithProperties = { + type: 'Dictionary', +};" +`; + +exports[`generation v3 file(./test/result/v3/schemas/$DictionaryWithReference.ts): ./test/result/v3/schemas/$DictionaryWithReference.ts 1`] = ` +"/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +/* prettier-ignore */ + + +export const $DictionaryWithReference = { + type: 'Dictionary', +};" +`; + +exports[`generation v3 file(./test/result/v3/schemas/$DictionaryWithString.ts): ./test/result/v3/schemas/$DictionaryWithString.ts 1`] = ` +"/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +/* prettier-ignore */ + + +export const $DictionaryWithString = { + type: 'Dictionary', +};" +`; + +exports[`generation v3 file(./test/result/v3/schemas/$EnumFromDescription.ts): ./test/result/v3/schemas/$EnumFromDescription.ts 1`] = ` +"/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +/* prettier-ignore */ + + +export const $EnumFromDescription = { + type: 'Enum', +};" +`; + +exports[`generation v3 file(./test/result/v3/schemas/$EnumWithNumbers.ts): ./test/result/v3/schemas/$EnumWithNumbers.ts 1`] = ` +"/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +/* prettier-ignore */ + + +export const $EnumWithNumbers = { + type: 'Enum', +};" +`; + +exports[`generation v3 file(./test/result/v3/schemas/$EnumWithStrings.ts): ./test/result/v3/schemas/$EnumWithStrings.ts 1`] = ` +"/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +/* prettier-ignore */ + + +export const $EnumWithStrings = { + type: 'Enum', +};" +`; + +exports[`generation v3 file(./test/result/v3/schemas/$ModelLink.ts): ./test/result/v3/schemas/$ModelLink.ts 1`] = ` +"/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +/* prettier-ignore */ + + +export const $ModelLink = { + properties: { + id: { + type: 'string', + }, + }, +};" +`; + +exports[`generation v3 file(./test/result/v3/schemas/$ModelThatExtends.ts): ./test/result/v3/schemas/$ModelThatExtends.ts 1`] = ` +"/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +/* prettier-ignore */ + +import { $ModelWithString } from './$ModelWithString'; + +export const $ModelThatExtends = { + properties: { + ...$ModelWithString.properties, + propExtendsA: { + type: 'string', + }, + propExtendsB: { + type: 'ModelWithString', + }, + }, +};" +`; + +exports[`generation v3 file(./test/result/v3/schemas/$ModelThatExtendsExtends.ts): ./test/result/v3/schemas/$ModelThatExtendsExtends.ts 1`] = ` +"/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +/* prettier-ignore */ + +import { $ModelWithString } from './$ModelWithString'; +import { $ModelThatExtends } from './$ModelThatExtends'; + +export const $ModelThatExtendsExtends = { + properties: { + ...$ModelWithString.properties, + ...$ModelThatExtends.properties, + propExtendsC: { + type: 'string', + }, + propExtendsD: { + type: 'ModelWithString', + }, + }, +};" +`; + +exports[`generation v3 file(./test/result/v3/schemas/$ModelWithArray.ts): ./test/result/v3/schemas/$ModelWithArray.ts 1`] = ` +"/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +/* prettier-ignore */ + + +export const $ModelWithArray = { + properties: { + prop: { + type: 'Array', + }, + propWithFile: { + type: 'Array', + }, + propWithNumber: { + type: 'Array', + }, + }, +};" +`; + +exports[`generation v3 file(./test/result/v3/schemas/$ModelWithBoolean.ts): ./test/result/v3/schemas/$ModelWithBoolean.ts 1`] = ` +"/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +/* prettier-ignore */ + + +export const $ModelWithBoolean = { + properties: { + prop: { + type: 'boolean', + }, + }, +};" +`; + +exports[`generation v3 file(./test/result/v3/schemas/$ModelWithCircularReference.ts): ./test/result/v3/schemas/$ModelWithCircularReference.ts 1`] = ` +"/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +/* prettier-ignore */ + + +export const $ModelWithCircularReference = { + properties: { + prop: { + type: 'ModelWithCircularReference', + }, + }, +};" +`; + +exports[`generation v3 file(./test/result/v3/schemas/$ModelWithDictionary.ts): ./test/result/v3/schemas/$ModelWithDictionary.ts 1`] = ` +"/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +/* prettier-ignore */ + + +export const $ModelWithDictionary = { + properties: { + prop: { + type: 'Dictionary', + }, + }, +};" +`; + +exports[`generation v3 file(./test/result/v3/schemas/$ModelWithDuplicateImports.ts): ./test/result/v3/schemas/$ModelWithDuplicateImports.ts 1`] = ` +"/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +/* prettier-ignore */ + + +export const $ModelWithDuplicateImports = { + properties: { + propA: { + type: 'ModelWithString', + }, + propB: { + type: 'ModelWithString', + }, + propC: { + type: 'ModelWithString', + }, + }, +};" +`; + +exports[`generation v3 file(./test/result/v3/schemas/$ModelWithDuplicateProperties.ts): ./test/result/v3/schemas/$ModelWithDuplicateProperties.ts 1`] = ` +"/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +/* prettier-ignore */ + + +export const $ModelWithDuplicateProperties = { + properties: { + prop: { + type: 'ModelWithString', + }, + }, +};" +`; + +exports[`generation v3 file(./test/result/v3/schemas/$ModelWithEnum.ts): ./test/result/v3/schemas/$ModelWithEnum.ts 1`] = ` +"/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +/* prettier-ignore */ + + +export const $ModelWithEnum = { + properties: { + Test: { + type: 'Enum', + }, + }, +};" +`; + +exports[`generation v3 file(./test/result/v3/schemas/$ModelWithEnumFromDescription.ts): ./test/result/v3/schemas/$ModelWithEnumFromDescription.ts 1`] = ` +"/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +/* prettier-ignore */ + + +export const $ModelWithEnumFromDescription = { + properties: { + Test: { + type: 'Enum', + }, + }, +};" +`; + +exports[`generation v3 file(./test/result/v3/schemas/$ModelWithInteger.ts): ./test/result/v3/schemas/$ModelWithInteger.ts 1`] = ` +"/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +/* prettier-ignore */ + + +export const $ModelWithInteger = { + properties: { + prop: { + type: 'number', + }, + }, +};" +`; + +exports[`generation v3 file(./test/result/v3/schemas/$ModelWithLink.ts): ./test/result/v3/schemas/$ModelWithLink.ts 1`] = ` +"/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +/* prettier-ignore */ + + +export const $ModelWithLink = { + properties: { + prop: { + type: 'ModelLink', + }, + }, +};" +`; + +exports[`generation v3 file(./test/result/v3/schemas/$ModelWithNestedEnums.ts): ./test/result/v3/schemas/$ModelWithNestedEnums.ts 1`] = ` +"/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +/* prettier-ignore */ + + +export const $ModelWithNestedEnums = { + properties: { + arrayWithDescription: { + type: 'Array', + }, + arrayWithEnum: { + type: 'Array', + }, + dictionaryWithEnum: { + type: 'Dictionary', + }, + dictionaryWithEnumFromDescription: { + type: 'Dictionary', + }, + }, +};" +`; + +exports[`generation v3 file(./test/result/v3/schemas/$ModelWithNestedProperties.ts): ./test/result/v3/schemas/$ModelWithNestedProperties.ts 1`] = ` +"/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +/* prettier-ignore */ + + +export const $ModelWithNestedProperties = { + properties: { + first: { + properties: { + second: { + properties: { + third: { + type: 'string', + isReadOnly: true, + isRequired: true, + isNullable: true, + }, + }, + isReadOnly: true, + isRequired: true, + isNullable: true, + }, + }, + isReadOnly: true, + isRequired: true, + isNullable: true, + }, + }, +};" +`; + +exports[`generation v3 file(./test/result/v3/schemas/$ModelWithProperties.ts): ./test/result/v3/schemas/$ModelWithProperties.ts 1`] = ` +"/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +/* prettier-ignore */ + + +export const $ModelWithProperties = { + properties: { + boolean: { + type: 'boolean', + }, + number: { + type: 'number', + }, + reference: { + type: 'ModelWithString', + }, + required: { + type: 'string', + isRequired: true, + }, + requiredAndNullable: { + type: 'string', + isRequired: true, + isNullable: true, + }, + requiredAndReadOnly: { + type: 'string', + isReadOnly: true, + isRequired: true, + }, + string: { + type: 'string', + }, + }, +};" +`; + +exports[`generation v3 file(./test/result/v3/schemas/$ModelWithReference.ts): ./test/result/v3/schemas/$ModelWithReference.ts 1`] = ` +"/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +/* prettier-ignore */ + + +export const $ModelWithReference = { + properties: { + prop: { + type: 'ModelWithProperties', + }, + }, +};" +`; + +exports[`generation v3 file(./test/result/v3/schemas/$ModelWithString.ts): ./test/result/v3/schemas/$ModelWithString.ts 1`] = ` +"/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +/* prettier-ignore */ + + +export const $ModelWithString = { + properties: { + prop: { + type: 'string', + }, + }, +};" +`; + +exports[`generation v3 file(./test/result/v3/schemas/$SimpleBoolean.ts): ./test/result/v3/schemas/$SimpleBoolean.ts 1`] = ` +"/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +/* prettier-ignore */ + + +export const $SimpleBoolean = { + type: 'boolean', +};" +`; + +exports[`generation v3 file(./test/result/v3/schemas/$SimpleFile.ts): ./test/result/v3/schemas/$SimpleFile.ts 1`] = ` +"/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +/* prettier-ignore */ + + +export const $SimpleFile = { + type: 'File', +};" +`; + +exports[`generation v3 file(./test/result/v3/schemas/$SimpleInteger.ts): ./test/result/v3/schemas/$SimpleInteger.ts 1`] = ` +"/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +/* prettier-ignore */ + + +export const $SimpleInteger = { + type: 'number', +};" +`; + +exports[`generation v3 file(./test/result/v3/schemas/$SimpleReference.ts): ./test/result/v3/schemas/$SimpleReference.ts 1`] = ` +"/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +/* prettier-ignore */ + + +export const $SimpleReference = { + type: 'ModelWithString', +};" +`; + +exports[`generation v3 file(./test/result/v3/schemas/$SimpleString.ts): ./test/result/v3/schemas/$SimpleString.ts 1`] = ` +"/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +/* prettier-ignore */ + + +export const $SimpleString = { + type: 'string', +};" +`; + +exports[`generation v3 file(./test/result/v3/schemas/index.ts): ./test/result/v3/schemas/index.ts 1`] = ` +"/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +/* prettier-ignore */ + +export { $ArrayWithArray as ArrayWithArray } from './$ArrayWithArray'; +export { $ArrayWithBooleans as ArrayWithBooleans } from './$ArrayWithBooleans'; +export { $ArrayWithNumbers as ArrayWithNumbers } from './$ArrayWithNumbers'; +export { $ArrayWithProperties as ArrayWithProperties } from './$ArrayWithProperties'; +export { $ArrayWithReferences as ArrayWithReferences } from './$ArrayWithReferences'; +export { $ArrayWithStrings as ArrayWithStrings } from './$ArrayWithStrings'; +export { $DictionaryWithArray as DictionaryWithArray } from './$DictionaryWithArray'; +export { $DictionaryWithDictionary as DictionaryWithDictionary } from './$DictionaryWithDictionary'; +export { $DictionaryWithProperties as DictionaryWithProperties } from './$DictionaryWithProperties'; +export { $DictionaryWithReference as DictionaryWithReference } from './$DictionaryWithReference'; +export { $DictionaryWithString as DictionaryWithString } from './$DictionaryWithString'; +export { $EnumFromDescription as EnumFromDescription } from './$EnumFromDescription'; +export { $EnumWithNumbers as EnumWithNumbers } from './$EnumWithNumbers'; +export { $EnumWithStrings as EnumWithStrings } from './$EnumWithStrings'; +export { $ModelLink as ModelLink } from './$ModelLink'; +export { $ModelThatExtends as ModelThatExtends } from './$ModelThatExtends'; +export { $ModelThatExtendsExtends as ModelThatExtendsExtends } from './$ModelThatExtendsExtends'; +export { $ModelWithArray as ModelWithArray } from './$ModelWithArray'; +export { $ModelWithBoolean as ModelWithBoolean } from './$ModelWithBoolean'; +export { $ModelWithCircularReference as ModelWithCircularReference } from './$ModelWithCircularReference'; +export { $ModelWithDictionary as ModelWithDictionary } from './$ModelWithDictionary'; +export { $ModelWithDuplicateImports as ModelWithDuplicateImports } from './$ModelWithDuplicateImports'; +export { $ModelWithDuplicateProperties as ModelWithDuplicateProperties } from './$ModelWithDuplicateProperties'; +export { $ModelWithEnum as ModelWithEnum } from './$ModelWithEnum'; +export { $ModelWithEnumFromDescription as ModelWithEnumFromDescription } from './$ModelWithEnumFromDescription'; +export { $ModelWithInteger as ModelWithInteger } from './$ModelWithInteger'; +export { $ModelWithLink as ModelWithLink } from './$ModelWithLink'; +export { $ModelWithNestedEnums as ModelWithNestedEnums } from './$ModelWithNestedEnums'; +export { $ModelWithNestedProperties as ModelWithNestedProperties } from './$ModelWithNestedProperties'; +export { $ModelWithProperties as ModelWithProperties } from './$ModelWithProperties'; +export { $ModelWithReference as ModelWithReference } from './$ModelWithReference'; +export { $ModelWithString as ModelWithString } from './$ModelWithString'; +export { $SimpleBoolean as SimpleBoolean } from './$SimpleBoolean'; +export { $SimpleFile as SimpleFile } from './$SimpleFile'; +export { $SimpleInteger as SimpleInteger } from './$SimpleInteger'; +export { $SimpleReference as SimpleReference } from './$SimpleReference'; +export { $SimpleString as SimpleString } from './$SimpleString'; +" +`; + +exports[`generation v3 file(./test/result/v3/services/ComplexService.ts): ./test/result/v3/services/ComplexService.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ @@ -7543,7 +4145,7 @@ export class ComplexService { }" `; -exports[`generation v3 typescript file(./test/result/v3/typescript/services/DefaultsService.ts): ./test/result/v3/typescript/services/DefaultsService.ts 1`] = ` +exports[`generation v3 file(./test/result/v3/services/DefaultsService.ts): ./test/result/v3/services/DefaultsService.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ @@ -7594,7 +4196,7 @@ export class DefaultsService { }" `; -exports[`generation v3 typescript file(./test/result/v3/typescript/services/MultipartService.ts): ./test/result/v3/typescript/services/MultipartService.ts 1`] = ` +exports[`generation v3 file(./test/result/v3/services/MultipartService.ts): ./test/result/v3/services/MultipartService.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ @@ -7631,7 +4233,7 @@ export class MultipartService { }" `; -exports[`generation v3 typescript file(./test/result/v3/typescript/services/ParametersService.ts): ./test/result/v3/typescript/services/ParametersService.ts 1`] = ` +exports[`generation v3 file(./test/result/v3/services/ParametersService.ts): ./test/result/v3/services/ParametersService.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ @@ -7686,7 +4288,7 @@ export class ParametersService { }" `; -exports[`generation v3 typescript file(./test/result/v3/typescript/services/ResponseService.ts): ./test/result/v3/typescript/services/ResponseService.ts 1`] = ` +exports[`generation v3 file(./test/result/v3/services/ResponseService.ts): ./test/result/v3/services/ResponseService.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ @@ -7770,7 +4372,7 @@ export class ResponseService { }" `; -exports[`generation v3 typescript file(./test/result/v3/typescript/services/SimpleService.ts): ./test/result/v3/typescript/services/SimpleService.ts 1`] = ` +exports[`generation v3 file(./test/result/v3/services/SimpleService.ts): ./test/result/v3/services/SimpleService.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ @@ -7890,7 +4492,7 @@ export class SimpleService { }" `; -exports[`generation v3 typescript file(./test/result/v3/typescript/services/TypesService.ts): ./test/result/v3/typescript/services/TypesService.ts 1`] = ` +exports[`generation v3 file(./test/result/v3/services/TypesService.ts): ./test/result/v3/services/TypesService.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ @@ -7949,3 +4551,19 @@ export class TypesService { }" `; + +exports[`generation v3 file(./test/result/v3/services/index.ts): ./test/result/v3/services/index.ts 1`] = ` +"/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +/* prettier-ignore */ + +export { ComplexService } from './ComplexService'; +export { DefaultsService } from './DefaultsService'; +export { MultipartService } from './MultipartService'; +export { ParametersService } from './ParametersService'; +export { ResponseService } from './ResponseService'; +export { SimpleService } from './SimpleService'; +export { TypesService } from './TypesService'; +" +`; diff --git a/test/index.js b/test/index.js index b87a616a..72910efd 100644 --- a/test/index.js +++ b/test/index.js @@ -1,32 +1,16 @@ const OpenAPI = require('../dist'); OpenAPI.generate( - './test/mock/spec-v2.json', - './test/result/v2/typescript/', - OpenAPI.Language.TYPESCRIPT, + './test/mock/v2/spec.json', + './test/result/v2/', OpenAPI.HttpClient.FETCH, ); OpenAPI.generate( - './test/mock/spec-v2.json', - './test/result/v2/javascript/', - OpenAPI.Language.JAVASCRIPT, - OpenAPI.HttpClient.XHR, -); - -OpenAPI.generate( - './test/mock/spec-v3.json', - './test/result/v3/typescript/', - OpenAPI.Language.TYPESCRIPT, + './test/mock/v3/spec.json', + './test/result/v3/', OpenAPI.HttpClient.FETCH, ); -OpenAPI.generate( - './test/mock/spec-v3.json', - './test/result/v3/javascript/', - OpenAPI.Language.JAVASCRIPT, - OpenAPI.HttpClient.XHR, -); - -OpenAPI.compile('./test/result/v2/typescript/'); -OpenAPI.compile('./test/result/v3/typescript/'); +OpenAPI.compile('./test/result/v2/'); +OpenAPI.compile('./test/result/v3/'); diff --git a/test/index.spec.js b/test/index.spec.js index f715293b..910bdf0e 100644 --- a/test/index.spec.js +++ b/test/index.spec.js @@ -6,79 +6,35 @@ describe('generation', () => { describe('v2', () => { - describe('typescript', () => { + OpenAPI.generate( + './test/mock/v2/spec.json', + './test/result/v2/', + OpenAPI.HttpClient.FETCH, + ); - OpenAPI.generate( - './test/mock/spec-v2.json', - './test/result/v2/typescript/', - OpenAPI.Language.TYPESCRIPT, - OpenAPI.HttpClient.FETCH, - ); - - test.each(glob - .sync('./test/result/v2/typescript/**/*.ts') - .map(file => [file]) - )('file(%s)', file => { - const content = fs.readFileSync(file, 'utf8').toString(); - expect(content).toMatchSnapshot(file); - }); - }); - - describe('javascript', () => { - - OpenAPI.generate( - './test/mock/spec-v2.json', - './test/result/v2/javascript/', - OpenAPI.Language.JAVASCRIPT, - OpenAPI.HttpClient.XHR, - ); - - test.each(glob - .sync('./test/result/v2/javascript/**/*.js') - .map(file => [file]) - )('file(%s)', file => { - const content = fs.readFileSync(file, 'utf8').toString(); - expect(content).toMatchSnapshot(file); - }); + test.each(glob + .sync('./test/result/v2/**/*.ts') + .map(file => [file]) + )('file(%s)', file => { + const content = fs.readFileSync(file, 'utf8').toString(); + expect(content).toMatchSnapshot(file); }); }); describe('v3', () => { - describe('typescript', () => { + OpenAPI.generate( + './test/mock/v3/spec.json', + './test/result/v3/', + OpenAPI.HttpClient.FETCH, + ); - OpenAPI.generate( - './test/mock/spec-v3.json', - './test/result/v3/typescript/', - OpenAPI.Language.TYPESCRIPT, - OpenAPI.HttpClient.FETCH, - ); - - test.each(glob - .sync('./test/result/v3/typescript/**/*.ts') - .map(file => [file]) - )('file(%s)', file => { - const content = fs.readFileSync(file, 'utf8').toString(); - expect(content).toMatchSnapshot(file); - }); - }); - - describe('javascript', () => { - - OpenAPI.generate( - './test/mock/spec-v3.json', - './test/result/v3/javascript/', - OpenAPI.Language.JAVASCRIPT, - OpenAPI.HttpClient.XHR, - ); - - test.each(glob - .sync('./test/result/v3/javascript/**/*.js') - .map(file => [file]) - )('file(%s)', file => { - const content = fs.readFileSync(file, 'utf8').toString(); - expect(content).toMatchSnapshot(file); - }); + test.each(glob + .sync('./test/result/v3/**/*.ts') + .map(file => [file]) + )('file(%s)', file => { + const content = fs.readFileSync(file, 'utf8').toString(); + expect(content).toMatchSnapshot(file); }); }); }); diff --git a/test/mock/spec-v2.json b/test/mock/v2/spec.json similarity index 100% rename from test/mock/spec-v2.json rename to test/mock/v2/spec.json diff --git a/test/mock/spec-v3.json b/test/mock/v3/spec.json similarity index 100% rename from test/mock/spec-v3.json rename to test/mock/v3/spec.json