mirror of
https://github.com/ferdikoomen/openapi-typescript-codegen.git
synced 2025-12-08 20:16:21 +00:00
- Added schema generation
This commit is contained in:
parent
f8b02b3314
commit
86a56f149f
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "openapi-typescript-codegen",
|
||||
"version": "0.1.0",
|
||||
"version": "0.1.1",
|
||||
"description": "NodeJS library that generates Typescript or Javascript clients based on the OpenAPI specification.",
|
||||
"author": "Ferdi Koomen",
|
||||
"homepage": "https://github.com/ferdikoomen/openapi-typescript-codegen",
|
||||
|
||||
@ -9,7 +9,9 @@ import { {{{this}}} } from '../models/{{{this}}}';
|
||||
{{/if}}
|
||||
|
||||
{{#equals export 'interface'}}
|
||||
{{>exportEnums}}
|
||||
{{>exportInterface}}
|
||||
{{else equals export 'enum'}}
|
||||
{{>exportEnum}}
|
||||
{{else}}
|
||||
{{>exportGeneric}}
|
||||
{{/equals}}
|
||||
|
||||
@ -6,8 +6,12 @@
|
||||
export let {{{name}}};
|
||||
(function ({{{name}}}) {
|
||||
|
||||
{{#if enum}}
|
||||
{{#each enum}}
|
||||
{{{../name}}}.{{{name}}} = {{{value}}};
|
||||
{{/each}}
|
||||
|
||||
{{/if}}
|
||||
{{{name}}}.schema = {{>schema}};
|
||||
|
||||
})({{{name}}} || ({{{name}}} = {}));
|
||||
|
||||
11
src/templates/javascript/partials/exportGeneric.hbs
Normal file
11
src/templates/javascript/partials/exportGeneric.hbs
Normal file
@ -0,0 +1,11 @@
|
||||
{{#if description}}
|
||||
/**
|
||||
* {{{description}}}
|
||||
*/
|
||||
{{/if}}
|
||||
export let {{{name}}};
|
||||
(function ({{{name}}}) {
|
||||
|
||||
{{{name}}}.schema = {{>schema}};
|
||||
|
||||
})({{{name}}} || ({{{name}}} = {}));
|
||||
@ -6,6 +6,7 @@
|
||||
export let {{{name}}};
|
||||
(function ({{{name}}}) {
|
||||
|
||||
{{#if enums}}
|
||||
{{#each enums}}
|
||||
{{#if description}}
|
||||
/**
|
||||
@ -19,4 +20,7 @@ export let {{{name}}};
|
||||
};
|
||||
|
||||
{{/each}}
|
||||
{{/if}}
|
||||
{{{name}}}.schema = {{>schema}};
|
||||
|
||||
})({{{name}}} || ({{{name}}} = {}));
|
||||
11
src/templates/javascript/partials/schema.hbs
Normal file
11
src/templates/javascript/partials/schema.hbs
Normal file
@ -0,0 +1,11 @@
|
||||
{{#equals export 'interface'}}
|
||||
{{>schemaInterface}}
|
||||
{{else equals export 'enum'}}
|
||||
{{>schemaEnum}}
|
||||
{{else equals export 'array'}}
|
||||
{{>schemaArray}}
|
||||
{{else equals export 'dictionary'}}
|
||||
{{>schemaDictionary}}
|
||||
{{else}}
|
||||
{{>schemaGeneric}}
|
||||
{{/equals}}
|
||||
17
src/templates/javascript/partials/schemaArray.hbs
Normal file
17
src/templates/javascript/partials/schemaArray.hbs
Normal file
@ -0,0 +1,17 @@
|
||||
{
|
||||
type: 'Array',
|
||||
{{#if link~}}
|
||||
item: {{>schema link}},
|
||||
{{else}}
|
||||
item: '{{{base}}}',
|
||||
{{/if}}
|
||||
{{#if isReadOnly~}}
|
||||
isReadOnly: {{{isReadOnly}}},
|
||||
{{/if}}
|
||||
{{#if isRequired~}}
|
||||
isRequired: {{{isRequired}}},
|
||||
{{/if}}
|
||||
{{#if isNullable~}}
|
||||
isNullable: {{{isNullable}}},
|
||||
{{/if}}
|
||||
}
|
||||
17
src/templates/javascript/partials/schemaDictionary.hbs
Normal file
17
src/templates/javascript/partials/schemaDictionary.hbs
Normal file
@ -0,0 +1,17 @@
|
||||
{
|
||||
type: 'Dictionary',
|
||||
{{#if link~}}
|
||||
item: {{>schema link}},
|
||||
{{else}}
|
||||
item: '{{{base}}}',
|
||||
{{/if}}
|
||||
{{#if isReadOnly~}}
|
||||
isReadOnly: {{{isReadOnly}}},
|
||||
{{/if}}
|
||||
{{#if isRequired~}}
|
||||
isRequired: {{{isRequired}}},
|
||||
{{/if}}
|
||||
{{#if isNullable~}}
|
||||
isNullable: {{{isNullable}}},
|
||||
{{/if}}
|
||||
}
|
||||
12
src/templates/javascript/partials/schemaEnum.hbs
Normal file
12
src/templates/javascript/partials/schemaEnum.hbs
Normal file
@ -0,0 +1,12 @@
|
||||
{
|
||||
type: 'Enum',
|
||||
{{#if isReadOnly~}}
|
||||
isReadOnly: {{{isReadOnly}}},
|
||||
{{/if}}
|
||||
{{#if isRequired~}}
|
||||
isRequired: {{{isRequired}}},
|
||||
{{/if}}
|
||||
{{#if isNullable~}}
|
||||
isNullable: {{{isNullable}}},
|
||||
{{/if}}
|
||||
}
|
||||
56
src/templates/javascript/partials/schemaGeneric.hbs
Normal file
56
src/templates/javascript/partials/schemaGeneric.hbs
Normal file
@ -0,0 +1,56 @@
|
||||
{
|
||||
{{#if type~}}
|
||||
type: '{{{base}}}',
|
||||
{{/if}}
|
||||
{{#if isReadOnly~}}
|
||||
isReadOnly: {{{isReadOnly}}},
|
||||
{{/if}}
|
||||
{{#if isRequired~}}
|
||||
isRequired: {{{isRequired}}},
|
||||
{{/if}}
|
||||
{{#if isNullable~}}
|
||||
isNullable: {{{isNullable}}},
|
||||
{{/if}}
|
||||
{{#if format~}}
|
||||
format: '{{{format}}}',
|
||||
{{/if}}
|
||||
{{#if maximum~}}
|
||||
maximum: {{{maximum}}},
|
||||
{{/if}}
|
||||
{{#if exclusiveMaximum~}}
|
||||
exclusiveMaximum: {{{exclusiveMaximum}}},
|
||||
{{/if}}
|
||||
{{#if minimum~}}
|
||||
minimum: {{{minimum}}},
|
||||
{{/if}}
|
||||
{{#if exclusiveMinimum~}}
|
||||
exclusiveMinimum: {{{exclusiveMinimum}}},
|
||||
{{/if}}
|
||||
{{#if multipleOf~}}
|
||||
multipleOf: {{{multipleOf}}},
|
||||
{{/if}}
|
||||
{{#if maxLength~}}
|
||||
maxLength: {{{maxLength}}},
|
||||
{{/if}}
|
||||
{{#if minLength~}}
|
||||
minLength: {{{minLength}}},
|
||||
{{/if}}
|
||||
{{#if pattern~}}
|
||||
pattern: '{{{pattern}}}',
|
||||
{{/if}}
|
||||
{{#if maxItems~}}
|
||||
maxItems: {{{maxItems}}},
|
||||
{{/if}}
|
||||
{{#if minItems~}}
|
||||
minItems: {{{minItems}}},
|
||||
{{/if}}
|
||||
{{#if uniqueItems~}}
|
||||
uniqueItems: {{{uniqueItems}}},
|
||||
{{/if}}
|
||||
{{#if maxProperties~}}
|
||||
maxProperties: {{{maxProperties}}},
|
||||
{{/if}}
|
||||
{{#if minProperties~}}
|
||||
minProperties: {{{minProperties}}},
|
||||
{{/if}}
|
||||
}
|
||||
14
src/templates/javascript/partials/schemaInterface.hbs
Normal file
14
src/templates/javascript/partials/schemaInterface.hbs
Normal file
@ -0,0 +1,14 @@
|
||||
{
|
||||
{{#each properties}}
|
||||
{{{name}}}: {{>schema}},
|
||||
{{/each}}
|
||||
{{#if isReadOnly~}}
|
||||
isReadOnly: {{{isReadOnly}}},
|
||||
{{/if}}
|
||||
{{#if isRequired~}}
|
||||
isRequired: {{{isRequired}}},
|
||||
{{/if}}
|
||||
{{#if isNullable~}}
|
||||
isNullable: {{{isNullable}}},
|
||||
{{/if}}
|
||||
}
|
||||
@ -1,10 +1,5 @@
|
||||
{
|
||||
type: 'enum',
|
||||
enums: [
|
||||
{{#each enum}}
|
||||
{{{value}}},
|
||||
{{/each}}
|
||||
],
|
||||
type: 'Enum',
|
||||
{{#if isReadOnly~}}
|
||||
isReadOnly: {{{isReadOnly}}},
|
||||
{{/if}}
|
||||
|
||||
@ -54,8 +54,8 @@ export function writeClient(client: Client, language: Language, httpClient: Http
|
||||
});
|
||||
|
||||
// Filter unused models and services.
|
||||
client.models = getFilteredModels(client.models, language);
|
||||
client.services = getFilteredServices(client.services, language);
|
||||
// client.models = getFilteredModels(client.models, language);
|
||||
// client.services = getFilteredServices(client.services, language);
|
||||
|
||||
// Write the client files
|
||||
try {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user