diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/TypeScriptNodeClientCodegen.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/TypeScriptNodeClientCodegen.java
index 50662a26dd..1a8e0adbc1 100644
--- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/TypeScriptNodeClientCodegen.java
+++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/TypeScriptNodeClientCodegen.java
@@ -77,7 +77,6 @@ public class TypeScriptNodeClientCodegen extends AbstractTypeScriptClientCodegen
//Files for building our lib
supportingFiles.add(new SupportingFile("package.mustache", getPackageRootDirectory(), "package.json"));
- supportingFiles.add(new SupportingFile("typings.mustache", getPackageRootDirectory(), "typings.json"));
supportingFiles.add(new SupportingFile("tsconfig.mustache", getPackageRootDirectory(), "tsconfig.json"));
}
diff --git a/modules/swagger-codegen/src/main/resources/typescript-node/package.mustache b/modules/swagger-codegen/src/main/resources/typescript-node/package.mustache
index 4b1c410428..abb089af45 100644
--- a/modules/swagger-codegen/src/main/resources/typescript-node/package.mustache
+++ b/modules/swagger-codegen/src/main/resources/typescript-node/package.mustache
@@ -4,21 +4,22 @@
"description": "NodeJS client for {{npmName}}",
"repository": "{{gitUserId}}/{{gitRepoId}}",
"main": "api.js",
+ "types": "api.d.ts",
"scripts": {
- "postinstall": "typings install",
- "clean": "rm -Rf node_modules/ typings/ *.js",
+ "clean": "rm -Rf node_modules/ *.js",
"build": "tsc",
"test": "npm run build && node client.js"
},
"author": "Swagger Codegen Contributors",
"license": "Unlicense",
"dependencies": {
- "bluebird": "^3.3.5",
- "request": "^2.72.0"
+ "bluebird": "^3.5.0",
+ "request": "^2.81.0",
+ "@types/bluebird": "*",
+ "@types/request": "*"
},
"devDependencies": {
- "typescript": "^1.8.10",
- "typings": "^0.8.1"
+ "typescript": "^2.4.2"
}{{#npmRepository}},
"publishConfig":{
"registry":"{{npmRepository}}"
diff --git a/modules/swagger-codegen/src/main/resources/typescript-node/tsconfig.mustache b/modules/swagger-codegen/src/main/resources/typescript-node/tsconfig.mustache
index e47082e11e..372624def6 100644
--- a/modules/swagger-codegen/src/main/resources/typescript-node/tsconfig.mustache
+++ b/modules/swagger-codegen/src/main/resources/typescript-node/tsconfig.mustache
@@ -8,12 +8,11 @@
"removeComments": true,
"sourceMap": true,
"noLib": false,
- "declaration": true
+ "declaration": true,
+ "lib": ["dom", "es6", "es5", "dom.iterable", "scripthost"]
},
"exclude": [
- "node_modules",
- "typings/browser",
- "typings/browser.d.ts"
+ "node_modules"
]
}
diff --git a/modules/swagger-codegen/src/main/resources/typescript-node/typings.mustache b/modules/swagger-codegen/src/main/resources/typescript-node/typings.mustache
deleted file mode 100644
index 22fcebdc23..0000000000
--- a/modules/swagger-codegen/src/main/resources/typescript-node/typings.mustache
+++ /dev/null
@@ -1,10 +0,0 @@
-{
- "ambientDependencies": {
- "core-js": "registry:dt/core-js#0.0.0+20160317120654",
- "node": "registry:dt/node#4.0.0+20160423143914"
- },
- "dependencies": {
- "bluebird": "registry:npm/bluebird#3.3.4+20160515010139",
- "request": "registry:npm/request#2.69.0+20160304121250"
- }
-}
\ No newline at end of file
diff --git a/samples/client/petstore/typescript-node/default/api.ts b/samples/client/petstore/typescript-node/default/api.ts
index b505139e8a..4a357e76d4 100644
--- a/samples/client/petstore/typescript-node/default/api.ts
+++ b/samples/client/petstore/typescript-node/default/api.ts
@@ -1,9 +1,9 @@
/**
* Swagger Petstore
- * This is a sample server Petstore server. You can find out more about Swagger at http://swagger.io or on irc.freenode.net, #swagger. For this sample, you can use the api key \"special-key\" to test the authorization filters
+ * This is a sample server Petstore server. You can find out more about Swagger at [http://swagger.io](http://swagger.io) or on [irc.freenode.net, #swagger](http://swagger.io/irc/). For this sample, you can use the api key `special-key` to test the authorization filters.
*
* OpenAPI spec version: 1.0.0
- * Contact: apiteam@wordnik.com
+ * Contact: apiteam@swagger.io
*
* NOTE: This class is auto generated by the swagger code generator program.
* https://github.com/swagger-api/swagger-codegen.git
@@ -136,6 +136,41 @@ class ObjectSerializer {
}
}
+/**
+* Describes the result of uploading an image resource
+*/
+export class ApiResponse {
+ 'code': number;
+ 'type': string;
+ 'message': string;
+
+ static discriminator = undefined;
+
+ static attributeTypeMap: Array<{name: string, baseName: string, type: string}> = [
+ {
+ "name": "code",
+ "baseName": "code",
+ "type": "number"
+ },
+ {
+ "name": "type",
+ "baseName": "type",
+ "type": "string"
+ },
+ {
+ "name": "message",
+ "baseName": "message",
+ "type": "string"
+ } ];
+
+ static getAttributeTypeMap() {
+ return ApiResponse.attributeTypeMap;
+ }
+}
+
+/**
+* A category for a pet
+*/
export class Category {
'id': number;
'name': string;
@@ -159,6 +194,9 @@ export class Category {
}
}
+/**
+* An order for a pets from the pet store
+*/
export class Order {
'id': number;
'petId': number;
@@ -216,6 +254,9 @@ export namespace Order {
Delivered = 'delivered'
}
}
+/**
+* A pet for sale in the pet store
+*/
export class Pet {
'id': number;
'category': Category;
@@ -273,6 +314,9 @@ export namespace Pet {
Sold = 'sold'
}
}
+/**
+* A tag for a pet
+*/
export class Tag {
'id': number;
'name': string;
@@ -296,6 +340,9 @@ export class Tag {
}
}
+/**
+* A User who is purchasing from the pet store
+*/
export class User {
'id': number;
'username': string;
@@ -365,6 +412,7 @@ let enumsMap = {
}
let typeMap = {
+ "ApiResponse": ApiResponse,
"Category": Category,
"Order": Order,
"Pet": Pet,
@@ -478,13 +526,18 @@ export class PetApi {
* @summary Add a new pet to the store
* @param body Pet object that needs to be added to the store
*/
- public addPet (body?: Pet) : Promise<{ response: http.ClientResponse; body?: any; }> {
+ public addPet (body: Pet) : Promise<{ response: http.ClientResponse; body?: any; }> {
const localVarPath = this.basePath + '/pet';
let queryParameters: any = {};
let headerParams: any = (Object).assign({}, this.defaultHeaders);
let formParams: any = {};
+ // verify required parameter 'body' is not null or undefined
+ if (body === null || body === undefined) {
+ throw new Error('Required parameter body was null or undefined when calling addPet.');
+ }
+
let useFormData = false;
@@ -585,13 +638,18 @@ export class PetApi {
* @summary Finds Pets by status
* @param status Status values that need to be considered for filter
*/
- public findPetsByStatus (status?: Array) : Promise<{ response: http.ClientResponse; body: Array; }> {
+ public findPetsByStatus (status: Array) : Promise<{ response: http.ClientResponse; body: Array; }> {
const localVarPath = this.basePath + '/pet/findByStatus';
let queryParameters: any = {};
let headerParams: any = (Object).assign({}, this.defaultHeaders);
let formParams: any = {};
+ // verify required parameter 'status' is not null or undefined
+ if (status === null || status === undefined) {
+ throw new Error('Required parameter status was null or undefined when calling findPetsByStatus.');
+ }
+
if (status !== undefined) {
queryParameters['status'] = ObjectSerializer.serialize(status, "Array");
}
@@ -639,13 +697,18 @@ export class PetApi {
* @summary Finds Pets by tags
* @param tags Tags to filter by
*/
- public findPetsByTags (tags?: Array) : Promise<{ response: http.ClientResponse; body: Array; }> {
+ public findPetsByTags (tags: Array) : Promise<{ response: http.ClientResponse; body: Array; }> {
const localVarPath = this.basePath + '/pet/findByTags';
let queryParameters: any = {};
let headerParams: any = (Object).assign({}, this.defaultHeaders);
let formParams: any = {};
+ // verify required parameter 'tags' is not null or undefined
+ if (tags === null || tags === undefined) {
+ throw new Error('Required parameter tags was null or undefined when calling findPetsByTags.');
+ }
+
if (tags !== undefined) {
queryParameters['tags'] = ObjectSerializer.serialize(tags, "Array");
}
@@ -689,9 +752,9 @@ export class PetApi {
});
}
/**
- * Returns a pet when ID < 10. ID > 10 or nonintegers will simulate API error conditions
+ * Returns a single pet
* @summary Find pet by ID
- * @param petId ID of pet that needs to be fetched
+ * @param petId ID of pet to return
*/
public getPetById (petId: number) : Promise<{ response: http.ClientResponse; body: Pet; }> {
const localVarPath = this.basePath + '/pet/{petId}'
@@ -720,8 +783,6 @@ export class PetApi {
this.authentications.api_key.applyToRequest(requestOptions);
- this.authentications.petstore_auth.applyToRequest(requestOptions);
-
this.authentications.default.applyToRequest(requestOptions);
if (Object.keys(formParams).length) {
@@ -751,13 +812,18 @@ export class PetApi {
* @summary Update an existing pet
* @param body Pet object that needs to be added to the store
*/
- public updatePet (body?: Pet) : Promise<{ response: http.ClientResponse; body?: any; }> {
+ public updatePet (body: Pet) : Promise<{ response: http.ClientResponse; body?: any; }> {
const localVarPath = this.basePath + '/pet';
let queryParameters: any = {};
let headerParams: any = (Object).assign({}, this.defaultHeaders);
let formParams: any = {};
+ // verify required parameter 'body' is not null or undefined
+ if (body === null || body === undefined) {
+ throw new Error('Required parameter body was null or undefined when calling updatePet.');
+ }
+
let useFormData = false;
@@ -803,7 +869,7 @@ export class PetApi {
* @param name Updated name of the pet
* @param status Updated status of the pet
*/
- public updatePetWithForm (petId: string, name?: string, status?: string) : Promise<{ response: http.ClientResponse; body?: any; }> {
+ public updatePetWithForm (petId: number, name?: string, status?: string) : Promise<{ response: http.ClientResponse; body?: any; }> {
const localVarPath = this.basePath + '/pet/{petId}'
.replace('{' + 'petId' + '}', String(petId));
let queryParameters: any = {};
@@ -868,7 +934,7 @@ export class PetApi {
* @param additionalMetadata Additional data to pass to server
* @param file file to upload
*/
- public uploadFile (petId: number, additionalMetadata?: string, file?: Buffer) : Promise<{ response: http.ClientResponse; body?: any; }> {
+ public uploadFile (petId: number, additionalMetadata?: string, file?: Buffer) : Promise<{ response: http.ClientResponse; body: ApiResponse; }> {
const localVarPath = this.basePath + '/pet/{petId}/uploadImage'
.replace('{' + 'petId' + '}', String(petId));
let queryParameters: any = {};
@@ -913,11 +979,12 @@ export class PetApi {
requestOptions.form = formParams;
}
}
- return new Promise<{ response: http.ClientResponse; body?: any; }>((resolve, reject) => {
+ return new Promise<{ response: http.ClientResponse; body: ApiResponse; }>((resolve, reject) => {
request(requestOptions, (error, response, body) => {
if (error) {
reject(error);
} else {
+ body = ObjectSerializer.deserialize(body, "ApiResponse");
if (response.statusCode >= 200 && response.statusCode <= 299) {
resolve({ response: response, body: body });
} else {
@@ -1086,7 +1153,7 @@ export class StoreApi {
* @summary Find purchase order by ID
* @param orderId ID of pet that needs to be fetched
*/
- public getOrderById (orderId: string) : Promise<{ response: http.ClientResponse; body: Order; }> {
+ public getOrderById (orderId: number) : Promise<{ response: http.ClientResponse; body: Order; }> {
const localVarPath = this.basePath + '/store/order/{orderId}'
.replace('{' + 'orderId' + '}', String(orderId));
let queryParameters: any = {};
@@ -1140,13 +1207,18 @@ export class StoreApi {
* @summary Place an order for a pet
* @param body order placed for purchasing the pet
*/
- public placeOrder (body?: Order) : Promise<{ response: http.ClientResponse; body: Order; }> {
+ public placeOrder (body: Order) : Promise<{ response: http.ClientResponse; body: Order; }> {
const localVarPath = this.basePath + '/store/order';
let queryParameters: any = {};
let headerParams: any = (Object).assign({}, this.defaultHeaders);
let formParams: any = {};
+ // verify required parameter 'body' is not null or undefined
+ if (body === null || body === undefined) {
+ throw new Error('Required parameter body was null or undefined when calling placeOrder.');
+ }
+
let useFormData = false;
@@ -1241,13 +1313,18 @@ export class UserApi {
* @summary Create user
* @param body Created user object
*/
- public createUser (body?: User) : Promise<{ response: http.ClientResponse; body?: any; }> {
+ public createUser (body: User) : Promise<{ response: http.ClientResponse; body?: any; }> {
const localVarPath = this.basePath + '/user';
let queryParameters: any = {};
let headerParams: any = (Object).assign({}, this.defaultHeaders);
let formParams: any = {};
+ // verify required parameter 'body' is not null or undefined
+ if (body === null || body === undefined) {
+ throw new Error('Required parameter body was null or undefined when calling createUser.');
+ }
+
let useFormData = false;
@@ -1289,13 +1366,18 @@ export class UserApi {
* @summary Creates list of users with given input array
* @param body List of user object
*/
- public createUsersWithArrayInput (body?: Array) : Promise<{ response: http.ClientResponse; body?: any; }> {
+ public createUsersWithArrayInput (body: Array) : Promise<{ response: http.ClientResponse; body?: any; }> {
const localVarPath = this.basePath + '/user/createWithArray';
let queryParameters: any = {};
let headerParams: any = (Object).assign({}, this.defaultHeaders);
let formParams: any = {};
+ // verify required parameter 'body' is not null or undefined
+ if (body === null || body === undefined) {
+ throw new Error('Required parameter body was null or undefined when calling createUsersWithArrayInput.');
+ }
+
let useFormData = false;
@@ -1337,13 +1419,18 @@ export class UserApi {
* @summary Creates list of users with given input array
* @param body List of user object
*/
- public createUsersWithListInput (body?: Array) : Promise<{ response: http.ClientResponse; body?: any; }> {
+ public createUsersWithListInput (body: Array) : Promise<{ response: http.ClientResponse; body?: any; }> {
const localVarPath = this.basePath + '/user/createWithList';
let queryParameters: any = {};
let headerParams: any = (Object).assign({}, this.defaultHeaders);
let formParams: any = {};
+ // verify required parameter 'body' is not null or undefined
+ if (body === null || body === undefined) {
+ throw new Error('Required parameter body was null or undefined when calling createUsersWithListInput.');
+ }
+
let useFormData = false;
@@ -1493,13 +1580,23 @@ export class UserApi {
* @param username The user name for login
* @param password The password for login in clear text
*/
- public loginUser (username?: string, password?: string) : Promise<{ response: http.ClientResponse; body: string; }> {
+ public loginUser (username: string, password: string) : Promise<{ response: http.ClientResponse; body: string; }> {
const localVarPath = this.basePath + '/user/login';
let queryParameters: any = {};
let headerParams: any = (Object).assign({}, this.defaultHeaders);
let formParams: any = {};
+ // verify required parameter 'username' is not null or undefined
+ if (username === null || username === undefined) {
+ throw new Error('Required parameter username was null or undefined when calling loginUser.');
+ }
+
+ // verify required parameter 'password' is not null or undefined
+ if (password === null || password === undefined) {
+ throw new Error('Required parameter password was null or undefined when calling loginUser.');
+ }
+
if (username !== undefined) {
queryParameters['username'] = ObjectSerializer.serialize(username, "string");
}
@@ -1596,7 +1693,7 @@ export class UserApi {
* @param username name that need to be deleted
* @param body Updated user object
*/
- public updateUser (username: string, body?: User) : Promise<{ response: http.ClientResponse; body?: any; }> {
+ public updateUser (username: string, body: User) : Promise<{ response: http.ClientResponse; body?: any; }> {
const localVarPath = this.basePath + '/user/{username}'
.replace('{' + 'username' + '}', String(username));
let queryParameters: any = {};
@@ -1609,6 +1706,11 @@ export class UserApi {
throw new Error('Required parameter username was null or undefined when calling updateUser.');
}
+ // verify required parameter 'body' is not null or undefined
+ if (body === null || body === undefined) {
+ throw new Error('Required parameter body was null or undefined when calling updateUser.');
+ }
+
let useFormData = false;