github.com/phrase/openapi@v0.0.0-20240514140800-49e8a106740e/openapi-generator/templates/typescript-fetch/modelGeneric.mustache (about) 1 import { exists, mapValues } from '../runtime'; 2 {{#hasImports}} 3 import { 4 {{#imports}} 5 {{{.}}}, 6 {{.}}FromJSON, 7 {{.}}FromJSONTyped, 8 {{.}}ToJSON, 9 {{/imports}} 10 } from './'; 11 12 {{/hasImports}} 13 {{#discriminator}} 14 import { 15 {{#discriminator.mappedModels}} 16 {{modelName}}FromJSONTyped{{^-last}},{{/-last}} 17 {{/discriminator.mappedModels}} 18 } from './'; 19 20 {{/discriminator}} 21 /** 22 * {{{description}}} 23 * @export 24 * @interface {{classname}} 25 */ 26 export interface {{classname}} {{#parent}}extends {{{parent}}} {{/parent}}{ 27 {{#additionalPropertiesType}} 28 [key: string]: {{{additionalPropertiesType}}}{{#hasVars}} | any{{/hasVars}}; 29 {{/additionalPropertiesType}} 30 {{#vars}} 31 /** 32 * {{{description}}} 33 * @type {{=<% %>=}}{<%&datatype%>}<%={{ }}=%> 34 * @memberof {{classname}} 35 */ 36 {{#isReadOnly}}readonly {{/isReadOnly}}{{name}}{{^required}}?{{/required}}: {{#isEnum}}{{{datatypeWithEnum}}}{{/isEnum}}{{^isEnum}}{{{datatype}}}{{#isNullable}} | null{{/isNullable}}{{/isEnum}}; 37 {{/vars}} 38 } 39 40 export function {{classname}}FromJSON(json: any): {{classname}} { 41 return {{classname}}FromJSONTyped(json, false); 42 } 43 44 export function {{classname}}FromJSONTyped(json: any, ignoreDiscriminator: boolean): {{classname}} { 45 {{#hasVars}} 46 if ((json === undefined) || (json === null)) { 47 return json; 48 } 49 {{#discriminator}} 50 if (!ignoreDiscriminator) { 51 {{#discriminator.mappedModels}} 52 if (json['{{discriminator.propertyName}}'] === '{{mappingName}}') { 53 return {{modelName}}FromJSONTyped(json, true); 54 } 55 {{/discriminator.mappedModels}} 56 } 57 {{/discriminator}} 58 return { 59 {{#parent}}...{{{parent}}}FromJSONTyped(json, ignoreDiscriminator),{{/parent}} 60 {{#additionalPropertiesType}} 61 ...json, 62 {{/additionalPropertiesType}} 63 {{#vars}} 64 {{#isPrimitiveType}} 65 {{#isDate}} 66 '{{name}}': {{^required}}!exists(json, '{{baseName}}') ? undefined : {{/required}}({{#isNullable}}json['{{baseName}}'] === null ? null : {{/isNullable}}new Date(json['{{baseName}}'])), 67 {{/isDate}} 68 {{#isDateTime}} 69 '{{name}}': {{^required}}!exists(json, '{{baseName}}') ? undefined : {{/required}}({{#isNullable}}json['{{baseName}}'] === null ? null : {{/isNullable}}new Date(json['{{baseName}}'])), 70 {{/isDateTime}} 71 {{^isDate}} 72 {{^isDateTime}} 73 '{{name}}': {{^required}}!exists(json, '{{baseName}}') ? undefined : {{/required}}json['{{baseName}}'], 74 {{/isDateTime}} 75 {{/isDate}} 76 {{/isPrimitiveType}} 77 {{^isPrimitiveType}} 78 {{#isArray}} 79 '{{name}}': {{^required}}!exists(json, '{{baseName}}') ? undefined : {{/required}}({{#isNullable}}json['{{baseName}}'] === null ? null : {{/isNullable}}(json['{{baseName}}'] as Array<any>).map({{#items}}{{datatype}}{{/items}}FromJSON)), 80 {{/isArray}} 81 {{#isMap}} 82 '{{name}}': {{^required}}!exists(json, '{{baseName}}') ? undefined : {{/required}}({{#isNullable}}json['{{baseName}}'] === null ? null : {{/isNullable}}mapValues(json['{{baseName}}'], {{#items}}{{datatype}}{{/items}}FromJSON)), 83 {{/isMap}} 84 {{^isArray}} 85 {{^isMap}} 86 {{^isFreeFormObject}} 87 '{{name}}': {{^required}}!exists(json, '{{baseName}}') ? undefined : {{/required}}{{datatype}}FromJSON(json['{{baseName}}']), 88 {{/isFreeFormObject}} 89 {{#isFreeFormObject}} 90 '{{name}}': {{^required}}!exists(json, '{{baseName}}') ? undefined : {{/required}}json['{{baseName}}'], 91 {{/isFreeFormObject}} 92 {{/isMap}} 93 {{/isArray}} 94 {{/isPrimitiveType}} 95 {{/vars}} 96 }; 97 {{/hasVars}} 98 {{^hasVars}} 99 return json; 100 {{/hasVars}} 101 } 102 103 export function {{classname}}ToJSON(value?: {{classname}} | null): any { 104 {{#hasVars}} 105 if (value === undefined) { 106 return undefined; 107 } 108 if (value === null) { 109 return null; 110 } 111 return { 112 {{#parent}}...{{{parent}}}ToJSON(value),{{/parent}} 113 {{#additionalPropertiesType}} 114 ...value, 115 {{/additionalPropertiesType}} 116 {{#vars}} 117 {{^isReadOnly}} 118 {{#isPrimitiveType}} 119 '{{baseName}}': {{#isDate}}{{^required}}value.{{name}} === undefined ? undefined : {{/required}}({{#isNullable}}value.{{name}} === null ? null : {{/isNullable}}value.{{name}}.toISOString().substr(0,10)){{/isDate}}{{#isDateTime}}{{^required}}value.{{name}} === undefined ? undefined : {{/required}}({{#isNullable}}value.{{name}} === null ? null : {{/isNullable}}value.{{name}}.toISOString()){{/isDateTime}}{{^isDate}}{{^isDateTime}}value.{{name}}{{/isDateTime}}{{/isDate}}, 120 {{/isPrimitiveType}} 121 {{^isPrimitiveType}} 122 {{#isArray}} 123 '{{baseName}}': {{^required}}value.{{name}} === undefined ? undefined : {{/required}}({{#isNullable}}value.{{name}} === null ? null : {{/isNullable}}(value.{{name}} as Array<any>).map({{#items}}{{datatype}}{{/items}}ToJSON)), 124 {{/isArray}} 125 {{#isMap}} 126 '{{baseName}}': {{^required}}value.{{name}} === undefined ? undefined : {{/required}}({{#isNullable}}value.{{name}} === null ? null : {{/isNullable}}mapValues(value.{{name}}, {{#items}}{{datatype}}{{/items}}ToJSON)), 127 {{/isMap}} 128 {{^isArray}} 129 {{^isMap}} 130 {{^isFreeFormObject}} 131 '{{baseName}}': {{datatype}}ToJSON(value.{{name}}), 132 {{/isFreeFormObject}} 133 {{#isFreeFormObject}} 134 '{{baseName}}': value.{{name}}, 135 {{/isFreeFormObject}} 136 {{/isMap}} 137 {{/isArray}} 138 {{/isPrimitiveType}} 139 {{/isReadOnly}} 140 {{/vars}} 141 }; 142 {{/hasVars}} 143 {{^hasVars}} 144 return value; 145 {{/hasVars}} 146 } 147 148 {{#hasEnums}} 149 {{#vars}} 150 {{#isEnum}} 151 /** 152 * @export 153 * @enum {string} 154 */ 155 export enum {{classname}}{{enumName}} { 156 {{#allowableValues}} 157 {{#enumVars}} 158 {{{name}}} = {{{value}}}{{^-last}},{{/-last}} 159 {{/enumVars}} 160 {{/allowableValues}} 161 } 162 {{/isEnum}} 163 {{/vars}} 164 165 {{/hasEnums}}