swagger-ts-generator
Version:
Given a swagger.json file, generates a number of TypeScript files which can be used as models and model-driven forms in Angular 2 (and above)
57 lines (52 loc) • 1.84 kB
JavaScript
module.exports = config();
function config() {
var root = './test-gen/';
var srcAppFolder = root + 'app/';
var folders = {
// root
root: root,
// sources
srcWebapiFolder: srcAppFolder + 'models/webapi/',
srcLanguagesFolder: root + 'assets/i18n/',
enumI18NHtmlOutputFolder: srcAppFolder + '/+i18n/enum-i18n/',
// swagger
swaggerFolder: root + 'swagger/'
};
var files = {
swaggerJson: 'swagger.json'
};
var swagger = {
url: 'https://petstore3.swagger.io/api/v3/openapi.json',
// url: 'http://petstore.swagger.io/v2/swagger.json',
swaggerFile: folders.swaggerFolder + files.swaggerJson,
swaggerFolder: folders.swaggerFolder,
swaggerTSGeneratorOptions: {
modelFolder: folders.srcWebapiFolder,
enumTSFile: folders.srcWebapiFolder + 'enums.ts',
enumI18NHtmlFile: folders.enumI18NHtmlOutputFolder + 'enum-i18n.component.html',
enumLanguageFiles: [folders.srcLanguagesFolder + 'nl.json', folders.srcLanguagesFolder + 'en.json'],
generateBarrelFiles: false,
generateClasses: true,
generateValidatorFile: false,
modelModuleName: 'webapi.models',
sortModelProperties: true,
enumModuleName: 'webapi.enums',
enumRef: './enums',
sortEnumTypes: true,
subTypePropertyName: 'typeSelector',
namespacePrefixesToRemove: [],
typeNameSuffixesToRemove: [],
typesToFilter: [
'ModelAndView', // Springfox artifact
'View' // Springfox artifact
]
}
};
var config = {
root: root,
files: files,
swagger: swagger
};
return config;
}
;