diff --git a/package.json b/package.json index f801755be..b16929652 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { - "name": "openapi-typescript-codegen", - "version": "0.23.0", + "name": "@shipengine/openapi-typescript-codegen", + "version": "0.23.2", "description": "Library that generates Typescript clients based on the OpenAPI specification.", "author": "Ferdi Koomen", "homepage": "https://github.com/ferdikoomen/openapi-typescript-codegen", @@ -120,7 +120,7 @@ "typescript": "4.8.4", "zone.js": "0.11.8" }, - "overrides" : { + "overrides": { "rollup": "3.2.3" } } diff --git a/src/openApi/v2/parser/camelCaseName.ts b/src/openApi/v2/parser/camelCaseName.ts new file mode 100644 index 000000000..a896b6647 --- /dev/null +++ b/src/openApi/v2/parser/camelCaseName.ts @@ -0,0 +1,13 @@ +import camelCase, { Options as CamelCaseOptions } from 'camelcase'; + +export type { CamelCaseOptions }; + +export const camelCaseName = (value: string, options?: CamelCaseOptions) => { + return value + .split('.') + .map(part => { + const prefix = part[0] === '_' ? '_' : ''; + return `${prefix}${camelCase(part, options)}`; + }) + .join('.'); +}; diff --git a/src/openApi/v2/parser/escapeName.ts b/src/openApi/v2/parser/escapeName.ts index 9d6816c10..0993c94a1 100644 --- a/src/openApi/v2/parser/escapeName.ts +++ b/src/openApi/v2/parser/escapeName.ts @@ -1,9 +1,17 @@ +import { camelCaseName, CamelCaseOptions } from './camelCaseName'; + export const escapeName = (value: string): string => { if (value || value === '') { const validName = /^[a-zA-Z_$][\w$]+$/g.test(value); if (!validName) { - return `'${value}'`; + value = `'${value}'`; } } + return value; }; + +export const escapeAndCamelizeName = (value: string, options?: CamelCaseOptions): string => { + value = camelCaseName(value, options); + return escapeName(value); +}; diff --git a/src/openApi/v2/parser/getModel.ts b/src/openApi/v2/parser/getModel.ts index 22f3528aa..c309781ad 100644 --- a/src/openApi/v2/parser/getModel.ts +++ b/src/openApi/v2/parser/getModel.ts @@ -2,6 +2,7 @@ import type { Model } from '../../../client/interfaces/Model'; import { getPattern } from '../../../utils/getPattern'; import type { OpenApi } from '../interfaces/OpenApi'; import type { OpenApiSchema } from '../interfaces/OpenApiSchema'; +import { camelCaseName } from './camelCaseName'; import { extendEnum } from './extendEnum'; import { getEnum } from './getEnum'; import { getModelComposition } from './getModelComposition'; @@ -15,7 +16,7 @@ export const getModel = ( name: string = '' ): Model => { const model: Model = { - name, + name: camelCaseName(name, { pascalCase: true }), export: 'interface', type: 'any', base: 'any', @@ -149,5 +150,7 @@ export const getModel = ( return model; } + model.imports = model.imports.map(x => camelCaseName(x, { pascalCase: true })); + return model; }; diff --git a/src/openApi/v2/parser/getModelComposition.ts b/src/openApi/v2/parser/getModelComposition.ts index 6b5e4c305..f0c25515f 100644 --- a/src/openApi/v2/parser/getModelComposition.ts +++ b/src/openApi/v2/parser/getModelComposition.ts @@ -2,6 +2,8 @@ import type { Model } from '../../../client/interfaces/Model'; import type { ModelComposition } from '../../../client/interfaces/ModelComposition'; import type { OpenApi } from '../interfaces/OpenApi'; import type { OpenApiSchema } from '../interfaces/OpenApiSchema'; +import { camelCaseName } from './camelCaseName'; +import { escapeAndCamelizeName } from './escapeName'; import type { getModel } from './getModel'; import { getModelProperties } from './getModelProperties'; import { getRequiredPropertiesFromComposition } from './getRequiredPropertiesFromComposition'; @@ -43,7 +45,7 @@ export const getModelComposition = ( if (definition.required) { const requiredProperties = getRequiredPropertiesFromComposition( openApi, - definition.required, + definition.required.map(required => escapeAndCamelizeName(required)), definitions, getModel ); @@ -86,5 +88,7 @@ export const getModelComposition = ( }); } + composition.imports = composition.imports.map(x => camelCaseName(x, { pascalCase: true })); + return composition; }; diff --git a/src/openApi/v2/parser/getModelProperties.ts b/src/openApi/v2/parser/getModelProperties.ts index 7560be765..cde3103f5 100644 --- a/src/openApi/v2/parser/getModelProperties.ts +++ b/src/openApi/v2/parser/getModelProperties.ts @@ -2,7 +2,7 @@ import type { Model } from '../../../client/interfaces/Model'; import { getPattern } from '../../../utils/getPattern'; import type { OpenApi } from '../interfaces/OpenApi'; import type { OpenApiSchema } from '../interfaces/OpenApiSchema'; -import { escapeName } from './escapeName'; +import { escapeAndCamelizeName } from './escapeName'; import type { getModel } from './getModel'; import { getType } from './getType'; @@ -18,7 +18,7 @@ export const getModelProperties = (openApi: OpenApi, definition: OpenApiSchema, if (property.$ref) { const model = getType(property.$ref); models.push({ - name: escapeName(propertyName), + name: escapeAndCamelizeName(propertyName), export: 'reference', type: model.type, base: model.base, @@ -51,7 +51,7 @@ export const getModelProperties = (openApi: OpenApi, definition: OpenApiSchema, } else { const model = getModel(openApi, property); models.push({ - name: escapeName(propertyName), + name: escapeAndCamelizeName(propertyName), export: model.export, type: model.type, base: model.base, diff --git a/src/openApi/v2/parser/getOperation.ts b/src/openApi/v2/parser/getOperation.ts index 9aa157460..229a68312 100644 --- a/src/openApi/v2/parser/getOperation.ts +++ b/src/openApi/v2/parser/getOperation.ts @@ -2,6 +2,7 @@ import type { Operation } from '../../../client/interfaces/Operation'; import type { OperationParameters } from '../../../client/interfaces/OperationParameters'; import type { OpenApi } from '../interfaces/OpenApi'; import type { OpenApiOperation } from '../interfaces/OpenApiOperation'; +import { camelCaseName } from './camelCaseName'; import { getOperationErrors } from './getOperationErrors'; import { getOperationName } from './getOperationName'; import { getOperationParameters } from './getOperationParameters'; @@ -71,6 +72,7 @@ export const getOperation = ( } operation.parameters = operation.parameters.sort(sortByRequired); + operation.imports = operation.imports.map(x => camelCaseName(x, { pascalCase: true })); return operation; }; diff --git a/src/openApi/v2/parser/getOperationParameter.ts b/src/openApi/v2/parser/getOperationParameter.ts index 6b68c9d5a..556a9b350 100644 --- a/src/openApi/v2/parser/getOperationParameter.ts +++ b/src/openApi/v2/parser/getOperationParameter.ts @@ -3,6 +3,7 @@ import { getPattern } from '../../../utils/getPattern'; import type { OpenApi } from '../interfaces/OpenApi'; import type { OpenApiParameter } from '../interfaces/OpenApiParameter'; import type { OpenApiSchema } from '../interfaces/OpenApiSchema'; +import { camelCaseName } from './camelCaseName'; import { extendEnum } from './extendEnum'; import { getEnum } from './getEnum'; import { getModel } from './getModel'; @@ -133,5 +134,7 @@ export const getOperationParameter = (openApi: OpenApi, parameter: OpenApiParame return operationParameter; } + operationParameter.imports = operationParameter.imports.map(x => camelCaseName(x, { pascalCase: true })); + return operationParameter; }; diff --git a/src/openApi/v2/parser/getOperationParameters.ts b/src/openApi/v2/parser/getOperationParameters.ts index f265d1ccc..73a896596 100644 --- a/src/openApi/v2/parser/getOperationParameters.ts +++ b/src/openApi/v2/parser/getOperationParameters.ts @@ -1,6 +1,7 @@ import type { OperationParameters } from '../../../client/interfaces/OperationParameters'; import type { OpenApi } from '../interfaces/OpenApi'; import type { OpenApiParameter } from '../interfaces/OpenApiParameter'; +import { camelCaseName } from './camelCaseName'; import { getOperationParameter } from './getOperationParameter'; import { getRef } from './getRef'; @@ -57,5 +58,8 @@ export const getOperationParameters = (openApi: OpenApi, parameters: OpenApiPara } } }); + + operationParameters.imports = operationParameters.imports.map(x => camelCaseName(x, { pascalCase: true })); + return operationParameters; }; diff --git a/src/openApi/v2/parser/getOperationResponse.ts b/src/openApi/v2/parser/getOperationResponse.ts index 8f6c3ca56..403df753f 100644 --- a/src/openApi/v2/parser/getOperationResponse.ts +++ b/src/openApi/v2/parser/getOperationResponse.ts @@ -3,6 +3,7 @@ import { getPattern } from '../../../utils/getPattern'; import type { OpenApi } from '../interfaces/OpenApi'; import type { OpenApiResponse } from '../interfaces/OpenApiResponse'; import type { OpenApiSchema } from '../interfaces/OpenApiSchema'; +import { camelCaseName } from './camelCaseName'; import { getModel } from './getModel'; import { getRef } from './getRef'; import { getType } from './getType'; @@ -95,5 +96,7 @@ export const getOperationResponse = ( } } + operationResponse.imports = operationResponse.imports.map(x => camelCaseName(x, { pascalCase: true })); + return operationResponse; }; diff --git a/src/openApi/v2/parser/getServices.ts b/src/openApi/v2/parser/getServices.ts index d8fe411bb..1fd2f6b15 100644 --- a/src/openApi/v2/parser/getServices.ts +++ b/src/openApi/v2/parser/getServices.ts @@ -1,6 +1,7 @@ import type { Service } from '../../../client/interfaces/Service'; import { unique } from '../../../utils/unique'; import type { OpenApi } from '../interfaces/OpenApi'; +import { camelCaseName } from './camelCaseName'; import { getOperation } from './getOperation'; import { getOperationParameters } from './getOperationParameters'; @@ -43,6 +44,7 @@ export const getServices = (openApi: OpenApi): Service[] => { // Push the operation in the service service.operations.push(operation); service.imports.push(...operation.imports); + service.imports = service.imports.map(x => camelCaseName(x, { pascalCase: true })); services.set(operation.service, service); }); break; @@ -51,5 +53,6 @@ export const getServices = (openApi: OpenApi): Service[] => { } } } + return Array.from(services.values()); }; diff --git a/src/openApi/v2/parser/getType.ts b/src/openApi/v2/parser/getType.ts index 6caa1e015..656d6ea4c 100644 --- a/src/openApi/v2/parser/getType.ts +++ b/src/openApi/v2/parser/getType.ts @@ -1,4 +1,5 @@ import type { Type } from '../../../client/interfaces/Type'; +import { camelCaseName } from './camelCaseName'; import { getMappedType } from './getMappedType'; import { stripNamespace } from './stripNamespace'; @@ -63,5 +64,7 @@ export const getType = (type: string = 'any', format?: string): Type => { return result; } + result.imports = result.imports.map(x => camelCaseName(x, { pascalCase: true })); + return result; }; diff --git a/src/openApi/v3/parser/camelCaseName.ts b/src/openApi/v3/parser/camelCaseName.ts new file mode 100644 index 000000000..a896b6647 --- /dev/null +++ b/src/openApi/v3/parser/camelCaseName.ts @@ -0,0 +1,13 @@ +import camelCase, { Options as CamelCaseOptions } from 'camelcase'; + +export type { CamelCaseOptions }; + +export const camelCaseName = (value: string, options?: CamelCaseOptions) => { + return value + .split('.') + .map(part => { + const prefix = part[0] === '_' ? '_' : ''; + return `${prefix}${camelCase(part, options)}`; + }) + .join('.'); +}; diff --git a/src/openApi/v3/parser/escapeName.ts b/src/openApi/v3/parser/escapeName.ts index 9d6816c10..0993c94a1 100644 --- a/src/openApi/v3/parser/escapeName.ts +++ b/src/openApi/v3/parser/escapeName.ts @@ -1,9 +1,17 @@ +import { camelCaseName, CamelCaseOptions } from './camelCaseName'; + export const escapeName = (value: string): string => { if (value || value === '') { const validName = /^[a-zA-Z_$][\w$]+$/g.test(value); if (!validName) { - return `'${value}'`; + value = `'${value}'`; } } + return value; }; + +export const escapeAndCamelizeName = (value: string, options?: CamelCaseOptions): string => { + value = camelCaseName(value, options); + return escapeName(value); +}; diff --git a/src/openApi/v3/parser/getModel.ts b/src/openApi/v3/parser/getModel.ts index 9e9c60a98..2bed0869d 100644 --- a/src/openApi/v3/parser/getModel.ts +++ b/src/openApi/v3/parser/getModel.ts @@ -2,6 +2,7 @@ import type { Model } from '../../../client/interfaces/Model'; import { getPattern } from '../../../utils/getPattern'; import type { OpenApi } from '../interfaces/OpenApi'; import type { OpenApiSchema } from '../interfaces/OpenApiSchema'; +import { camelCaseName } from './camelCaseName'; import { extendEnum } from './extendEnum'; import { getEnum } from './getEnum'; import { getModelComposition } from './getModelComposition'; @@ -16,7 +17,7 @@ export const getModel = ( name: string = '' ): Model => { const model: Model = { - name, + name: camelCaseName(name, { pascalCase: true }), export: 'interface', type: 'any', base: 'any', @@ -192,5 +193,7 @@ export const getModel = ( return model; } + model.imports = model.imports.map(x => camelCaseName(x, { pascalCase: true })); + return model; }; diff --git a/src/openApi/v3/parser/getModelComposition.ts b/src/openApi/v3/parser/getModelComposition.ts index 2c27d1815..97d232be6 100644 --- a/src/openApi/v3/parser/getModelComposition.ts +++ b/src/openApi/v3/parser/getModelComposition.ts @@ -2,6 +2,8 @@ import type { Model } from '../../../client/interfaces/Model'; import type { ModelComposition } from '../../../client/interfaces/ModelComposition'; import type { OpenApi } from '../interfaces/OpenApi'; import type { OpenApiSchema } from '../interfaces/OpenApiSchema'; +import { camelCaseName } from './camelCaseName'; +import { escapeAndCamelizeName } from './escapeName'; import type { getModel } from './getModel'; import { getModelProperties } from './getModelProperties'; import { getRequiredPropertiesFromComposition } from './getRequiredPropertiesFromComposition'; @@ -44,7 +46,7 @@ export const getModelComposition = ( if (definition.required) { const requiredProperties = getRequiredPropertiesFromComposition( openApi, - definition.required, + definition.required.map(required => escapeAndCamelizeName(required)), definitions, getModel ); @@ -87,5 +89,7 @@ export const getModelComposition = ( }); } + composition.imports = composition.imports.map(x => camelCaseName(x, { pascalCase: true })); + return composition; }; diff --git a/src/openApi/v3/parser/getModelProperties.ts b/src/openApi/v3/parser/getModelProperties.ts index 6e25ca833..7f6f3e292 100644 --- a/src/openApi/v3/parser/getModelProperties.ts +++ b/src/openApi/v3/parser/getModelProperties.ts @@ -3,7 +3,7 @@ import { findOneOfParentDiscriminator, mapPropertyValue } from '../../../utils/d import { getPattern } from '../../../utils/getPattern'; import type { OpenApi } from '../interfaces/OpenApi'; import type { OpenApiSchema } from '../interfaces/OpenApiSchema'; -import { escapeName } from './escapeName'; +import { escapeAndCamelizeName } from './escapeName'; import type { getModel } from './getModel'; import { getType } from './getType'; @@ -35,7 +35,7 @@ export const getModelProperties = ( | 'enums' | 'properties' > = { - name: escapeName(propertyName), + name: escapeAndCamelizeName(propertyName), description: property.description || null, deprecated: property.deprecated === true, isDefinition: false, diff --git a/src/openApi/v3/parser/getOperation.ts b/src/openApi/v3/parser/getOperation.ts index aee4bd0c2..79ed86bc0 100644 --- a/src/openApi/v3/parser/getOperation.ts +++ b/src/openApi/v3/parser/getOperation.ts @@ -3,6 +3,7 @@ import type { OperationParameters } from '../../../client/interfaces/OperationPa import type { OpenApi } from '../interfaces/OpenApi'; import type { OpenApiOperation } from '../interfaces/OpenApiOperation'; import type { OpenApiRequestBody } from '../interfaces/OpenApiRequestBody'; +import { camelCaseName } from './camelCaseName'; import { getOperationErrors } from './getOperationErrors'; import { getOperationName } from './getOperationName'; import { getOperationParameters } from './getOperationParameters'; @@ -82,6 +83,7 @@ export const getOperation = ( } operation.parameters = operation.parameters.sort(sortByRequired); + operation.imports = operation.imports.map(x => camelCaseName(x, { pascalCase: true })); return operation; }; diff --git a/src/openApi/v3/parser/getOperationParameter.ts b/src/openApi/v3/parser/getOperationParameter.ts index 97a719c96..1156cfd65 100644 --- a/src/openApi/v3/parser/getOperationParameter.ts +++ b/src/openApi/v3/parser/getOperationParameter.ts @@ -3,6 +3,7 @@ import { getPattern } from '../../../utils/getPattern'; import type { OpenApi } from '../interfaces/OpenApi'; import type { OpenApiParameter } from '../interfaces/OpenApiParameter'; import type { OpenApiSchema } from '../interfaces/OpenApiSchema'; +import { camelCaseName } from './camelCaseName'; import { getModel } from './getModel'; import { getModelDefault } from './getModelDefault'; import { getOperationParameterName } from './getOperationParameterName'; @@ -89,5 +90,7 @@ export const getOperationParameter = (openApi: OpenApi, parameter: OpenApiParame } } + operationParameter.imports = operationParameter.imports.map(x => camelCaseName(x, { pascalCase: true })); + return operationParameter; }; diff --git a/src/openApi/v3/parser/getOperationParameters.ts b/src/openApi/v3/parser/getOperationParameters.ts index 051b4a0a9..2b137cf96 100644 --- a/src/openApi/v3/parser/getOperationParameters.ts +++ b/src/openApi/v3/parser/getOperationParameters.ts @@ -1,6 +1,7 @@ import type { OperationParameters } from '../../../client/interfaces/OperationParameters'; import type { OpenApi } from '../interfaces/OpenApi'; import type { OpenApiParameter } from '../interfaces/OpenApiParameter'; +import { camelCaseName } from './camelCaseName'; import { getOperationParameter } from './getOperationParameter'; import { getRef } from './getRef'; @@ -57,5 +58,8 @@ export const getOperationParameters = (openApi: OpenApi, parameters: OpenApiPara } } }); + + operationParameters.imports = operationParameters.imports.map(x => camelCaseName(x, { pascalCase: true })); + return operationParameters; }; diff --git a/src/openApi/v3/parser/getOperationRequestBody.ts b/src/openApi/v3/parser/getOperationRequestBody.ts index 9f9cca241..62283718f 100644 --- a/src/openApi/v3/parser/getOperationRequestBody.ts +++ b/src/openApi/v3/parser/getOperationRequestBody.ts @@ -2,6 +2,7 @@ import type { OperationParameter } from '../../../client/interfaces/OperationPar import { getPattern } from '../../../utils/getPattern'; import type { OpenApi } from '../interfaces/OpenApi'; import type { OpenApiRequestBody } from '../interfaces/OpenApiRequestBody'; +import { camelCaseName } from './camelCaseName'; import { getContent } from './getContent'; import { getModel } from './getModel'; import { getType } from './getType'; @@ -82,5 +83,7 @@ export const getOperationRequestBody = (openApi: OpenApi, body: OpenApiRequestBo } } + requestBody.imports = requestBody.imports.map(x => camelCaseName(x, { pascalCase: true })); + return requestBody; }; diff --git a/src/openApi/v3/parser/getOperationResponse.ts b/src/openApi/v3/parser/getOperationResponse.ts index dff19ec13..f5132d77e 100644 --- a/src/openApi/v3/parser/getOperationResponse.ts +++ b/src/openApi/v3/parser/getOperationResponse.ts @@ -3,6 +3,7 @@ import { getPattern } from '../../../utils/getPattern'; import type { OpenApi } from '../interfaces/OpenApi'; import type { OpenApiResponse } from '../interfaces/OpenApiResponse'; import type { OpenApiSchema } from '../interfaces/OpenApiSchema'; +import { camelCaseName } from './camelCaseName'; import { getContent } from './getContent'; import { getModel } from './getModel'; import { getRef } from './getRef'; @@ -94,5 +95,7 @@ export const getOperationResponse = ( } } + operationResponse.imports = operationResponse.imports.map(x => camelCaseName(x, { pascalCase: true })); + return operationResponse; }; diff --git a/src/openApi/v3/parser/getServices.ts b/src/openApi/v3/parser/getServices.ts index d8fe411bb..169f82764 100644 --- a/src/openApi/v3/parser/getServices.ts +++ b/src/openApi/v3/parser/getServices.ts @@ -1,6 +1,7 @@ import type { Service } from '../../../client/interfaces/Service'; import { unique } from '../../../utils/unique'; import type { OpenApi } from '../interfaces/OpenApi'; +import { camelCaseName } from './camelCaseName'; import { getOperation } from './getOperation'; import { getOperationParameters } from './getOperationParameters'; @@ -43,6 +44,7 @@ export const getServices = (openApi: OpenApi): Service[] => { // Push the operation in the service service.operations.push(operation); service.imports.push(...operation.imports); + service.imports = service.imports.map(x => camelCaseName(x, { pascalCase: true })); services.set(operation.service, service); }); break; diff --git a/src/openApi/v3/parser/getType.ts b/src/openApi/v3/parser/getType.ts index e8ef4733d..cb420997c 100644 --- a/src/openApi/v3/parser/getType.ts +++ b/src/openApi/v3/parser/getType.ts @@ -1,5 +1,6 @@ import type { Type } from '../../../client/interfaces/Type'; import { isDefined } from '../../../utils/isDefined'; +import { camelCaseName } from './camelCaseName'; import { getMappedType } from './getMappedType'; import { stripNamespace } from './stripNamespace'; @@ -78,5 +79,7 @@ export const getType = (type: string | string[] = 'any', format?: string): Type return result; } + result.imports = result.imports.map(x => camelCaseName(x, { pascalCase: true })); + return result; }; diff --git a/test/__snapshots__/index.spec.ts.snap b/test/__snapshots__/index.spec.ts.snap index eefa4ffe0..e452d066d 100644 --- a/test/__snapshots__/index.spec.ts.snap +++ b/test/__snapshots__/index.spec.ts.snap @@ -549,7 +549,7 @@ export { CancelablePromise, CancelError } from './core/CancelablePromise'; export { OpenAPI } from './core/OpenAPI'; export type { OpenAPIConfig } from './core/OpenAPI'; -export type { _default as _defaultDto } from './models/_default'; +export type { _Default as _DefaultDto } from './models/_Default'; export type { ArrayWithArray as ArrayWithArrayDto } from './models/ArrayWithArray'; export type { ArrayWithBooleans as ArrayWithBooleansDto } from './models/ArrayWithBooleans'; export type { ArrayWithNumbers as ArrayWithNumbersDto } from './models/ArrayWithNumbers'; @@ -598,7 +598,7 @@ export type { SimpleReference as SimpleReferenceDto } from './models/SimpleRefer export type { SimpleString as SimpleStringDto } from './models/SimpleString'; export type { SimpleStringWithPattern as SimpleStringWithPatternDto } from './models/SimpleStringWithPattern'; -export { $_default } from './schemas/$_default'; +export { $_Default } from './schemas/$_Default'; export { $ArrayWithArray } from './schemas/$ArrayWithArray'; export { $ArrayWithBooleans } from './schemas/$ArrayWithBooleans'; export { $ArrayWithNumbers } from './schemas/$ArrayWithNumbers'; @@ -666,12 +666,12 @@ export { TypesService } from './services/TypesService'; " `; -exports[`v2 should generate: ./test/generated/v2/models/_default.ts 1`] = ` +exports[`v2 should generate: ./test/generated/v2/models/_Default.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ -export type _default = { +export type _Default = { name?: string; }; @@ -1336,7 +1336,7 @@ export type ModelWithProperties = { number?: number; boolean?: boolean; reference?: ModelWithString; - 'property with space'?: string; + propertyWithSpace?: string; default?: string; try?: string; readonly '@namespace.string'?: string; @@ -1455,11 +1455,11 @@ export type SimpleStringWithPattern = string; " `; -exports[`v2 should generate: ./test/generated/v2/schemas/$_default.ts 1`] = ` +exports[`v2 should generate: ./test/generated/v2/schemas/$_Default.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ -export const $_default = { +export const $_Default = { properties: { name: { type: 'string', @@ -2156,7 +2156,7 @@ export const $ModelWithProperties = { reference: { type: 'ModelWithString', }, - 'property with space': { + propertyWithSpace: { type: 'string', }, default: { @@ -3642,7 +3642,7 @@ export { CancelablePromise, CancelError } from './core/CancelablePromise'; export { OpenAPI } from './core/OpenAPI'; export type { OpenAPIConfig } from './core/OpenAPI'; -export type { _default as _defaultDto } from './models/_default'; +export type { _Default as _DefaultDto } from './models/_Default'; export type { ArrayWithArray as ArrayWithArrayDto } from './models/ArrayWithArray'; export type { ArrayWithBooleans as ArrayWithBooleansDto } from './models/ArrayWithBooleans'; export type { ArrayWithNumbers as ArrayWithNumbersDto } from './models/ArrayWithNumbers'; @@ -3711,7 +3711,7 @@ export type { SimpleReference as SimpleReferenceDto } from './models/SimpleRefer export type { SimpleString as SimpleStringDto } from './models/SimpleString'; export type { SimpleStringWithPattern as SimpleStringWithPatternDto } from './models/SimpleStringWithPattern'; -export { $_default } from './schemas/$_default'; +export { $_Default } from './schemas/$_Default'; export { $ArrayWithArray } from './schemas/$ArrayWithArray'; export { $ArrayWithBooleans } from './schemas/$ArrayWithBooleans'; export { $ArrayWithNumbers } from './schemas/$ArrayWithNumbers'; @@ -3804,12 +3804,12 @@ export { UploadService } from './services/UploadService'; " `; -exports[`v3 should generate: ./test/generated/v3/models/_default.ts 1`] = ` +exports[`v3 should generate: ./test/generated/v3/models/_Default.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ -export type _default = { +export type _Default = { name?: string; }; @@ -4380,8 +4380,8 @@ exports[`v3 should generate: ./test/generated/v3/models/File.ts 1`] = ` export type File = { readonly id?: string; - readonly updated_at?: string; - readonly created_at?: string; + readonly updatedAt?: string; + readonly createdAt?: string; mime: string; readonly file?: string; }; @@ -4808,7 +4808,7 @@ export type ModelWithProperties = { number?: number; boolean?: boolean; reference?: ModelWithString; - 'property with space'?: string; + propertyWithSpace?: string; default?: string; try?: string; readonly '@namespace.string'?: string; @@ -4941,11 +4941,11 @@ export type SimpleStringWithPattern = string | null; " `; -exports[`v3 should generate: ./test/generated/v3/schemas/$_default.ts 1`] = ` +exports[`v3 should generate: ./test/generated/v3/schemas/$_Default.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ -export const $_default = { +export const $_Default = { properties: { name: { type: 'string', @@ -5594,12 +5594,12 @@ export const $File = { isReadOnly: true, minLength: 1, }, - updated_at: { + updatedAt: { type: 'string', isReadOnly: true, format: 'date-time', }, - created_at: { + createdAt: { type: 'string', isReadOnly: true, format: 'date-time', @@ -6119,7 +6119,7 @@ export const $ModelWithProperties = { reference: { type: 'ModelWithString', }, - 'property with space': { + propertyWithSpace: { type: 'string', }, default: {