swagger-typescript-api 13.0.0-experimental-1 → 13.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -21
- package/README.md +22 -12
- package/cli/constants.js +3 -3
- package/cli/execute.js +52 -31
- package/cli/index.d.ts +1 -2
- package/cli/index.js +18 -17
- package/cli/operations/display-help.js +51 -29
- package/cli/parse-args.js +3 -3
- package/cli/process-option.js +28 -20
- package/index.d.ts +113 -8
- package/index.js +158 -135
- package/package.json +35 -30
- package/src/code-formatter.js +28 -13
- package/src/code-gen-process.js +357 -259
- package/src/commands/generate-templates/configuration.js +2 -2
- package/src/commands/generate-templates/index.js +1 -2
- package/src/commands/generate-templates/templates-gen-process.js +62 -35
- package/src/component-type-name-resolver.js +44 -0
- package/src/configuration.js +167 -95
- package/src/constants.js +28 -22
- package/src/index.js +3 -4
- package/src/schema-components-map.js +39 -23
- package/src/schema-parser/base-schema-parsers/array.js +43 -0
- package/src/schema-parser/base-schema-parsers/complex.js +51 -0
- package/src/schema-parser/base-schema-parsers/discriminator.js +301 -0
- package/src/schema-parser/base-schema-parsers/enum.js +158 -0
- package/src/schema-parser/base-schema-parsers/object.js +105 -0
- package/src/schema-parser/base-schema-parsers/primitive.js +63 -0
- package/src/schema-parser/complex-schema-parsers/all-of.js +26 -0
- package/src/schema-parser/complex-schema-parsers/any-of.js +34 -0
- package/src/schema-parser/complex-schema-parsers/not.js +9 -0
- package/src/schema-parser/complex-schema-parsers/one-of.js +27 -0
- package/src/schema-parser/mono-schema-parser.js +48 -0
- package/src/schema-parser/schema-formatters.js +69 -60
- package/src/schema-parser/schema-parser-fabric.js +131 -0
- package/src/schema-parser/schema-parser.js +208 -427
- package/src/schema-parser/schema-utils.js +123 -58
- package/src/schema-parser/util/enum-key-resolver.js +26 -0
- package/src/schema-routes/schema-routes.js +1225 -0
- package/src/schema-routes/util/specific-arg-name-resolver.js +26 -0
- package/src/schema-walker.js +93 -0
- package/src/swagger-schema-resolver.js +61 -28
- package/src/templates-worker.js +240 -0
- package/src/translators/javascript.js +83 -0
- package/src/translators/translator.js +35 -0
- package/src/type-name-formatter.js +33 -18
- package/src/util/file-system.js +30 -14
- package/src/util/id.js +2 -2
- package/src/util/internal-case.js +1 -1
- package/src/util/logger.js +46 -20
- package/src/util/name-resolver.js +52 -60
- package/src/util/object-assign.js +7 -3
- package/src/util/pascal-case.js +1 -1
- package/src/util/request.js +5 -5
- package/src/util/sort-by-property.js +17 -0
- package/templates/README.md +17 -17
- package/templates/base/README.md +7 -7
- package/templates/base/data-contract-jsdoc.ejs +37 -37
- package/templates/base/data-contracts.ejs +40 -27
- package/templates/base/enum-data-contract.ejs +12 -12
- package/templates/base/http-client.ejs +3 -3
- package/templates/base/http-clients/axios-http-client.ejs +139 -138
- package/templates/base/http-clients/fetch-http-client.ejs +224 -224
- package/templates/base/interface-data-contract.ejs +10 -10
- package/templates/base/object-field-jsdoc.ejs +28 -28
- package/templates/base/route-docs.ejs +30 -30
- package/templates/base/route-name.ejs +42 -42
- package/templates/base/route-type.ejs +22 -21
- package/templates/base/type-data-contract.ejs +15 -15
- package/templates/default/README.md +6 -6
- package/templates/default/api.ejs +69 -68
- package/templates/default/procedure-call.ejs +100 -100
- package/templates/default/route-types.ejs +32 -32
- package/templates/modular/README.md +6 -6
- package/templates/modular/api.ejs +28 -28
- package/templates/modular/procedure-call.ejs +100 -100
- package/templates/modular/route-types.ejs +18 -18
- package/src/schema-parser/schema-processor.js +0 -79
- package/src/schema-parser/schema-routes.js +0 -950
- package/src/templates.js +0 -182
- package/src/translators/JavaScript.js +0 -60
package/src/code-formatter.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
const _ = require(
|
|
2
|
-
const ts = require(
|
|
3
|
-
const prettier = require(
|
|
1
|
+
const _ = require('lodash');
|
|
2
|
+
const ts = require('typescript');
|
|
3
|
+
const prettier = require('prettier');
|
|
4
4
|
|
|
5
5
|
class CodeFormatter {
|
|
6
6
|
/**
|
|
@@ -8,18 +8,18 @@ class CodeFormatter {
|
|
|
8
8
|
*/
|
|
9
9
|
config;
|
|
10
10
|
|
|
11
|
-
constructor(config) {
|
|
11
|
+
constructor({ config }) {
|
|
12
12
|
this.config = config;
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
removeUnusedImports = (content) => {
|
|
16
|
-
const tempFileName =
|
|
16
|
+
const tempFileName = 'file.ts';
|
|
17
17
|
|
|
18
18
|
const host = new TsLanguageServiceHost(tempFileName, content);
|
|
19
19
|
const languageService = ts.createLanguageService(host);
|
|
20
20
|
|
|
21
21
|
const fileTextChanges = languageService.organizeImports(
|
|
22
|
-
{ type:
|
|
22
|
+
{ type: 'file', fileName: tempFileName },
|
|
23
23
|
{ newLineCharacter: ts.sys.newLine },
|
|
24
24
|
)[0];
|
|
25
25
|
|
|
@@ -27,7 +27,9 @@ class CodeFormatter {
|
|
|
27
27
|
return _.reduceRight(
|
|
28
28
|
fileTextChanges.textChanges,
|
|
29
29
|
(content, { span, newText }) =>
|
|
30
|
-
`${content.slice(0, span.start)}${newText}${content.slice(
|
|
30
|
+
`${content.slice(0, span.start)}${newText}${content.slice(
|
|
31
|
+
span.start + span.length,
|
|
32
|
+
)}`,
|
|
31
33
|
content,
|
|
32
34
|
);
|
|
33
35
|
}
|
|
@@ -35,16 +37,27 @@ class CodeFormatter {
|
|
|
35
37
|
return content;
|
|
36
38
|
};
|
|
37
39
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
+
/**
|
|
41
|
+
* @param content
|
|
42
|
+
* @returns {Promise<string>}
|
|
43
|
+
*/
|
|
44
|
+
prettierFormat = async (content) => {
|
|
45
|
+
const formatted = await prettier.format(
|
|
46
|
+
content,
|
|
47
|
+
this.config.prettierOptions,
|
|
48
|
+
);
|
|
49
|
+
return formatted;
|
|
40
50
|
};
|
|
41
51
|
|
|
42
|
-
formatCode = (
|
|
52
|
+
formatCode = async (
|
|
53
|
+
code,
|
|
54
|
+
{ removeUnusedImports = true, prettierFormat = true } = {},
|
|
55
|
+
) => {
|
|
43
56
|
if (removeUnusedImports) {
|
|
44
57
|
code = this.removeUnusedImports(code);
|
|
45
58
|
}
|
|
46
59
|
if (prettierFormat) {
|
|
47
|
-
code = this.prettierFormat(code);
|
|
60
|
+
code = await this.prettierFormat(code);
|
|
48
61
|
}
|
|
49
62
|
return code;
|
|
50
63
|
};
|
|
@@ -58,13 +71,15 @@ class TsLanguageServiceHost {
|
|
|
58
71
|
fileName,
|
|
59
72
|
content,
|
|
60
73
|
compilerOptions: tsconfig
|
|
61
|
-
? ts.convertCompilerOptionsFromJson(
|
|
74
|
+
? ts.convertCompilerOptionsFromJson(
|
|
75
|
+
ts.readConfigFile(tsconfig, ts.sys.readFile).config.compilerOptions,
|
|
76
|
+
).options
|
|
62
77
|
: ts.getDefaultCompilerOptions(),
|
|
63
78
|
});
|
|
64
79
|
}
|
|
65
80
|
|
|
66
81
|
getNewLine() {
|
|
67
|
-
return
|
|
82
|
+
return 'newLine' in ts.sys ? ts.sys.newLine : '\n';
|
|
68
83
|
}
|
|
69
84
|
getScriptFileNames() {
|
|
70
85
|
return [this.fileName];
|