swagger-api / swagger-codegen

swagger-codegen contains a template-driven engine to generate documentation, API clients and server stubs in different languages by parsing your OpenAPI / Swagger definition.
http://swagger.io
Apache License 2.0
16.9k stars 6.03k forks source link

[typescript][node] Date format is not serialized to ISO string format #9571

Open zeeLondon opened 5 years ago

zeeLondon commented 5 years ago
Description

When I generate client classes for language typescript-node (-l typescript-node ) the Date is serialized using toString() method and resulting in incorrect format. How can I change the generated client to use ISO format - toISOString()?

Swagger-codegen version

2.4.3

Swagger declaration file content or url

https://api-uat.codat.io/swagger/docs/v1

Command line used for generation

java -jar swagger-codegen-cli.jar generate -i https://api-uat.codat.io/swagger/docs/v1 -l typescript-node -o d:\swagger --additional-properties supportsES6=true

Line 82 in the client with toString()

public static serialize(data: any, type: string) { if (data == undefined) { return data; } else if (primitives.indexOf(type.toLowerCase()) !== -1) { return data; } else if (type.lastIndexOf("Array<", 0) === 0) { // string.startsWith pre es6 let subType: string = type.replace("Array<", ""); // Array => Type> subType = subType.substring(0, subType.length - 1); // Type> => Type let transformedData: any[] = []; for (let index in data) { let date = data[index]; transformedData.push(ObjectSerializer.serialize(date, subType)); } return transformedData; } else if (type === "Date") { return data.toString();

michalzubkowicz commented 4 years ago

Hi @zeeLondon . You can edit template at modules/swagger-codegen/src/main/resources/typescript-node and at line 73, just change toString to toISOString, after that build swagger codegen by mvn package