diff --git a/src/templates/typescript/core/Schema.ts b/src/templates/typescript/core/Schema.ts index 06eaf035..83cb1d8f 100644 --- a/src/templates/typescript/core/Schema.ts +++ b/src/templates/typescript/core/Schema.ts @@ -3,7 +3,9 @@ /* eslint-disable */ /* prettier-ignore */ -export type FieldSchema = { +import { Dictionary } from "../models/Dictionary"; + +type FieldSchema = { readonly type?: string; readonly isReadOnly?: boolean; readonly isRequired?: boolean; @@ -24,8 +26,22 @@ export type FieldSchema = { readonly minProperties?: number; } -export type Schema = FieldSchema & { - readonly item?: string | Schema | FieldSchema; -} & { - readonly [K in keyof T]: Schema | FieldSchema; +type ArraySchema = FieldSchema & { + readonly item: Schema; } + +type ObjectSchema = FieldSchema & { + readonly [K in keyof T]: Schema; +} + +export type Schema = + T extends string ? FieldSchema : + T extends number ? FieldSchema : + T extends boolean ? FieldSchema : + T extends File ? FieldSchema : + T extends Blob ? FieldSchema : + T extends Array ? ArraySchema : + // T extends Dictionary ? ArraySchema : + // Check if infer type! + T extends Object ? ObjectSchema : + FieldSchema diff --git a/src/templates/typescript/index.hbs b/src/templates/typescript/index.hbs index 23144713..523647d5 100644 --- a/src/templates/typescript/index.hbs +++ b/src/templates/typescript/index.hbs @@ -27,13 +27,13 @@ export { {{{this}}} } from './services/{{{this}}}'; {{/if}} {{#if models}} -const schemas = { +const schemas: Schema = { {{#each models}} '{{{this}}}': {{{this}}}.schema, {{/each}} }; -export function getSchema(schema: string): Schema | FieldSchema | null { +export function getSchema(schema: string): Schema | null { if (schemas.hasOwnProperty(schema)) { return schemas[schema]; } diff --git a/src/templates/typescript/partials/schemaArray.hbs b/src/templates/typescript/partials/schemaArray.hbs index f8127b9c..b4a32661 100644 --- a/src/templates/typescript/partials/schemaArray.hbs +++ b/src/templates/typescript/partials/schemaArray.hbs @@ -3,7 +3,9 @@ {{#if link~}} item: {{>schema link}}, {{else}} - item: '{{{base}}}', + item: { + type: '{{{base}}}', + } {{/if}} {{#if isReadOnly~}} isReadOnly: {{{isReadOnly}}}, diff --git a/src/templates/typescript/partials/schemaDictionary.hbs b/src/templates/typescript/partials/schemaDictionary.hbs index 9735207f..c560aa03 100644 --- a/src/templates/typescript/partials/schemaDictionary.hbs +++ b/src/templates/typescript/partials/schemaDictionary.hbs @@ -3,7 +3,9 @@ {{#if link~}} item: {{>schema link}}, {{else}} - item: '{{{base}}}', + item: { + type: '{{{base}}}', + } {{/if}} {{#if isReadOnly~}} isReadOnly: {{{isReadOnly}}}, diff --git a/src/templates/typescript/partials/schemaEnum.hbs b/src/templates/typescript/partials/schemaEnum.hbs index b10ddfc2..9a4e7ac3 100644 --- a/src/templates/typescript/partials/schemaEnum.hbs +++ b/src/templates/typescript/partials/schemaEnum.hbs @@ -1,10 +1,5 @@ { type: 'Enum', - enums: [ - {{#each enum}} - {{{value}}}, - {{/each}} - ], {{#if isReadOnly~}} isReadOnly: {{{isReadOnly}}}, {{/if}} diff --git a/test/__snapshots__/index.spec.js.snap b/test/__snapshots__/index.spec.js.snap index 39083e67..8a5aa422 100644 --- a/test/__snapshots__/index.spec.js.snap +++ b/test/__snapshots__/index.spec.js.snap @@ -360,43 +360,81 @@ export { ApiError } from './core/ApiError'; export { isSuccess } from './core/isSuccess'; export { OpenAPI } from './core/OpenAPI'; -export { ArrayWithArray } from './models/ArrayWithArray'; -export { ArrayWithBooleans } from './models/ArrayWithBooleans'; -export { ArrayWithNumbers } from './models/ArrayWithNumbers'; -export { ArrayWithProperties } from './models/ArrayWithProperties'; -export { ArrayWithReferences } from './models/ArrayWithReferences'; -export { ArrayWithStrings } from './models/ArrayWithStrings'; -export { DictionaryWithArray } from './models/DictionaryWithArray'; -export { DictionaryWithDictionary } from './models/DictionaryWithDictionary'; -export { DictionaryWithProperties } from './models/DictionaryWithProperties'; -export { DictionaryWithReference } from './models/DictionaryWithReference'; -export { DictionaryWithString } from './models/DictionaryWithString'; -export { EnumFromDescription } from './models/EnumFromDescription'; -export { EnumWithNumbers } from './models/EnumWithNumbers'; -export { EnumWithStrings } from './models/EnumWithStrings'; -export { ModelLink } from './models/ModelLink'; -export { ModelThatExtends } from './models/ModelThatExtends'; -export { ModelThatExtendsExtends } from './models/ModelThatExtendsExtends'; -export { ModelWithArray } from './models/ModelWithArray'; -export { ModelWithBoolean } from './models/ModelWithBoolean'; -export { ModelWithCircularReference } from './models/ModelWithCircularReference'; -export { ModelWithDictionary } from './models/ModelWithDictionary'; -export { ModelWithDuplicateImports } from './models/ModelWithDuplicateImports'; -export { ModelWithDuplicateProperties } from './models/ModelWithDuplicateProperties'; -export { ModelWithEnum } from './models/ModelWithEnum'; -export { ModelWithEnumFromDescription } from './models/ModelWithEnumFromDescription'; -export { ModelWithInteger } from './models/ModelWithInteger'; -export { ModelWithLink } from './models/ModelWithLink'; -export { ModelWithNestedEnums } from './models/ModelWithNestedEnums'; -export { ModelWithNestedProperties } from './models/ModelWithNestedProperties'; -export { ModelWithProperties } from './models/ModelWithProperties'; -export { ModelWithReference } from './models/ModelWithReference'; -export { ModelWithString } from './models/ModelWithString'; -export { SimpleBoolean } from './models/SimpleBoolean'; -export { SimpleFile } from './models/SimpleFile'; -export { SimpleInteger } from './models/SimpleInteger'; -export { SimpleReference } from './models/SimpleReference'; -export { SimpleString } from './models/SimpleString'; +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 { 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 { 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'; @@ -404,6 +442,53 @@ export { ParametersService } from './services/ParametersService'; export { ResponseService } from './services/ResponseService'; export { SimpleService } from './services/SimpleService'; export { TypesService } from './services/TypesService'; + +const schemas = { + 'ArrayWithArray': ArrayWithArray.schema, + 'ArrayWithBooleans': ArrayWithBooleans.schema, + 'ArrayWithNumbers': ArrayWithNumbers.schema, + 'ArrayWithProperties': ArrayWithProperties.schema, + 'ArrayWithReferences': ArrayWithReferences.schema, + 'ArrayWithStrings': ArrayWithStrings.schema, + 'DictionaryWithArray': DictionaryWithArray.schema, + 'DictionaryWithDictionary': DictionaryWithDictionary.schema, + 'DictionaryWithProperties': DictionaryWithProperties.schema, + 'DictionaryWithReference': DictionaryWithReference.schema, + 'DictionaryWithString': DictionaryWithString.schema, + 'EnumFromDescription': EnumFromDescription.schema, + 'EnumWithNumbers': EnumWithNumbers.schema, + 'EnumWithStrings': EnumWithStrings.schema, + 'ModelLink': ModelLink.schema, + 'ModelThatExtends': ModelThatExtends.schema, + 'ModelThatExtendsExtends': ModelThatExtendsExtends.schema, + 'ModelWithArray': ModelWithArray.schema, + 'ModelWithBoolean': ModelWithBoolean.schema, + 'ModelWithCircularReference': ModelWithCircularReference.schema, + 'ModelWithDictionary': ModelWithDictionary.schema, + 'ModelWithDuplicateImports': ModelWithDuplicateImports.schema, + 'ModelWithDuplicateProperties': ModelWithDuplicateProperties.schema, + 'ModelWithEnum': ModelWithEnum.schema, + 'ModelWithEnumFromDescription': ModelWithEnumFromDescription.schema, + 'ModelWithInteger': ModelWithInteger.schema, + 'ModelWithLink': ModelWithLink.schema, + 'ModelWithNestedEnums': ModelWithNestedEnums.schema, + 'ModelWithNestedProperties': ModelWithNestedProperties.schema, + 'ModelWithProperties': ModelWithProperties.schema, + 'ModelWithReference': ModelWithReference.schema, + 'ModelWithString': ModelWithString.schema, + 'SimpleBoolean': SimpleBoolean.schema, + 'SimpleFile': SimpleFile.schema, + 'SimpleInteger': SimpleInteger.schema, + 'SimpleReference': SimpleReference.schema, + 'SimpleString': SimpleString.schema, +}; + +export function getSchema(schema) { + if (schemas.hasOwnProperty(schema)) { + return schemas[schema]; + } + return null; +} " `; @@ -412,8 +497,6 @@ exports[`generation v2 javascript file(./test/result/v2/javascript/models/ArrayW /* eslint-disable */ /* prettier-ignore */ -import { ModelWithString } from '../models/ModelWithString'; - /** * This is a simple array containing an array */ @@ -436,7 +519,6 @@ exports[`generation v2 javascript file(./test/result/v2/javascript/models/ArrayW /* eslint-disable */ /* prettier-ignore */ - /** * This is a simple array with booleans */ @@ -458,7 +540,6 @@ exports[`generation v2 javascript file(./test/result/v2/javascript/models/ArrayW /* eslint-disable */ /* prettier-ignore */ - /** * This is a simple array with numbers */ @@ -480,7 +561,6 @@ exports[`generation v2 javascript file(./test/result/v2/javascript/models/ArrayW /* eslint-disable */ /* prettier-ignore */ - /** * This is a simple array with properties */ @@ -507,8 +587,6 @@ exports[`generation v2 javascript file(./test/result/v2/javascript/models/ArrayW /* eslint-disable */ /* prettier-ignore */ -import { ModelWithString } from '../models/ModelWithString'; - /** * This is a simple array with references */ @@ -528,7 +606,6 @@ exports[`generation v2 javascript file(./test/result/v2/javascript/models/ArrayW /* eslint-disable */ /* prettier-ignore */ - /** * This is a simple array with strings */ @@ -545,13 +622,26 @@ export let ArrayWithStrings; })(ArrayWithStrings || (ArrayWithStrings = {}));" `; -exports[`generation v2 javascript file(./test/result/v2/javascript/models/DictionaryWithArray.js): ./test/result/v2/javascript/models/DictionaryWithArray.js 1`] = ` +exports[`generation v2 javascript file(./test/result/v2/javascript/models/Dictionary.js): ./test/result/v2/javascript/models/Dictionary.js 1`] = ` "/* istanbul ignore file */ /* eslint-disable */ /* prettier-ignore */ -import { Dictionary } from '../models/Dictionary'; -import { ModelWithString } from '../models/ModelWithString'; +export let Dictionary; +(function (Dictionary) { + + Dictionary.schema = { + type: 'Dictionary' + }; + +})(Dictionary || (Dictionary = {})); +" +`; + +exports[`generation v2 javascript file(./test/result/v2/javascript/models/DictionaryWithArray.js): ./test/result/v2/javascript/models/DictionaryWithArray.js 1`] = ` +"/* istanbul ignore file */ +/* eslint-disable */ +/* prettier-ignore */ /** * This is a complex dictionary @@ -575,8 +665,6 @@ exports[`generation v2 javascript file(./test/result/v2/javascript/models/Dictio /* eslint-disable */ /* prettier-ignore */ -import { Dictionary } from '../models/Dictionary'; - /** * This is a string dictionary */ @@ -601,8 +689,6 @@ exports[`generation v2 javascript file(./test/result/v2/javascript/models/Dictio /* eslint-disable */ /* prettier-ignore */ -import { Dictionary } from '../models/Dictionary'; - /** * This is a complex dictionary */ @@ -629,9 +715,6 @@ exports[`generation v2 javascript file(./test/result/v2/javascript/models/Dictio /* eslint-disable */ /* prettier-ignore */ -import { Dictionary } from '../models/Dictionary'; -import { ModelWithString } from '../models/ModelWithString'; - /** * This is a string reference */ @@ -651,8 +734,6 @@ exports[`generation v2 javascript file(./test/result/v2/javascript/models/Dictio /* eslint-disable */ /* prettier-ignore */ -import { Dictionary } from '../models/Dictionary'; - /** * This is a string dictionary */ @@ -674,7 +755,6 @@ exports[`generation v2 javascript file(./test/result/v2/javascript/models/EnumFr /* eslint-disable */ /* prettier-ignore */ - /** * Success=1,Warning=2,Error=3 */ @@ -702,7 +782,6 @@ exports[`generation v2 javascript file(./test/result/v2/javascript/models/EnumWi /* eslint-disable */ /* prettier-ignore */ - /** * This is a simple enum with numbers */ @@ -730,7 +809,6 @@ exports[`generation v2 javascript file(./test/result/v2/javascript/models/EnumWi /* eslint-disable */ /* prettier-ignore */ - /** * This is a simple enum with strings */ @@ -758,7 +836,6 @@ exports[`generation v2 javascript file(./test/result/v2/javascript/models/ModelL /* eslint-disable */ /* prettier-ignore */ - /** * This is a model that can have a template?? */ @@ -779,8 +856,6 @@ exports[`generation v2 javascript file(./test/result/v2/javascript/models/ModelT /* eslint-disable */ /* prettier-ignore */ -import { ModelWithString } from '../models/ModelWithString'; - /** * This is a model that extends another model */ @@ -804,9 +879,6 @@ exports[`generation v2 javascript file(./test/result/v2/javascript/models/ModelT /* eslint-disable */ /* prettier-ignore */ -import { ModelThatExtends } from '../models/ModelThatExtends'; -import { ModelWithString } from '../models/ModelWithString'; - /** * This is a model that extends another model */ @@ -830,8 +902,6 @@ exports[`generation v2 javascript file(./test/result/v2/javascript/models/ModelW /* eslint-disable */ /* prettier-ignore */ -import { ModelWithString } from '../models/ModelWithString'; - /** * This is a model with one property containing an array */ @@ -865,7 +935,6 @@ exports[`generation v2 javascript file(./test/result/v2/javascript/models/ModelW /* eslint-disable */ /* prettier-ignore */ - /** * This is a model with one boolean property */ @@ -886,7 +955,6 @@ exports[`generation v2 javascript file(./test/result/v2/javascript/models/ModelW /* eslint-disable */ /* prettier-ignore */ - /** * This is a model with one property containing a circular reference */ @@ -907,8 +975,6 @@ exports[`generation v2 javascript file(./test/result/v2/javascript/models/ModelW /* eslint-disable */ /* prettier-ignore */ -import { Dictionary } from '../models/Dictionary'; - /** * This is a model with one property containing a dictionary */ @@ -932,8 +998,6 @@ exports[`generation v2 javascript file(./test/result/v2/javascript/models/ModelW /* eslint-disable */ /* prettier-ignore */ -import { ModelWithString } from '../models/ModelWithString'; - /** * This is a model with duplicated imports */ @@ -960,8 +1024,6 @@ exports[`generation v2 javascript file(./test/result/v2/javascript/models/ModelW /* eslint-disable */ /* prettier-ignore */ -import { ModelWithString } from '../models/ModelWithString'; - /** * This is a model with duplicated properties */ @@ -982,7 +1044,6 @@ exports[`generation v2 javascript file(./test/result/v2/javascript/models/ModelW /* eslint-disable */ /* prettier-ignore */ - /** * This is a model with one enum */ @@ -1017,7 +1078,6 @@ exports[`generation v2 javascript file(./test/result/v2/javascript/models/ModelW /* eslint-disable */ /* prettier-ignore */ - /** * This is a model with one enum */ @@ -1052,7 +1112,6 @@ exports[`generation v2 javascript file(./test/result/v2/javascript/models/ModelW /* eslint-disable */ /* prettier-ignore */ - /** * This is a model with one number property */ @@ -1073,9 +1132,6 @@ exports[`generation v2 javascript file(./test/result/v2/javascript/models/ModelW /* eslint-disable */ /* prettier-ignore */ -import { ModelLink } from '../models/ModelLink'; -import { ModelWithString } from '../models/ModelWithString'; - /** * This is a model that can have a template?? */ @@ -1096,8 +1152,6 @@ exports[`generation v2 javascript file(./test/result/v2/javascript/models/ModelW /* eslint-disable */ /* prettier-ignore */ -import { Dictionary } from '../models/Dictionary'; - /** * This is a model with nested enums */ @@ -1159,7 +1213,6 @@ exports[`generation v2 javascript file(./test/result/v2/javascript/models/ModelW /* eslint-disable */ /* prettier-ignore */ - /** * This is a model with one nested property */ @@ -1190,8 +1243,6 @@ exports[`generation v2 javascript file(./test/result/v2/javascript/models/ModelW /* eslint-disable */ /* prettier-ignore */ -import { ModelWithString } from '../models/ModelWithString'; - /** * This is a model with one nested property */ @@ -1230,8 +1281,6 @@ exports[`generation v2 javascript file(./test/result/v2/javascript/models/ModelW /* eslint-disable */ /* prettier-ignore */ -import { ModelWithString } from '../models/ModelWithString'; - /** * This is a model with one property containing a reference */ @@ -1252,7 +1301,6 @@ exports[`generation v2 javascript file(./test/result/v2/javascript/models/ModelW /* eslint-disable */ /* prettier-ignore */ - /** * This is a model with one string property */ @@ -1273,7 +1321,6 @@ exports[`generation v2 javascript file(./test/result/v2/javascript/models/Simple /* eslint-disable */ /* prettier-ignore */ - /** * This is a simple boolean */ @@ -1292,7 +1339,6 @@ exports[`generation v2 javascript file(./test/result/v2/javascript/models/Simple /* eslint-disable */ /* prettier-ignore */ - /** * This is a simple file */ @@ -1311,7 +1357,6 @@ exports[`generation v2 javascript file(./test/result/v2/javascript/models/Simple /* eslint-disable */ /* prettier-ignore */ - /** * This is a simple number */ @@ -1330,8 +1375,6 @@ exports[`generation v2 javascript file(./test/result/v2/javascript/models/Simple /* eslint-disable */ /* prettier-ignore */ -import { ModelWithString } from '../models/ModelWithString'; - /** * This is a simple reference */ @@ -1350,7 +1393,6 @@ exports[`generation v2 javascript file(./test/result/v2/javascript/models/Simple /* eslint-disable */ /* prettier-ignore */ - /** * This is a simple string */ @@ -1874,6 +1916,41 @@ export interface Result { " `; +exports[`generation v2 typescript file(./test/result/v2/typescript/core/Schema.ts): ./test/result/v2/typescript/core/Schema.ts 1`] = ` +"/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +/* prettier-ignore */ + +export type FieldSchema = { + readonly type?: string; + readonly isReadOnly?: boolean; + readonly isRequired?: boolean; + readonly isNullable?: boolean; + readonly format?: 'int32' | 'int64' | 'float' | 'double' | 'string' | 'boolean' | 'byte' | 'binary' | 'date' | 'date-time' | 'password'; + readonly maximum?: number; + readonly exclusiveMaximum?: boolean; + readonly minimum?: number; + readonly exclusiveMinimum?: boolean; + readonly multipleOf?: number; + readonly maxLength?: number; + readonly minLength?: number; + readonly pattern?: string; + readonly maxItems?: number; + readonly minItems?: number; + readonly uniqueItems?: boolean; + readonly maxProperties?: number; + readonly minProperties?: number; +} + +export type Schema = FieldSchema & { + readonly item?: string | Schema | FieldSchema; +} & { + readonly [K in keyof T]: Schema | FieldSchema; +} +" +`; + exports[`generation v2 typescript file(./test/result/v2/typescript/core/getFormData.ts): ./test/result/v2/typescript/core/getFormData.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ @@ -2175,45 +2252,85 @@ exports[`generation v2 typescript file(./test/result/v2/typescript/index.ts): ./ export { ApiError } from './core/ApiError'; export { isSuccess } from './core/isSuccess'; export { OpenAPI } from './core/OpenAPI'; +import { FieldSchema, Schema } from './core/Schema'; -export { ArrayWithArray } from './models/ArrayWithArray'; -export { ArrayWithBooleans } from './models/ArrayWithBooleans'; -export { ArrayWithNumbers } from './models/ArrayWithNumbers'; -export { ArrayWithProperties } from './models/ArrayWithProperties'; -export { ArrayWithReferences } from './models/ArrayWithReferences'; -export { ArrayWithStrings } from './models/ArrayWithStrings'; -export { Dictionary } from './models/Dictionary'; -export { DictionaryWithArray } from './models/DictionaryWithArray'; -export { DictionaryWithDictionary } from './models/DictionaryWithDictionary'; -export { DictionaryWithProperties } from './models/DictionaryWithProperties'; -export { DictionaryWithReference } from './models/DictionaryWithReference'; -export { DictionaryWithString } from './models/DictionaryWithString'; -export { EnumFromDescription } from './models/EnumFromDescription'; -export { EnumWithNumbers } from './models/EnumWithNumbers'; -export { EnumWithStrings } from './models/EnumWithStrings'; -export { ModelLink } from './models/ModelLink'; -export { ModelThatExtends } from './models/ModelThatExtends'; -export { ModelThatExtendsExtends } from './models/ModelThatExtendsExtends'; -export { ModelWithArray } from './models/ModelWithArray'; -export { ModelWithBoolean } from './models/ModelWithBoolean'; -export { ModelWithCircularReference } from './models/ModelWithCircularReference'; -export { ModelWithDictionary } from './models/ModelWithDictionary'; -export { ModelWithDuplicateImports } from './models/ModelWithDuplicateImports'; -export { ModelWithDuplicateProperties } from './models/ModelWithDuplicateProperties'; -export { ModelWithEnum } from './models/ModelWithEnum'; -export { ModelWithEnumFromDescription } from './models/ModelWithEnumFromDescription'; -export { ModelWithInteger } from './models/ModelWithInteger'; -export { ModelWithLink } from './models/ModelWithLink'; -export { ModelWithNestedEnums } from './models/ModelWithNestedEnums'; -export { ModelWithNestedProperties } from './models/ModelWithNestedProperties'; -export { ModelWithProperties } from './models/ModelWithProperties'; -export { ModelWithReference } from './models/ModelWithReference'; -export { ModelWithString } from './models/ModelWithString'; -export { SimpleBoolean } from './models/SimpleBoolean'; -export { SimpleFile } from './models/SimpleFile'; -export { SimpleInteger } from './models/SimpleInteger'; -export { SimpleReference } from './models/SimpleReference'; -export { SimpleString } from './models/SimpleString'; +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'; @@ -2221,6 +2338,55 @@ export { ParametersService } from './services/ParametersService'; export { ResponseService } from './services/ResponseService'; export { SimpleService } from './services/SimpleService'; export { TypesService } from './services/TypesService'; + +const schemas = { + 'ArrayWithArray': ArrayWithArray.schema, + 'ArrayWithBooleans': ArrayWithBooleans.schema, + 'ArrayWithNumbers': ArrayWithNumbers.schema, + 'ArrayWithProperties': ArrayWithProperties.schema, + 'ArrayWithReferences': ArrayWithReferences.schema, + 'ArrayWithStrings': ArrayWithStrings.schema, + 'Dictionary': Dictionary.schema, + 'DictionaryWithArray': DictionaryWithArray.schema, + 'DictionaryWithDictionary': DictionaryWithDictionary.schema, + 'DictionaryWithProperties': DictionaryWithProperties.schema, + 'DictionaryWithReference': DictionaryWithReference.schema, + 'DictionaryWithString': DictionaryWithString.schema, + 'EnumFromDescription': EnumFromDescription.schema, + 'EnumWithNumbers': EnumWithNumbers.schema, + 'EnumWithStrings': EnumWithStrings.schema, + 'ModelLink': ModelLink.schema, + 'ModelThatExtends': ModelThatExtends.schema, + 'ModelThatExtendsExtends': ModelThatExtendsExtends.schema, + 'ModelWithArray': ModelWithArray.schema, + 'ModelWithBoolean': ModelWithBoolean.schema, + 'ModelWithCircularReference': ModelWithCircularReference.schema, + 'ModelWithDictionary': ModelWithDictionary.schema, + 'ModelWithDuplicateImports': ModelWithDuplicateImports.schema, + 'ModelWithDuplicateProperties': ModelWithDuplicateProperties.schema, + 'ModelWithEnum': ModelWithEnum.schema, + 'ModelWithEnumFromDescription': ModelWithEnumFromDescription.schema, + 'ModelWithInteger': ModelWithInteger.schema, + 'ModelWithLink': ModelWithLink.schema, + 'ModelWithNestedEnums': ModelWithNestedEnums.schema, + 'ModelWithNestedProperties': ModelWithNestedProperties.schema, + 'ModelWithProperties': ModelWithProperties.schema, + 'ModelWithReference': ModelWithReference.schema, + 'ModelWithString': ModelWithString.schema, + 'SimpleBoolean': SimpleBoolean.schema, + 'SimpleFile': SimpleFile.schema, + 'SimpleInteger': SimpleInteger.schema, + 'SimpleReference': SimpleReference.schema, + 'SimpleString': SimpleString.schema, +}; + +export function getSchema(schema: string): Schema | FieldSchema | null { + if (schemas.hasOwnProperty(schema)) { + return schemas[schema]; + } + return null; +} + " `; @@ -2230,6 +2396,7 @@ exports[`generation v2 typescript file(./test/result/v2/typescript/models/ArrayW /* eslint-disable */ /* prettier-ignore */ +import { Schema } from '../core/Schema'; import { ModelWithString } from '../models/ModelWithString'; /** @@ -2239,7 +2406,7 @@ export type ArrayWithArray = Array>; export namespace ArrayWithArray { - export const schema = { + export const schema: Schema = { type: 'Array', item: { type: 'Array', @@ -2256,6 +2423,8 @@ exports[`generation v2 typescript file(./test/result/v2/typescript/models/ArrayW /* eslint-disable */ /* prettier-ignore */ +import { Schema } from '../core/Schema'; + /** * This is a simple array with booleans */ @@ -2263,7 +2432,7 @@ export type ArrayWithBooleans = Array; export namespace ArrayWithBooleans { - export const schema = { + export const schema: Schema = { type: 'Array', item: { type: 'boolean', @@ -2279,6 +2448,8 @@ exports[`generation v2 typescript file(./test/result/v2/typescript/models/ArrayW /* eslint-disable */ /* prettier-ignore */ +import { Schema } from '../core/Schema'; + /** * This is a simple array with numbers */ @@ -2286,7 +2457,7 @@ export type ArrayWithNumbers = Array; export namespace ArrayWithNumbers { - export const schema = { + export const schema: Schema = { type: 'Array', item: { type: 'number', @@ -2302,6 +2473,8 @@ exports[`generation v2 typescript file(./test/result/v2/typescript/models/ArrayW /* eslint-disable */ /* prettier-ignore */ +import { Schema } from '../core/Schema'; + /** * This is a simple array with properties */ @@ -2312,7 +2485,7 @@ export type ArrayWithProperties = Array<{ export namespace ArrayWithProperties { - export const schema = { + export const schema: Schema = { type: 'Array', item: { foo: { @@ -2333,6 +2506,7 @@ exports[`generation v2 typescript file(./test/result/v2/typescript/models/ArrayW /* eslint-disable */ /* prettier-ignore */ +import { Schema } from '../core/Schema'; import { ModelWithString } from '../models/ModelWithString'; /** @@ -2342,7 +2516,7 @@ export type ArrayWithReferences = Array; export namespace ArrayWithReferences { - export const schema = { + export const schema: Schema = { type: 'Array', item: 'ModelWithString', }; @@ -2356,6 +2530,8 @@ exports[`generation v2 typescript file(./test/result/v2/typescript/models/ArrayW /* eslint-disable */ /* prettier-ignore */ +import { Schema } from '../core/Schema'; + /** * This is a simple array with strings */ @@ -2363,7 +2539,7 @@ export type ArrayWithStrings = Array; export namespace ArrayWithStrings { - export const schema = { + export const schema: Schema = { type: 'Array', item: { type: 'string', @@ -2379,9 +2555,19 @@ exports[`generation v2 typescript file(./test/result/v2/typescript/models/Dictio /* eslint-disable */ /* prettier-ignore */ +import { Schema } from '../core/Schema'; + export interface Dictionary { [key: string]: T; } + +export namespace Dictionary { + + export const schema: Schema = { + type: 'Dictionary' + }; + +} " `; @@ -2391,6 +2577,7 @@ exports[`generation v2 typescript file(./test/result/v2/typescript/models/Dictio /* eslint-disable */ /* prettier-ignore */ +import { Schema } from '../core/Schema'; import { Dictionary } from '../models/Dictionary'; import { ModelWithString } from '../models/ModelWithString'; @@ -2401,7 +2588,7 @@ export type DictionaryWithArray = Dictionary>; export namespace DictionaryWithArray { - export const schema = { + export const schema: Schema = { type: 'Dictionary', item: { type: 'Array', @@ -2418,6 +2605,7 @@ exports[`generation v2 typescript file(./test/result/v2/typescript/models/Dictio /* eslint-disable */ /* prettier-ignore */ +import { Schema } from '../core/Schema'; import { Dictionary } from '../models/Dictionary'; /** @@ -2427,7 +2615,7 @@ export type DictionaryWithDictionary = Dictionary>; export namespace DictionaryWithDictionary { - export const schema = { + export const schema: Schema = { type: 'Dictionary', item: { type: 'Dictionary', @@ -2446,6 +2634,7 @@ exports[`generation v2 typescript file(./test/result/v2/typescript/models/Dictio /* eslint-disable */ /* prettier-ignore */ +import { Schema } from '../core/Schema'; import { Dictionary } from '../models/Dictionary'; /** @@ -2458,7 +2647,7 @@ export type DictionaryWithProperties = Dictionary<{ export namespace DictionaryWithProperties { - export const schema = { + export const schema: Schema = { type: 'Dictionary', item: { foo: { @@ -2479,6 +2668,7 @@ exports[`generation v2 typescript file(./test/result/v2/typescript/models/Dictio /* eslint-disable */ /* prettier-ignore */ +import { Schema } from '../core/Schema'; import { Dictionary } from '../models/Dictionary'; import { ModelWithString } from '../models/ModelWithString'; @@ -2489,7 +2679,7 @@ export type DictionaryWithReference = Dictionary; export namespace DictionaryWithReference { - export const schema = { + export const schema: Schema = { type: 'Dictionary', item: 'ModelWithString', }; @@ -2503,6 +2693,7 @@ exports[`generation v2 typescript file(./test/result/v2/typescript/models/Dictio /* eslint-disable */ /* prettier-ignore */ +import { Schema } from '../core/Schema'; import { Dictionary } from '../models/Dictionary'; /** @@ -2512,7 +2703,7 @@ export type DictionaryWithString = Dictionary; export namespace DictionaryWithString { - export const schema = { + export const schema: Schema = { type: 'Dictionary', item: { type: 'string', @@ -2528,6 +2719,8 @@ exports[`generation v2 typescript file(./test/result/v2/typescript/models/EnumFr /* eslint-disable */ /* prettier-ignore */ +import { Schema } from '../core/Schema'; + /** * Success=1,Warning=2,Error=3 */ @@ -2539,7 +2732,7 @@ export enum EnumFromDescription { export namespace EnumFromDescription { - export const schema = { + export const schema: Schema = { type: 'Enum', enums: [ 3, @@ -2557,6 +2750,8 @@ exports[`generation v2 typescript file(./test/result/v2/typescript/models/EnumWi /* eslint-disable */ /* prettier-ignore */ +import { Schema } from '../core/Schema'; + /** * This is a simple enum with numbers */ @@ -2568,7 +2763,7 @@ export enum EnumWithNumbers { export namespace EnumWithNumbers { - export const schema = { + export const schema: Schema = { type: 'Enum', enums: [ 1, @@ -2586,6 +2781,8 @@ exports[`generation v2 typescript file(./test/result/v2/typescript/models/EnumWi /* eslint-disable */ /* prettier-ignore */ +import { Schema } from '../core/Schema'; + /** * This is a simple enum with strings */ @@ -2597,7 +2794,7 @@ export enum EnumWithStrings { export namespace EnumWithStrings { - export const schema = { + export const schema: Schema = { type: 'Enum', enums: [ 'Error', @@ -2615,6 +2812,8 @@ exports[`generation v2 typescript file(./test/result/v2/typescript/models/ModelL /* eslint-disable */ /* prettier-ignore */ +import { Schema } from '../core/Schema'; + /** * This is a model that can have a template?? */ @@ -2624,7 +2823,7 @@ export interface ModelLink { export namespace ModelLink { - export const schema = { + export const schema: Schema = { id: { type: 'string', }, @@ -2639,6 +2838,7 @@ exports[`generation v2 typescript file(./test/result/v2/typescript/models/ModelT /* eslint-disable */ /* prettier-ignore */ +import { Schema } from '../core/Schema'; import { ModelWithString } from '../models/ModelWithString'; /** @@ -2651,7 +2851,7 @@ export interface ModelThatExtends extends ModelWithString { export namespace ModelThatExtends { - export const schema = { + export const schema: Schema = { propExtendsA: { type: 'string', }, @@ -2669,6 +2869,7 @@ exports[`generation v2 typescript file(./test/result/v2/typescript/models/ModelT /* eslint-disable */ /* prettier-ignore */ +import { Schema } from '../core/Schema'; import { ModelThatExtends } from '../models/ModelThatExtends'; import { ModelWithString } from '../models/ModelWithString'; @@ -2682,7 +2883,7 @@ export interface ModelThatExtendsExtends extends ModelWithString, ModelThatExten export namespace ModelThatExtendsExtends { - export const schema = { + export const schema: Schema = { propExtendsC: { type: 'string', }, @@ -2700,6 +2901,7 @@ exports[`generation v2 typescript file(./test/result/v2/typescript/models/ModelW /* eslint-disable */ /* prettier-ignore */ +import { Schema } from '../core/Schema'; import { ModelWithString } from '../models/ModelWithString'; /** @@ -2713,7 +2915,7 @@ export interface ModelWithArray { export namespace ModelWithArray { - export const schema = { + export const schema: Schema = { prop: { type: 'Array', item: 'ModelWithString', @@ -2741,6 +2943,8 @@ exports[`generation v2 typescript file(./test/result/v2/typescript/models/ModelW /* eslint-disable */ /* prettier-ignore */ +import { Schema } from '../core/Schema'; + /** * This is a model with one boolean property */ @@ -2753,7 +2957,7 @@ export interface ModelWithBoolean { export namespace ModelWithBoolean { - export const schema = { + export const schema: Schema = { prop: { type: 'boolean', }, @@ -2768,6 +2972,8 @@ exports[`generation v2 typescript file(./test/result/v2/typescript/models/ModelW /* eslint-disable */ /* prettier-ignore */ +import { Schema } from '../core/Schema'; + /** * This is a model with one property containing a circular reference */ @@ -2777,7 +2983,7 @@ export interface ModelWithCircularReference { export namespace ModelWithCircularReference { - export const schema = { + export const schema: Schema = { prop: { type: 'ModelWithCircularReference', }, @@ -2792,6 +2998,7 @@ exports[`generation v2 typescript file(./test/result/v2/typescript/models/ModelW /* eslint-disable */ /* prettier-ignore */ +import { Schema } from '../core/Schema'; import { Dictionary } from '../models/Dictionary'; /** @@ -2803,7 +3010,7 @@ export interface ModelWithDictionary { export namespace ModelWithDictionary { - export const schema = { + export const schema: Schema = { prop: { type: 'Dictionary', item: { @@ -2821,6 +3028,7 @@ exports[`generation v2 typescript file(./test/result/v2/typescript/models/ModelW /* eslint-disable */ /* prettier-ignore */ +import { Schema } from '../core/Schema'; import { ModelWithString } from '../models/ModelWithString'; /** @@ -2834,7 +3042,7 @@ export interface ModelWithDuplicateImports { export namespace ModelWithDuplicateImports { - export const schema = { + export const schema: Schema = { propA: { type: 'ModelWithString', }, @@ -2855,6 +3063,7 @@ exports[`generation v2 typescript file(./test/result/v2/typescript/models/ModelW /* eslint-disable */ /* prettier-ignore */ +import { Schema } from '../core/Schema'; import { ModelWithString } from '../models/ModelWithString'; /** @@ -2866,7 +3075,7 @@ export interface ModelWithDuplicateProperties { export namespace ModelWithDuplicateProperties { - export const schema = { + export const schema: Schema = { prop: { type: 'ModelWithString', }, @@ -2881,6 +3090,8 @@ exports[`generation v2 typescript file(./test/result/v2/typescript/models/ModelW /* eslint-disable */ /* prettier-ignore */ +import { Schema } from '../core/Schema'; + /** * This is a model with one enum */ @@ -2902,7 +3113,7 @@ export namespace ModelWithEnum { ERROR = 'Error', } - export const schema = { + export const schema: Schema = { test: { type: 'Enum', enums: [ @@ -2922,6 +3133,8 @@ exports[`generation v2 typescript file(./test/result/v2/typescript/models/ModelW /* eslint-disable */ /* prettier-ignore */ +import { Schema } from '../core/Schema'; + /** * This is a model with one enum */ @@ -2943,7 +3156,7 @@ export namespace ModelWithEnumFromDescription { ERROR = 3, } - export const schema = { + export const schema: Schema = { test: { type: 'Enum', enums: [ @@ -2963,6 +3176,8 @@ exports[`generation v2 typescript file(./test/result/v2/typescript/models/ModelW /* eslint-disable */ /* prettier-ignore */ +import { Schema } from '../core/Schema'; + /** * This is a model with one number property */ @@ -2975,7 +3190,7 @@ export interface ModelWithInteger { export namespace ModelWithInteger { - export const schema = { + export const schema: Schema = { prop: { type: 'number', }, @@ -2990,6 +3205,7 @@ exports[`generation v2 typescript file(./test/result/v2/typescript/models/ModelW /* eslint-disable */ /* prettier-ignore */ +import { Schema } from '../core/Schema'; import { ModelLink } from '../models/ModelLink'; import { ModelWithString } from '../models/ModelWithString'; @@ -3002,7 +3218,7 @@ export interface ModelWithLink { export namespace ModelWithLink { - export const schema = { + export const schema: Schema = { prop: { type: 'ModelLink', }, @@ -3017,6 +3233,7 @@ exports[`generation v2 typescript file(./test/result/v2/typescript/models/ModelW /* eslint-disable */ /* prettier-ignore */ +import { Schema } from '../core/Schema'; import { Dictionary } from '../models/Dictionary'; /** @@ -3031,7 +3248,7 @@ export interface ModelWithNestedEnums { export namespace ModelWithNestedEnums { - export const schema = { + export const schema: Schema = { arrayWithDescription: { type: 'Array', item: { @@ -3087,6 +3304,8 @@ exports[`generation v2 typescript file(./test/result/v2/typescript/models/ModelW /* eslint-disable */ /* prettier-ignore */ +import { Schema } from '../core/Schema'; + /** * This is a model with one nested property */ @@ -3100,7 +3319,7 @@ export interface ModelWithNestedProperties { export namespace ModelWithNestedProperties { - export const schema = { + export const schema: Schema = { first: { second: { third: { @@ -3125,6 +3344,7 @@ exports[`generation v2 typescript file(./test/result/v2/typescript/models/ModelW /* eslint-disable */ /* prettier-ignore */ +import { Schema } from '../core/Schema'; import { ModelWithString } from '../models/ModelWithString'; /** @@ -3141,7 +3361,7 @@ export interface ModelWithProperties { export namespace ModelWithProperties { - export const schema = { + export const schema: Schema = { boolean: { type: 'boolean', }, @@ -3174,6 +3394,7 @@ exports[`generation v2 typescript file(./test/result/v2/typescript/models/ModelW /* eslint-disable */ /* prettier-ignore */ +import { Schema } from '../core/Schema'; import { ModelWithString } from '../models/ModelWithString'; /** @@ -3185,7 +3406,7 @@ export interface ModelWithReference { export namespace ModelWithReference { - export const schema = { + export const schema: Schema = { prop: { type: 'ModelWithString', }, @@ -3200,6 +3421,8 @@ exports[`generation v2 typescript file(./test/result/v2/typescript/models/ModelW /* eslint-disable */ /* prettier-ignore */ +import { Schema } from '../core/Schema'; + /** * This is a model with one string property */ @@ -3212,7 +3435,7 @@ export interface ModelWithString { export namespace ModelWithString { - export const schema = { + export const schema: Schema = { prop: { type: 'string', }, @@ -3227,6 +3450,8 @@ exports[`generation v2 typescript file(./test/result/v2/typescript/models/Simple /* eslint-disable */ /* prettier-ignore */ +import { Schema } from '../core/Schema'; + /** * This is a simple boolean */ @@ -3234,7 +3459,7 @@ export type SimpleBoolean = boolean; export namespace SimpleBoolean { - export const schema = { + export const schema: Schema = { type: 'boolean', }; @@ -3247,6 +3472,8 @@ exports[`generation v2 typescript file(./test/result/v2/typescript/models/Simple /* eslint-disable */ /* prettier-ignore */ +import { Schema } from '../core/Schema'; + /** * This is a simple file */ @@ -3254,7 +3481,7 @@ export type SimpleFile = File; export namespace SimpleFile { - export const schema = { + export const schema: Schema = { type: 'File', }; @@ -3267,6 +3494,8 @@ exports[`generation v2 typescript file(./test/result/v2/typescript/models/Simple /* eslint-disable */ /* prettier-ignore */ +import { Schema } from '../core/Schema'; + /** * This is a simple number */ @@ -3274,7 +3503,7 @@ export type SimpleInteger = number; export namespace SimpleInteger { - export const schema = { + export const schema: Schema = { type: 'number', }; @@ -3287,6 +3516,7 @@ exports[`generation v2 typescript file(./test/result/v2/typescript/models/Simple /* eslint-disable */ /* prettier-ignore */ +import { Schema } from '../core/Schema'; import { ModelWithString } from '../models/ModelWithString'; /** @@ -3296,7 +3526,7 @@ export type SimpleReference = ModelWithString; export namespace SimpleReference { - export const schema = { + export const schema: Schema = { type: 'ModelWithString', }; @@ -3309,6 +3539,8 @@ exports[`generation v2 typescript file(./test/result/v2/typescript/models/Simple /* eslint-disable */ /* prettier-ignore */ +import { Schema } from '../core/Schema'; + /** * This is a simple string */ @@ -3316,7 +3548,7 @@ export type SimpleString = string; export namespace SimpleString { - export const schema = { + export const schema: Schema = { type: 'string', }; @@ -4102,43 +4334,81 @@ export { ApiError } from './core/ApiError'; export { isSuccess } from './core/isSuccess'; export { OpenAPI } from './core/OpenAPI'; -export { ArrayWithArray } from './models/ArrayWithArray'; -export { ArrayWithBooleans } from './models/ArrayWithBooleans'; -export { ArrayWithNumbers } from './models/ArrayWithNumbers'; -export { ArrayWithProperties } from './models/ArrayWithProperties'; -export { ArrayWithReferences } from './models/ArrayWithReferences'; -export { ArrayWithStrings } from './models/ArrayWithStrings'; -export { DictionaryWithArray } from './models/DictionaryWithArray'; -export { DictionaryWithDictionary } from './models/DictionaryWithDictionary'; -export { DictionaryWithProperties } from './models/DictionaryWithProperties'; -export { DictionaryWithReference } from './models/DictionaryWithReference'; -export { DictionaryWithString } from './models/DictionaryWithString'; -export { EnumFromDescription } from './models/EnumFromDescription'; -export { EnumWithNumbers } from './models/EnumWithNumbers'; -export { EnumWithStrings } from './models/EnumWithStrings'; -export { ModelLink } from './models/ModelLink'; -export { ModelThatExtends } from './models/ModelThatExtends'; -export { ModelThatExtendsExtends } from './models/ModelThatExtendsExtends'; -export { ModelWithArray } from './models/ModelWithArray'; -export { ModelWithBoolean } from './models/ModelWithBoolean'; -export { ModelWithCircularReference } from './models/ModelWithCircularReference'; -export { ModelWithDictionary } from './models/ModelWithDictionary'; -export { ModelWithDuplicateImports } from './models/ModelWithDuplicateImports'; -export { ModelWithDuplicateProperties } from './models/ModelWithDuplicateProperties'; -export { ModelWithEnum } from './models/ModelWithEnum'; -export { ModelWithEnumFromDescription } from './models/ModelWithEnumFromDescription'; -export { ModelWithInteger } from './models/ModelWithInteger'; -export { ModelWithLink } from './models/ModelWithLink'; -export { ModelWithNestedEnums } from './models/ModelWithNestedEnums'; -export { ModelWithNestedProperties } from './models/ModelWithNestedProperties'; -export { ModelWithProperties } from './models/ModelWithProperties'; -export { ModelWithReference } from './models/ModelWithReference'; -export { ModelWithString } from './models/ModelWithString'; -export { SimpleBoolean } from './models/SimpleBoolean'; -export { SimpleFile } from './models/SimpleFile'; -export { SimpleInteger } from './models/SimpleInteger'; -export { SimpleReference } from './models/SimpleReference'; -export { SimpleString } from './models/SimpleString'; +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 { 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 { 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'; @@ -4146,6 +4416,53 @@ export { ParametersService } from './services/ParametersService'; export { ResponseService } from './services/ResponseService'; export { SimpleService } from './services/SimpleService'; export { TypesService } from './services/TypesService'; + +const schemas = { + 'ArrayWithArray': ArrayWithArray.schema, + 'ArrayWithBooleans': ArrayWithBooleans.schema, + 'ArrayWithNumbers': ArrayWithNumbers.schema, + 'ArrayWithProperties': ArrayWithProperties.schema, + 'ArrayWithReferences': ArrayWithReferences.schema, + 'ArrayWithStrings': ArrayWithStrings.schema, + 'DictionaryWithArray': DictionaryWithArray.schema, + 'DictionaryWithDictionary': DictionaryWithDictionary.schema, + 'DictionaryWithProperties': DictionaryWithProperties.schema, + 'DictionaryWithReference': DictionaryWithReference.schema, + 'DictionaryWithString': DictionaryWithString.schema, + 'EnumFromDescription': EnumFromDescription.schema, + 'EnumWithNumbers': EnumWithNumbers.schema, + 'EnumWithStrings': EnumWithStrings.schema, + 'ModelLink': ModelLink.schema, + 'ModelThatExtends': ModelThatExtends.schema, + 'ModelThatExtendsExtends': ModelThatExtendsExtends.schema, + 'ModelWithArray': ModelWithArray.schema, + 'ModelWithBoolean': ModelWithBoolean.schema, + 'ModelWithCircularReference': ModelWithCircularReference.schema, + 'ModelWithDictionary': ModelWithDictionary.schema, + 'ModelWithDuplicateImports': ModelWithDuplicateImports.schema, + 'ModelWithDuplicateProperties': ModelWithDuplicateProperties.schema, + 'ModelWithEnum': ModelWithEnum.schema, + 'ModelWithEnumFromDescription': ModelWithEnumFromDescription.schema, + 'ModelWithInteger': ModelWithInteger.schema, + 'ModelWithLink': ModelWithLink.schema, + 'ModelWithNestedEnums': ModelWithNestedEnums.schema, + 'ModelWithNestedProperties': ModelWithNestedProperties.schema, + 'ModelWithProperties': ModelWithProperties.schema, + 'ModelWithReference': ModelWithReference.schema, + 'ModelWithString': ModelWithString.schema, + 'SimpleBoolean': SimpleBoolean.schema, + 'SimpleFile': SimpleFile.schema, + 'SimpleInteger': SimpleInteger.schema, + 'SimpleReference': SimpleReference.schema, + 'SimpleString': SimpleString.schema, +}; + +export function getSchema(schema) { + if (schemas.hasOwnProperty(schema)) { + return schemas[schema]; + } + return null; +} " `; @@ -4154,8 +4471,6 @@ exports[`generation v3 javascript file(./test/result/v3/javascript/models/ArrayW /* eslint-disable */ /* prettier-ignore */ -import { ModelWithString } from '../models/ModelWithString'; - /** * This is a simple array containing an array */ @@ -4178,7 +4493,6 @@ exports[`generation v3 javascript file(./test/result/v3/javascript/models/ArrayW /* eslint-disable */ /* prettier-ignore */ - /** * This is a simple array with booleans */ @@ -4200,7 +4514,6 @@ exports[`generation v3 javascript file(./test/result/v3/javascript/models/ArrayW /* eslint-disable */ /* prettier-ignore */ - /** * This is a simple array with numbers */ @@ -4222,7 +4535,6 @@ exports[`generation v3 javascript file(./test/result/v3/javascript/models/ArrayW /* eslint-disable */ /* prettier-ignore */ - /** * This is a simple array with properties */ @@ -4249,8 +4561,6 @@ exports[`generation v3 javascript file(./test/result/v3/javascript/models/ArrayW /* eslint-disable */ /* prettier-ignore */ -import { ModelWithString } from '../models/ModelWithString'; - /** * This is a simple array with references */ @@ -4270,7 +4580,6 @@ exports[`generation v3 javascript file(./test/result/v3/javascript/models/ArrayW /* eslint-disable */ /* prettier-ignore */ - /** * This is a simple array with strings */ @@ -4287,13 +4596,26 @@ export let ArrayWithStrings; })(ArrayWithStrings || (ArrayWithStrings = {}));" `; -exports[`generation v3 javascript file(./test/result/v3/javascript/models/DictionaryWithArray.js): ./test/result/v3/javascript/models/DictionaryWithArray.js 1`] = ` +exports[`generation v3 javascript file(./test/result/v3/javascript/models/Dictionary.js): ./test/result/v3/javascript/models/Dictionary.js 1`] = ` "/* istanbul ignore file */ /* eslint-disable */ /* prettier-ignore */ -import { Dictionary } from '../models/Dictionary'; -import { ModelWithString } from '../models/ModelWithString'; +export let Dictionary; +(function (Dictionary) { + + Dictionary.schema = { + type: 'Dictionary' + }; + +})(Dictionary || (Dictionary = {})); +" +`; + +exports[`generation v3 javascript file(./test/result/v3/javascript/models/DictionaryWithArray.js): ./test/result/v3/javascript/models/DictionaryWithArray.js 1`] = ` +"/* istanbul ignore file */ +/* eslint-disable */ +/* prettier-ignore */ /** * This is a complex dictionary @@ -4317,8 +4639,6 @@ exports[`generation v3 javascript file(./test/result/v3/javascript/models/Dictio /* eslint-disable */ /* prettier-ignore */ -import { Dictionary } from '../models/Dictionary'; - /** * This is a string dictionary */ @@ -4343,8 +4663,6 @@ exports[`generation v3 javascript file(./test/result/v3/javascript/models/Dictio /* eslint-disable */ /* prettier-ignore */ -import { Dictionary } from '../models/Dictionary'; - /** * This is a complex dictionary */ @@ -4371,9 +4689,6 @@ exports[`generation v3 javascript file(./test/result/v3/javascript/models/Dictio /* eslint-disable */ /* prettier-ignore */ -import { Dictionary } from '../models/Dictionary'; -import { ModelWithString } from '../models/ModelWithString'; - /** * This is a string reference */ @@ -4393,8 +4708,6 @@ exports[`generation v3 javascript file(./test/result/v3/javascript/models/Dictio /* eslint-disable */ /* prettier-ignore */ -import { Dictionary } from '../models/Dictionary'; - /** * This is a string dictionary */ @@ -4416,7 +4729,6 @@ exports[`generation v3 javascript file(./test/result/v3/javascript/models/EnumFr /* eslint-disable */ /* prettier-ignore */ - /** * Success=1,Warning=2,Error=3 */ @@ -4444,7 +4756,6 @@ exports[`generation v3 javascript file(./test/result/v3/javascript/models/EnumWi /* eslint-disable */ /* prettier-ignore */ - /** * This is a simple enum with numbers */ @@ -4472,7 +4783,6 @@ exports[`generation v3 javascript file(./test/result/v3/javascript/models/EnumWi /* eslint-disable */ /* prettier-ignore */ - /** * This is a simple enum with strings */ @@ -4500,7 +4810,6 @@ exports[`generation v3 javascript file(./test/result/v3/javascript/models/ModelL /* eslint-disable */ /* prettier-ignore */ - /** * This is a model that can have a template?? */ @@ -4521,8 +4830,6 @@ exports[`generation v3 javascript file(./test/result/v3/javascript/models/ModelT /* eslint-disable */ /* prettier-ignore */ -import { ModelWithString } from '../models/ModelWithString'; - /** * This is a model that extends another model */ @@ -4546,9 +4853,6 @@ exports[`generation v3 javascript file(./test/result/v3/javascript/models/ModelT /* eslint-disable */ /* prettier-ignore */ -import { ModelThatExtends } from '../models/ModelThatExtends'; -import { ModelWithString } from '../models/ModelWithString'; - /** * This is a model that extends another model */ @@ -4572,8 +4876,6 @@ exports[`generation v3 javascript file(./test/result/v3/javascript/models/ModelW /* eslint-disable */ /* prettier-ignore */ -import { ModelWithString } from '../models/ModelWithString'; - /** * This is a model with one property containing an array */ @@ -4607,7 +4909,6 @@ exports[`generation v3 javascript file(./test/result/v3/javascript/models/ModelW /* eslint-disable */ /* prettier-ignore */ - /** * This is a model with one boolean property */ @@ -4628,7 +4929,6 @@ exports[`generation v3 javascript file(./test/result/v3/javascript/models/ModelW /* eslint-disable */ /* prettier-ignore */ - /** * This is a model with one property containing a circular reference */ @@ -4649,8 +4949,6 @@ exports[`generation v3 javascript file(./test/result/v3/javascript/models/ModelW /* eslint-disable */ /* prettier-ignore */ -import { Dictionary } from '../models/Dictionary'; - /** * This is a model with one property containing a dictionary */ @@ -4674,8 +4972,6 @@ exports[`generation v3 javascript file(./test/result/v3/javascript/models/ModelW /* eslint-disable */ /* prettier-ignore */ -import { ModelWithString } from '../models/ModelWithString'; - /** * This is a model with duplicated imports */ @@ -4702,8 +4998,6 @@ exports[`generation v3 javascript file(./test/result/v3/javascript/models/ModelW /* eslint-disable */ /* prettier-ignore */ -import { ModelWithString } from '../models/ModelWithString'; - /** * This is a model with duplicated properties */ @@ -4724,7 +5018,6 @@ exports[`generation v3 javascript file(./test/result/v3/javascript/models/ModelW /* eslint-disable */ /* prettier-ignore */ - /** * This is a model with one enum */ @@ -4759,7 +5052,6 @@ exports[`generation v3 javascript file(./test/result/v3/javascript/models/ModelW /* eslint-disable */ /* prettier-ignore */ - /** * This is a model with one enum */ @@ -4794,7 +5086,6 @@ exports[`generation v3 javascript file(./test/result/v3/javascript/models/ModelW /* eslint-disable */ /* prettier-ignore */ - /** * This is a model with one number property */ @@ -4815,9 +5106,6 @@ exports[`generation v3 javascript file(./test/result/v3/javascript/models/ModelW /* eslint-disable */ /* prettier-ignore */ -import { ModelLink } from '../models/ModelLink'; -import { ModelWithString } from '../models/ModelWithString'; - /** * This is a model that can have a template?? */ @@ -4838,8 +5126,6 @@ exports[`generation v3 javascript file(./test/result/v3/javascript/models/ModelW /* eslint-disable */ /* prettier-ignore */ -import { Dictionary } from '../models/Dictionary'; - /** * This is a model with nested enums */ @@ -4901,7 +5187,6 @@ exports[`generation v3 javascript file(./test/result/v3/javascript/models/ModelW /* eslint-disable */ /* prettier-ignore */ - /** * This is a model with one nested property */ @@ -4935,8 +5220,6 @@ exports[`generation v3 javascript file(./test/result/v3/javascript/models/ModelW /* eslint-disable */ /* prettier-ignore */ -import { ModelWithString } from '../models/ModelWithString'; - /** * This is a model with one nested property */ @@ -4980,8 +5263,6 @@ exports[`generation v3 javascript file(./test/result/v3/javascript/models/ModelW /* eslint-disable */ /* prettier-ignore */ -import { ModelWithString } from '../models/ModelWithString'; - /** * This is a model with one property containing a reference */ @@ -5002,7 +5283,6 @@ exports[`generation v3 javascript file(./test/result/v3/javascript/models/ModelW /* eslint-disable */ /* prettier-ignore */ - /** * This is a model with one string property */ @@ -5023,7 +5303,6 @@ exports[`generation v3 javascript file(./test/result/v3/javascript/models/Simple /* eslint-disable */ /* prettier-ignore */ - /** * This is a simple boolean */ @@ -5042,7 +5321,6 @@ exports[`generation v3 javascript file(./test/result/v3/javascript/models/Simple /* eslint-disable */ /* prettier-ignore */ - /** * This is a simple file */ @@ -5061,7 +5339,6 @@ exports[`generation v3 javascript file(./test/result/v3/javascript/models/Simple /* eslint-disable */ /* prettier-ignore */ - /** * This is a simple number */ @@ -5080,8 +5357,6 @@ exports[`generation v3 javascript file(./test/result/v3/javascript/models/Simple /* eslint-disable */ /* prettier-ignore */ -import { ModelWithString } from '../models/ModelWithString'; - /** * This is a simple reference */ @@ -5100,7 +5375,6 @@ exports[`generation v3 javascript file(./test/result/v3/javascript/models/Simple /* eslint-disable */ /* prettier-ignore */ - /** * This is a simple string */ @@ -5629,6 +5903,41 @@ export interface Result { " `; +exports[`generation v3 typescript file(./test/result/v3/typescript/core/Schema.ts): ./test/result/v3/typescript/core/Schema.ts 1`] = ` +"/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +/* prettier-ignore */ + +export type FieldSchema = { + readonly type?: string; + readonly isReadOnly?: boolean; + readonly isRequired?: boolean; + readonly isNullable?: boolean; + readonly format?: 'int32' | 'int64' | 'float' | 'double' | 'string' | 'boolean' | 'byte' | 'binary' | 'date' | 'date-time' | 'password'; + readonly maximum?: number; + readonly exclusiveMaximum?: boolean; + readonly minimum?: number; + readonly exclusiveMinimum?: boolean; + readonly multipleOf?: number; + readonly maxLength?: number; + readonly minLength?: number; + readonly pattern?: string; + readonly maxItems?: number; + readonly minItems?: number; + readonly uniqueItems?: boolean; + readonly maxProperties?: number; + readonly minProperties?: number; +} + +export type Schema = FieldSchema & { + readonly item?: string | Schema | FieldSchema; +} & { + readonly [K in keyof T]: Schema | FieldSchema; +} +" +`; + exports[`generation v3 typescript file(./test/result/v3/typescript/core/getFormData.ts): ./test/result/v3/typescript/core/getFormData.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ @@ -5930,45 +6239,85 @@ exports[`generation v3 typescript file(./test/result/v3/typescript/index.ts): ./ export { ApiError } from './core/ApiError'; export { isSuccess } from './core/isSuccess'; export { OpenAPI } from './core/OpenAPI'; +import { FieldSchema, Schema } from './core/Schema'; -export { ArrayWithArray } from './models/ArrayWithArray'; -export { ArrayWithBooleans } from './models/ArrayWithBooleans'; -export { ArrayWithNumbers } from './models/ArrayWithNumbers'; -export { ArrayWithProperties } from './models/ArrayWithProperties'; -export { ArrayWithReferences } from './models/ArrayWithReferences'; -export { ArrayWithStrings } from './models/ArrayWithStrings'; -export { Dictionary } from './models/Dictionary'; -export { DictionaryWithArray } from './models/DictionaryWithArray'; -export { DictionaryWithDictionary } from './models/DictionaryWithDictionary'; -export { DictionaryWithProperties } from './models/DictionaryWithProperties'; -export { DictionaryWithReference } from './models/DictionaryWithReference'; -export { DictionaryWithString } from './models/DictionaryWithString'; -export { EnumFromDescription } from './models/EnumFromDescription'; -export { EnumWithNumbers } from './models/EnumWithNumbers'; -export { EnumWithStrings } from './models/EnumWithStrings'; -export { ModelLink } from './models/ModelLink'; -export { ModelThatExtends } from './models/ModelThatExtends'; -export { ModelThatExtendsExtends } from './models/ModelThatExtendsExtends'; -export { ModelWithArray } from './models/ModelWithArray'; -export { ModelWithBoolean } from './models/ModelWithBoolean'; -export { ModelWithCircularReference } from './models/ModelWithCircularReference'; -export { ModelWithDictionary } from './models/ModelWithDictionary'; -export { ModelWithDuplicateImports } from './models/ModelWithDuplicateImports'; -export { ModelWithDuplicateProperties } from './models/ModelWithDuplicateProperties'; -export { ModelWithEnum } from './models/ModelWithEnum'; -export { ModelWithEnumFromDescription } from './models/ModelWithEnumFromDescription'; -export { ModelWithInteger } from './models/ModelWithInteger'; -export { ModelWithLink } from './models/ModelWithLink'; -export { ModelWithNestedEnums } from './models/ModelWithNestedEnums'; -export { ModelWithNestedProperties } from './models/ModelWithNestedProperties'; -export { ModelWithProperties } from './models/ModelWithProperties'; -export { ModelWithReference } from './models/ModelWithReference'; -export { ModelWithString } from './models/ModelWithString'; -export { SimpleBoolean } from './models/SimpleBoolean'; -export { SimpleFile } from './models/SimpleFile'; -export { SimpleInteger } from './models/SimpleInteger'; -export { SimpleReference } from './models/SimpleReference'; -export { SimpleString } from './models/SimpleString'; +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'; @@ -5976,6 +6325,55 @@ export { ParametersService } from './services/ParametersService'; export { ResponseService } from './services/ResponseService'; export { SimpleService } from './services/SimpleService'; export { TypesService } from './services/TypesService'; + +const schemas = { + 'ArrayWithArray': ArrayWithArray.schema, + 'ArrayWithBooleans': ArrayWithBooleans.schema, + 'ArrayWithNumbers': ArrayWithNumbers.schema, + 'ArrayWithProperties': ArrayWithProperties.schema, + 'ArrayWithReferences': ArrayWithReferences.schema, + 'ArrayWithStrings': ArrayWithStrings.schema, + 'Dictionary': Dictionary.schema, + 'DictionaryWithArray': DictionaryWithArray.schema, + 'DictionaryWithDictionary': DictionaryWithDictionary.schema, + 'DictionaryWithProperties': DictionaryWithProperties.schema, + 'DictionaryWithReference': DictionaryWithReference.schema, + 'DictionaryWithString': DictionaryWithString.schema, + 'EnumFromDescription': EnumFromDescription.schema, + 'EnumWithNumbers': EnumWithNumbers.schema, + 'EnumWithStrings': EnumWithStrings.schema, + 'ModelLink': ModelLink.schema, + 'ModelThatExtends': ModelThatExtends.schema, + 'ModelThatExtendsExtends': ModelThatExtendsExtends.schema, + 'ModelWithArray': ModelWithArray.schema, + 'ModelWithBoolean': ModelWithBoolean.schema, + 'ModelWithCircularReference': ModelWithCircularReference.schema, + 'ModelWithDictionary': ModelWithDictionary.schema, + 'ModelWithDuplicateImports': ModelWithDuplicateImports.schema, + 'ModelWithDuplicateProperties': ModelWithDuplicateProperties.schema, + 'ModelWithEnum': ModelWithEnum.schema, + 'ModelWithEnumFromDescription': ModelWithEnumFromDescription.schema, + 'ModelWithInteger': ModelWithInteger.schema, + 'ModelWithLink': ModelWithLink.schema, + 'ModelWithNestedEnums': ModelWithNestedEnums.schema, + 'ModelWithNestedProperties': ModelWithNestedProperties.schema, + 'ModelWithProperties': ModelWithProperties.schema, + 'ModelWithReference': ModelWithReference.schema, + 'ModelWithString': ModelWithString.schema, + 'SimpleBoolean': SimpleBoolean.schema, + 'SimpleFile': SimpleFile.schema, + 'SimpleInteger': SimpleInteger.schema, + 'SimpleReference': SimpleReference.schema, + 'SimpleString': SimpleString.schema, +}; + +export function getSchema(schema: string): Schema | FieldSchema | null { + if (schemas.hasOwnProperty(schema)) { + return schemas[schema]; + } + return null; +} + " `; @@ -5985,6 +6383,7 @@ exports[`generation v3 typescript file(./test/result/v3/typescript/models/ArrayW /* eslint-disable */ /* prettier-ignore */ +import { Schema } from '../core/Schema'; import { ModelWithString } from '../models/ModelWithString'; /** @@ -5994,7 +6393,7 @@ export type ArrayWithArray = Array>; export namespace ArrayWithArray { - export const schema = { + export const schema: Schema = { type: 'Array', item: { type: 'Array', @@ -6011,6 +6410,8 @@ exports[`generation v3 typescript file(./test/result/v3/typescript/models/ArrayW /* eslint-disable */ /* prettier-ignore */ +import { Schema } from '../core/Schema'; + /** * This is a simple array with booleans */ @@ -6018,7 +6419,7 @@ export type ArrayWithBooleans = Array; export namespace ArrayWithBooleans { - export const schema = { + export const schema: Schema = { type: 'Array', item: { type: 'boolean', @@ -6034,6 +6435,8 @@ exports[`generation v3 typescript file(./test/result/v3/typescript/models/ArrayW /* eslint-disable */ /* prettier-ignore */ +import { Schema } from '../core/Schema'; + /** * This is a simple array with numbers */ @@ -6041,7 +6444,7 @@ export type ArrayWithNumbers = Array; export namespace ArrayWithNumbers { - export const schema = { + export const schema: Schema = { type: 'Array', item: { type: 'number', @@ -6057,6 +6460,8 @@ exports[`generation v3 typescript file(./test/result/v3/typescript/models/ArrayW /* eslint-disable */ /* prettier-ignore */ +import { Schema } from '../core/Schema'; + /** * This is a simple array with properties */ @@ -6067,7 +6472,7 @@ export type ArrayWithProperties = Array<{ export namespace ArrayWithProperties { - export const schema = { + export const schema: Schema = { type: 'Array', item: { foo: { @@ -6088,6 +6493,7 @@ exports[`generation v3 typescript file(./test/result/v3/typescript/models/ArrayW /* eslint-disable */ /* prettier-ignore */ +import { Schema } from '../core/Schema'; import { ModelWithString } from '../models/ModelWithString'; /** @@ -6097,7 +6503,7 @@ export type ArrayWithReferences = Array; export namespace ArrayWithReferences { - export const schema = { + export const schema: Schema = { type: 'Array', item: 'ModelWithString', }; @@ -6111,6 +6517,8 @@ exports[`generation v3 typescript file(./test/result/v3/typescript/models/ArrayW /* eslint-disable */ /* prettier-ignore */ +import { Schema } from '../core/Schema'; + /** * This is a simple array with strings */ @@ -6118,7 +6526,7 @@ export type ArrayWithStrings = Array; export namespace ArrayWithStrings { - export const schema = { + export const schema: Schema = { type: 'Array', item: { type: 'string', @@ -6134,9 +6542,19 @@ exports[`generation v3 typescript file(./test/result/v3/typescript/models/Dictio /* eslint-disable */ /* prettier-ignore */ +import { Schema } from '../core/Schema'; + export interface Dictionary { [key: string]: T; } + +export namespace Dictionary { + + export const schema: Schema = { + type: 'Dictionary' + }; + +} " `; @@ -6146,6 +6564,7 @@ exports[`generation v3 typescript file(./test/result/v3/typescript/models/Dictio /* eslint-disable */ /* prettier-ignore */ +import { Schema } from '../core/Schema'; import { Dictionary } from '../models/Dictionary'; import { ModelWithString } from '../models/ModelWithString'; @@ -6156,7 +6575,7 @@ export type DictionaryWithArray = Dictionary>; export namespace DictionaryWithArray { - export const schema = { + export const schema: Schema = { type: 'Dictionary', item: { type: 'Array', @@ -6173,6 +6592,7 @@ exports[`generation v3 typescript file(./test/result/v3/typescript/models/Dictio /* eslint-disable */ /* prettier-ignore */ +import { Schema } from '../core/Schema'; import { Dictionary } from '../models/Dictionary'; /** @@ -6182,7 +6602,7 @@ export type DictionaryWithDictionary = Dictionary>; export namespace DictionaryWithDictionary { - export const schema = { + export const schema: Schema = { type: 'Dictionary', item: { type: 'Dictionary', @@ -6201,6 +6621,7 @@ exports[`generation v3 typescript file(./test/result/v3/typescript/models/Dictio /* eslint-disable */ /* prettier-ignore */ +import { Schema } from '../core/Schema'; import { Dictionary } from '../models/Dictionary'; /** @@ -6213,7 +6634,7 @@ export type DictionaryWithProperties = Dictionary<{ export namespace DictionaryWithProperties { - export const schema = { + export const schema: Schema = { type: 'Dictionary', item: { foo: { @@ -6234,6 +6655,7 @@ exports[`generation v3 typescript file(./test/result/v3/typescript/models/Dictio /* eslint-disable */ /* prettier-ignore */ +import { Schema } from '../core/Schema'; import { Dictionary } from '../models/Dictionary'; import { ModelWithString } from '../models/ModelWithString'; @@ -6244,7 +6666,7 @@ export type DictionaryWithReference = Dictionary; export namespace DictionaryWithReference { - export const schema = { + export const schema: Schema = { type: 'Dictionary', item: 'ModelWithString', }; @@ -6258,6 +6680,7 @@ exports[`generation v3 typescript file(./test/result/v3/typescript/models/Dictio /* eslint-disable */ /* prettier-ignore */ +import { Schema } from '../core/Schema'; import { Dictionary } from '../models/Dictionary'; /** @@ -6267,7 +6690,7 @@ export type DictionaryWithString = Dictionary; export namespace DictionaryWithString { - export const schema = { + export const schema: Schema = { type: 'Dictionary', item: { type: 'string', @@ -6283,6 +6706,8 @@ exports[`generation v3 typescript file(./test/result/v3/typescript/models/EnumFr /* eslint-disable */ /* prettier-ignore */ +import { Schema } from '../core/Schema'; + /** * Success=1,Warning=2,Error=3 */ @@ -6294,7 +6719,7 @@ export enum EnumFromDescription { export namespace EnumFromDescription { - export const schema = { + export const schema: Schema = { type: 'Enum', enums: [ 3, @@ -6312,6 +6737,8 @@ exports[`generation v3 typescript file(./test/result/v3/typescript/models/EnumWi /* eslint-disable */ /* prettier-ignore */ +import { Schema } from '../core/Schema'; + /** * This is a simple enum with numbers */ @@ -6323,7 +6750,7 @@ export enum EnumWithNumbers { export namespace EnumWithNumbers { - export const schema = { + export const schema: Schema = { type: 'Enum', enums: [ 1, @@ -6341,6 +6768,8 @@ exports[`generation v3 typescript file(./test/result/v3/typescript/models/EnumWi /* eslint-disable */ /* prettier-ignore */ +import { Schema } from '../core/Schema'; + /** * This is a simple enum with strings */ @@ -6352,7 +6781,7 @@ export enum EnumWithStrings { export namespace EnumWithStrings { - export const schema = { + export const schema: Schema = { type: 'Enum', enums: [ 'Error', @@ -6370,6 +6799,8 @@ exports[`generation v3 typescript file(./test/result/v3/typescript/models/ModelL /* eslint-disable */ /* prettier-ignore */ +import { Schema } from '../core/Schema'; + /** * This is a model that can have a template?? */ @@ -6379,7 +6810,7 @@ export interface ModelLink { export namespace ModelLink { - export const schema = { + export const schema: Schema = { id: { type: 'string', }, @@ -6394,6 +6825,7 @@ exports[`generation v3 typescript file(./test/result/v3/typescript/models/ModelT /* eslint-disable */ /* prettier-ignore */ +import { Schema } from '../core/Schema'; import { ModelWithString } from '../models/ModelWithString'; /** @@ -6406,7 +6838,7 @@ export interface ModelThatExtends extends ModelWithString { export namespace ModelThatExtends { - export const schema = { + export const schema: Schema = { propExtendsA: { type: 'string', }, @@ -6424,6 +6856,7 @@ exports[`generation v3 typescript file(./test/result/v3/typescript/models/ModelT /* eslint-disable */ /* prettier-ignore */ +import { Schema } from '../core/Schema'; import { ModelThatExtends } from '../models/ModelThatExtends'; import { ModelWithString } from '../models/ModelWithString'; @@ -6437,7 +6870,7 @@ export interface ModelThatExtendsExtends extends ModelWithString, ModelThatExten export namespace ModelThatExtendsExtends { - export const schema = { + export const schema: Schema = { propExtendsC: { type: 'string', }, @@ -6455,6 +6888,7 @@ exports[`generation v3 typescript file(./test/result/v3/typescript/models/ModelW /* eslint-disable */ /* prettier-ignore */ +import { Schema } from '../core/Schema'; import { ModelWithString } from '../models/ModelWithString'; /** @@ -6468,7 +6902,7 @@ export interface ModelWithArray { export namespace ModelWithArray { - export const schema = { + export const schema: Schema = { prop: { type: 'Array', item: 'ModelWithString', @@ -6496,6 +6930,8 @@ exports[`generation v3 typescript file(./test/result/v3/typescript/models/ModelW /* eslint-disable */ /* prettier-ignore */ +import { Schema } from '../core/Schema'; + /** * This is a model with one boolean property */ @@ -6508,7 +6944,7 @@ export interface ModelWithBoolean { export namespace ModelWithBoolean { - export const schema = { + export const schema: Schema = { prop: { type: 'boolean', }, @@ -6523,6 +6959,8 @@ exports[`generation v3 typescript file(./test/result/v3/typescript/models/ModelW /* eslint-disable */ /* prettier-ignore */ +import { Schema } from '../core/Schema'; + /** * This is a model with one property containing a circular reference */ @@ -6532,7 +6970,7 @@ export interface ModelWithCircularReference { export namespace ModelWithCircularReference { - export const schema = { + export const schema: Schema = { prop: { type: 'ModelWithCircularReference', }, @@ -6547,6 +6985,7 @@ exports[`generation v3 typescript file(./test/result/v3/typescript/models/ModelW /* eslint-disable */ /* prettier-ignore */ +import { Schema } from '../core/Schema'; import { Dictionary } from '../models/Dictionary'; /** @@ -6558,7 +6997,7 @@ export interface ModelWithDictionary { export namespace ModelWithDictionary { - export const schema = { + export const schema: Schema = { prop: { type: 'Dictionary', item: { @@ -6576,6 +7015,7 @@ exports[`generation v3 typescript file(./test/result/v3/typescript/models/ModelW /* eslint-disable */ /* prettier-ignore */ +import { Schema } from '../core/Schema'; import { ModelWithString } from '../models/ModelWithString'; /** @@ -6589,7 +7029,7 @@ export interface ModelWithDuplicateImports { export namespace ModelWithDuplicateImports { - export const schema = { + export const schema: Schema = { propA: { type: 'ModelWithString', }, @@ -6610,6 +7050,7 @@ exports[`generation v3 typescript file(./test/result/v3/typescript/models/ModelW /* eslint-disable */ /* prettier-ignore */ +import { Schema } from '../core/Schema'; import { ModelWithString } from '../models/ModelWithString'; /** @@ -6621,7 +7062,7 @@ export interface ModelWithDuplicateProperties { export namespace ModelWithDuplicateProperties { - export const schema = { + export const schema: Schema = { prop: { type: 'ModelWithString', }, @@ -6636,6 +7077,8 @@ exports[`generation v3 typescript file(./test/result/v3/typescript/models/ModelW /* eslint-disable */ /* prettier-ignore */ +import { Schema } from '../core/Schema'; + /** * This is a model with one enum */ @@ -6657,7 +7100,7 @@ export namespace ModelWithEnum { ERROR = 'Error', } - export const schema = { + export const schema: Schema = { Test: { type: 'Enum', enums: [ @@ -6677,6 +7120,8 @@ exports[`generation v3 typescript file(./test/result/v3/typescript/models/ModelW /* eslint-disable */ /* prettier-ignore */ +import { Schema } from '../core/Schema'; + /** * This is a model with one enum */ @@ -6698,7 +7143,7 @@ export namespace ModelWithEnumFromDescription { ERROR = 3, } - export const schema = { + export const schema: Schema = { Test: { type: 'Enum', enums: [ @@ -6718,6 +7163,8 @@ exports[`generation v3 typescript file(./test/result/v3/typescript/models/ModelW /* eslint-disable */ /* prettier-ignore */ +import { Schema } from '../core/Schema'; + /** * This is a model with one number property */ @@ -6730,7 +7177,7 @@ export interface ModelWithInteger { export namespace ModelWithInteger { - export const schema = { + export const schema: Schema = { prop: { type: 'number', }, @@ -6745,6 +7192,7 @@ exports[`generation v3 typescript file(./test/result/v3/typescript/models/ModelW /* eslint-disable */ /* prettier-ignore */ +import { Schema } from '../core/Schema'; import { ModelLink } from '../models/ModelLink'; import { ModelWithString } from '../models/ModelWithString'; @@ -6757,7 +7205,7 @@ export interface ModelWithLink { export namespace ModelWithLink { - export const schema = { + export const schema: Schema = { prop: { type: 'ModelLink', }, @@ -6772,6 +7220,7 @@ exports[`generation v3 typescript file(./test/result/v3/typescript/models/ModelW /* eslint-disable */ /* prettier-ignore */ +import { Schema } from '../core/Schema'; import { Dictionary } from '../models/Dictionary'; /** @@ -6786,7 +7235,7 @@ export interface ModelWithNestedEnums { export namespace ModelWithNestedEnums { - export const schema = { + export const schema: Schema = { arrayWithDescription: { type: 'Array', item: { @@ -6842,6 +7291,8 @@ exports[`generation v3 typescript file(./test/result/v3/typescript/models/ModelW /* eslint-disable */ /* prettier-ignore */ +import { Schema } from '../core/Schema'; + /** * This is a model with one nested property */ @@ -6855,7 +7306,7 @@ export interface ModelWithNestedProperties { export namespace ModelWithNestedProperties { - export const schema = { + export const schema: Schema = { first: { second: { third: { @@ -6883,6 +7334,7 @@ exports[`generation v3 typescript file(./test/result/v3/typescript/models/ModelW /* eslint-disable */ /* prettier-ignore */ +import { Schema } from '../core/Schema'; import { ModelWithString } from '../models/ModelWithString'; /** @@ -6900,7 +7352,7 @@ export interface ModelWithProperties { export namespace ModelWithProperties { - export const schema = { + export const schema: Schema = { boolean: { type: 'boolean', }, @@ -6938,6 +7390,7 @@ exports[`generation v3 typescript file(./test/result/v3/typescript/models/ModelW /* eslint-disable */ /* prettier-ignore */ +import { Schema } from '../core/Schema'; import { ModelWithString } from '../models/ModelWithString'; /** @@ -6949,7 +7402,7 @@ export interface ModelWithReference { export namespace ModelWithReference { - export const schema = { + export const schema: Schema = { prop: { type: 'ModelWithString', }, @@ -6964,6 +7417,8 @@ exports[`generation v3 typescript file(./test/result/v3/typescript/models/ModelW /* eslint-disable */ /* prettier-ignore */ +import { Schema } from '../core/Schema'; + /** * This is a model with one string property */ @@ -6976,7 +7431,7 @@ export interface ModelWithString { export namespace ModelWithString { - export const schema = { + export const schema: Schema = { prop: { type: 'string', }, @@ -6991,6 +7446,8 @@ exports[`generation v3 typescript file(./test/result/v3/typescript/models/Simple /* eslint-disable */ /* prettier-ignore */ +import { Schema } from '../core/Schema'; + /** * This is a simple boolean */ @@ -6998,7 +7455,7 @@ export type SimpleBoolean = boolean; export namespace SimpleBoolean { - export const schema = { + export const schema: Schema = { type: 'boolean', }; @@ -7011,6 +7468,8 @@ exports[`generation v3 typescript file(./test/result/v3/typescript/models/Simple /* eslint-disable */ /* prettier-ignore */ +import { Schema } from '../core/Schema'; + /** * This is a simple file */ @@ -7018,7 +7477,7 @@ export type SimpleFile = File; export namespace SimpleFile { - export const schema = { + export const schema: Schema = { type: 'File', }; @@ -7031,6 +7490,8 @@ exports[`generation v3 typescript file(./test/result/v3/typescript/models/Simple /* eslint-disable */ /* prettier-ignore */ +import { Schema } from '../core/Schema'; + /** * This is a simple number */ @@ -7038,7 +7499,7 @@ export type SimpleInteger = number; export namespace SimpleInteger { - export const schema = { + export const schema: Schema = { type: 'number', }; @@ -7051,6 +7512,7 @@ exports[`generation v3 typescript file(./test/result/v3/typescript/models/Simple /* eslint-disable */ /* prettier-ignore */ +import { Schema } from '../core/Schema'; import { ModelWithString } from '../models/ModelWithString'; /** @@ -7060,7 +7522,7 @@ export type SimpleReference = ModelWithString; export namespace SimpleReference { - export const schema = { + export const schema: Schema = { type: 'ModelWithString', }; @@ -7073,6 +7535,8 @@ exports[`generation v3 typescript file(./test/result/v3/typescript/models/Simple /* eslint-disable */ /* prettier-ignore */ +import { Schema } from '../core/Schema'; + /** * This is a simple string */ @@ -7080,7 +7544,7 @@ export type SimpleString = string; export namespace SimpleString { - export const schema = { + export const schema: Schema = { type: 'string', };