diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/TypeScriptAngular2ClientCodegen.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/TypeScriptAngular2ClientCodegen.java index e23f4482dfa..e6d774783d4 100644 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/TypeScriptAngular2ClientCodegen.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/TypeScriptAngular2ClientCodegen.java @@ -37,7 +37,15 @@ public class TypeScriptAngular2ClientCodegen extends AbstractTypeScriptClientCod public void processOpts() { super.processOpts(); supportingFiles.clear(); - supportingFiles.add(new SupportingFile("model.d.mustache", modelPackage().replace('.', File.separatorChar), "model.d.ts")); + + supportingFiles.add(new SupportingFile("models.mustache", modelPackage().replace('.', File.separatorChar), "models.ts")); + supportingFiles.add(new SupportingFile("apis.mustache", apiPackage().replace('.', File.separatorChar), "api.ts")); + supportingFiles.add(new SupportingFile("index.mustache", getIndexDirectory(), "index.ts")); + } + + private String getIndexDirectory() { + String indexPackage = modelPackage.substring(0, Math.max(0, modelPackage.lastIndexOf('.'))); + return indexPackage.replace('.', File.separatorChar); } @Override @@ -69,7 +77,7 @@ public class TypeScriptAngular2ClientCodegen extends AbstractTypeScriptClientCod if (languageSpecificPrimitives.contains(type)) return type; } else - type = "model." + swaggerType; + type = "models." + swaggerType; return type; } @@ -78,4 +86,5 @@ public class TypeScriptAngular2ClientCodegen extends AbstractTypeScriptClientCod super.postProcessParameter(parameter); parameter.dataType = addModelPrefix(parameter.dataType); } + } diff --git a/modules/swagger-codegen/src/main/resources/typescript-angular2/api.mustache b/modules/swagger-codegen/src/main/resources/typescript-angular2/api.mustache index b5625698a3d..063393affc0 100644 --- a/modules/swagger-codegen/src/main/resources/typescript-angular2/api.mustache +++ b/modules/swagger-codegen/src/main/resources/typescript-angular2/api.mustache @@ -1,7 +1,7 @@ import {Http, Headers, RequestOptionsArgs, Response, URLSearchParams} from 'angular2/http'; import {Injectable} from 'angular2/core'; import {Observable} from 'rxjs/Observable'; -import * as model from "../model/model.d.ts" +import * as models from "../model/models.ts" /* tslint:disable:no-unused-variable member-ordering */ diff --git a/modules/swagger-codegen/src/main/resources/typescript-angular2/model.d.mustache b/modules/swagger-codegen/src/main/resources/typescript-angular2/apis.mustache similarity index 57% rename from modules/swagger-codegen/src/main/resources/typescript-angular2/model.d.mustache rename to modules/swagger-codegen/src/main/resources/typescript-angular2/apis.mustache index 1da8b543fce..05b5c6ec2ea 100644 --- a/modules/swagger-codegen/src/main/resources/typescript-angular2/model.d.mustache +++ b/modules/swagger-codegen/src/main/resources/typescript-angular2/apis.mustache @@ -1,11 +1,3 @@ -{{#models}} -{{#model}} -export * from './{{{ classname }}}'; -{{/model}} -{{/models}} - - - {{#apiInfo}} {{#apis}} {{#operations}} diff --git a/modules/swagger-codegen/src/main/resources/typescript-angular2/index.mustache b/modules/swagger-codegen/src/main/resources/typescript-angular2/index.mustache new file mode 100644 index 00000000000..84fe5a636a0 --- /dev/null +++ b/modules/swagger-codegen/src/main/resources/typescript-angular2/index.mustache @@ -0,0 +1,2 @@ +export * from './api/apis.ts'; +export * from './model/models.ts'; \ No newline at end of file diff --git a/modules/swagger-codegen/src/main/resources/typescript-angular2/model.mustache b/modules/swagger-codegen/src/main/resources/typescript-angular2/model.mustache index ff36a380e94..f32a4635621 100644 --- a/modules/swagger-codegen/src/main/resources/typescript-angular2/model.mustache +++ b/modules/swagger-codegen/src/main/resources/typescript-angular2/model.mustache @@ -1,14 +1,14 @@ {{#models}} {{#model}} 'use strict'; -import * as model from "./model.d.ts" +import * as models from "./models.ts" {{#description}} /** * {{{description}}} */ {{/description}} -export interface {{classname}} {{#parent}}extends model.{{{parent}}} {{/parent}}{ +export interface {{classname}} {{#parent}}extends models.{{{parent}}} {{/parent}}{ {{#vars}} {{#description}} diff --git a/modules/swagger-codegen/src/main/resources/typescript-angular2/models.mustache b/modules/swagger-codegen/src/main/resources/typescript-angular2/models.mustache new file mode 100644 index 00000000000..677b6b87328 --- /dev/null +++ b/modules/swagger-codegen/src/main/resources/typescript-angular2/models.mustache @@ -0,0 +1,8 @@ +{{#models}} +{{#model}} +export * from './{{{ classname }}}'; +{{/model}} +{{/models}} + + + diff --git a/modules/swagger-codegen/src/test/java/io/swagger/codegen/typescriptangular2/TypeScriptAngular2ModelTest.java b/modules/swagger-codegen/src/test/java/io/swagger/codegen/typescriptangular2/TypeScriptAngular2ModelTest.java index 8f696801202..3aa33df7da4 100644 --- a/modules/swagger-codegen/src/test/java/io/swagger/codegen/typescriptangular2/TypeScriptAngular2ModelTest.java +++ b/modules/swagger-codegen/src/test/java/io/swagger/codegen/typescriptangular2/TypeScriptAngular2ModelTest.java @@ -119,10 +119,10 @@ public class TypeScriptAngular2ModelTest { final CodegenProperty property1 = cm.vars.get(0); Assert.assertEquals(property1.baseName, "children"); - Assert.assertEquals(property1.datatype, "model.Children"); + Assert.assertEquals(property1.datatype, "models.Children"); Assert.assertEquals(property1.name, "children"); Assert.assertEquals(property1.defaultValue, "null"); - Assert.assertEquals(property1.baseType, "model.Children"); + Assert.assertEquals(property1.baseType, "models.Children"); Assert.assertNull(property1.required); Assert.assertTrue(property1.isNotContainer); } @@ -143,8 +143,8 @@ public class TypeScriptAngular2ModelTest { final CodegenProperty property1 = cm.vars.get(0); Assert.assertEquals(property1.baseName, "children"); - Assert.assertEquals(property1.complexType, "model.Children"); - Assert.assertEquals(property1.datatype, "Array"); + Assert.assertEquals(property1.complexType, "models.Children"); + Assert.assertEquals(property1.datatype, "Array"); Assert.assertEquals(property1.name, "children"); Assert.assertEquals(property1.baseType, "Array"); Assert.assertNull(property1.required); @@ -178,6 +178,6 @@ public class TypeScriptAngular2ModelTest { Assert.assertEquals(cm.description, "a map model"); Assert.assertEquals(cm.vars.size(), 0); Assert.assertEquals(cm.imports.size(), 1); - Assert.assertEquals(Sets.intersection(cm.imports, Sets.newHashSet("model.Children")).size(), 1); + Assert.assertEquals(Sets.intersection(cm.imports, Sets.newHashSet("models.Children")).size(), 1); } }