Skip to content

Commit 7a23584

Browse files
authored
Release 1.11.0 (#66)
* chore: update tsoa-odd-types schema * feat: improve the naming of data contract types (remove special characters) * bump: up swagger-typescript-api version to 1.11.0
1 parent 4b0ace2 commit 7a23584

17 files changed

+2019
-2007
lines changed

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
node_modules
22
.vscode
3-
swagger-test-cli.*
3+
swagger-test-cli.*
4+
dist

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
11
# next release
22

33

4+
# 1.11.0
5+
6+
Features:
7+
- Improve the naming of model types ([#65 issue](https://github.com/acacode/swagger-typescript-api/issues/65))
8+
49
# 1.10.0
510

611
Features:

package-lock.json

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "swagger-typescript-api",
3-
"version": "1.10.0",
3+
"version": "1.11.0",
44
"description": "Create typescript api module from swagger schema",
55
"scripts": {
66
"cli:json": "node index.js -r -d -p ./swagger-test-cli.json -n swagger-test-cli.ts",

src/modelNames.js

Lines changed: 23 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,35 @@
1-
const _ = require("lodash")
1+
const _ = require("lodash");
22

3-
const isValidName = name => /^([A-Za-z$_]{1,})$/g.test(name)
3+
const isValidName = (name) => /^([A-Za-z$_]{1,})$/g.test(name);
44

5-
const checkAndRenameModelName = name => {
5+
const formattedModelNamesMap = new Map();
66

7-
if (!isValidName(name)) {
7+
const checkAndRenameModelName = (name) => {
8+
if (formattedModelNamesMap.has(name)) {
9+
return formattedModelNamesMap.get(name);
10+
}
811

12+
if (!isValidName(name)) {
913
// specific replaces for TSOA 3.x
10-
if (name.includes('.'))
14+
if (name.includes("."))
1115
name = name
12-
.replace(/Exclude_keyof[A-Za-z]{1,}/g, match => 'ExcludeKeys')
13-
.replace(/%22\~AND\~%22/g, 'And')
14-
.replace(/%22\~OR\~%22/g, 'Or')
15-
.replace(/(\.?%22)|\./g, '_')
16-
.replace(/__+$/, '');
17-
18-
if (name.includes('-'))
19-
name = _.startCase(name).replace(/ /g, '')
16+
.replace(/Exclude_keyof[A-Za-z]{1,}/g, (match) => "ExcludeKeys")
17+
.replace(/%22\~AND\~%22/g, "And")
18+
.replace(/%22\~OR\~%22/g, "Or")
19+
.replace(/(\.?%22)|\./g, "_")
20+
.replace(/__+$/, "");
21+
22+
if (name.includes("-")) name = _.startCase(name).replace(/ /g, "");
2023
}
2124

22-
return name;
23-
}
25+
const formattedModelName = _.replace(_.startCase(name), /\s/g, "");
26+
27+
formattedModelNamesMap.set(name, formattedModelName);
28+
29+
return formattedModelName;
30+
};
2431

2532
module.exports = {
2633
checkAndRenameModelName,
2734
isValidName,
28-
}
35+
};

src/routes.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ const getTypeFromRequestInfo = (requestInfo, parsedSchemas, operationId, content
4949
const { content } = parseSchema(schema, "none", inlineExtraFormatters);
5050
const foundedSchemaByName = _.find(
5151
parsedSchemas,
52-
(parsedSchema) => parsedSchema.name === content,
52+
(parsedSchema) => checkAndRenameModelName(parsedSchema.name) === content,
5353
);
5454
const foundSchemaByContent = _.find(parsedSchemas, (parsedSchema) =>
5555
_.isEqual(parsedSchema.content, content),

src/typeFormatters.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,9 @@ const formatters = {
4242

4343
return content;
4444
},
45-
primitive: (content) => checkAndRenameModelName(content),
45+
primitive: (content) => {
46+
return content;
47+
},
4648
};
4749

4850
const inlineExtraFormatters = {

0 commit comments

Comments
 (0)