Skip to content

Commit 3641415

Browse files
authored
Merge pull request #116 from acacode/next
Release 4.0.3
2 parents a2a5fb7 + 90aae90 commit 3641415

File tree

9 files changed

+34
-9
lines changed

9 files changed

+34
-9
lines changed

CHANGELOG.md

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

3+
# 4.0.3
4+
5+
Features:
6+
- `--disableStrictSSL` option for disable strict SSL statement with fetching swagger schema. (Thanks @kel666 for PR with feature request)
7+
This option fix problem #114
8+
39
# 4.0.2
410

511
Fixes:

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ Options:
5454
--module-name-index <number> determines which path index should be used for routes separation (default: 0)
5555
(example: GET:/fruites/getFruit -> index:0 -> moduleName -> fruites)
5656
--modular generate separated files for http client, data contracts, and routes (default: false)
57+
--disableStrictSSL disabled strict SSL (default: false)
5758
-h, --help display help for command
5859
```
5960

index.d.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,10 @@ interface GenerateApiParams {
6060
* determines which path index should be used for routes separation
6161
*/
6262
moduleNameIndex?: number;
63+
/**
64+
* disabled SSL check
65+
*/
66+
disableStrictSSL?: boolean;
6367
/**
6468
* generate separated files for http client, data contracts, and routes (default: false)
6569
*/
@@ -207,6 +211,7 @@ export interface GenerateApiConfiguration {
207211
componentsMap: Record<string, SchemaComponent>;
208212
convertedFromSwagger2: boolean;
209213
moduleNameIndex: number;
214+
disableStrictSSSL: boolean;
210215
extractRequestParams: boolean;
211216
fileNames: {
212217
dataContracts: string;

index.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,8 @@ program
5959
"--module-name-index <number>",
6060
"determines which path index should be used for routes separation (example: GET:/fruites/getFruit -> index:0 -> moduleName -> fruites)",
6161
0,
62-
);
62+
)
63+
.option("--disableStrictSSL", "disabled strict SSL", false);
6364

6465
program.parse(process.argv);
6566

@@ -78,6 +79,7 @@ const {
7879
moduleNameIndex,
7980
extractRequestParams,
8081
enumNamesAsValues,
82+
disableStrictSSL,
8183
} = program;
8284

8385
generateApi({
@@ -96,4 +98,5 @@ generateApi({
9698
toJS: !!js,
9799
enumNamesAsValues: enumNamesAsValues,
98100
moduleNameIndex: +(moduleNameIndex || 0),
101+
disableStrictSSL: !!disableStrictSSL,
99102
});

package-lock.json

Lines changed: 2 additions & 2 deletions
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": "4.0.2",
3+
"version": "4.0.3",
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 --extract-request-params --enum-names-as-values",

src/config.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ const config = {
2626

2727
/** url index from paths used for merging into modules */
2828
moduleNameIndex: 0,
29+
disableStrictSSL: false,
2930
extractRequestParams: false,
3031
fileNames: {
3132
dataContracts: "data-contracts",

src/index.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ module.exports = {
4141
hooks: rawHooks,
4242
extraTemplates,
4343
enumNamesAsValues,
44+
disableStrictSSL = config.disableStrictSSL,
4445
}) =>
4546
new Promise((resolve, reject) => {
4647
addToConfig({
@@ -55,8 +56,9 @@ module.exports = {
5556
extractRequestParams,
5657
hooks: _.merge(config.hooks, rawHooks || {}),
5758
enumNamesAsValues,
59+
disableStrictSSL,
5860
});
59-
(spec ? convertSwaggerObject(spec) : getSwaggerObject(input, url))
61+
(spec ? convertSwaggerObject(spec) : getSwaggerObject(input, url, disableStrictSSL))
6062
.then(({ usageSchema, originalSchema }) => {
6163
const templatesToRender = getTemplates(config);
6264

src/swagger.js

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ const _ = require("lodash");
22
const yaml = require("js-yaml");
33
const axios = require("axios");
44
const converter = require("swagger2openapi");
5+
const https = require("https");
56
const { addToConfig } = require("./config");
67
const { pathIsExist, getFileContent } = require("./files");
78

@@ -15,19 +16,25 @@ const parseSwaggerFile = (file) => {
1516
}
1617
};
1718

18-
const getSwaggerFile = (pathToSwagger, urlToSwagger) =>
19+
const getSwaggerFile = (pathToSwagger, urlToSwagger, disableStrictSSL) =>
1920
new Promise((resolve) => {
2021
if (pathIsExist(pathToSwagger)) {
2122
console.log(`✨ try to get swagger by path "${pathToSwagger}"`);
2223
resolve(getFileContent(pathToSwagger));
2324
} else {
2425
console.log(`✨ try to get swagger by url "${urlToSwagger}"`);
25-
axios.get(urlToSwagger).then((res) => resolve(res.data));
26+
let agent = undefined;
27+
if (disableStrictSSL) {
28+
agent = new https.Agent({
29+
rejectUnauthorized: false,
30+
});
31+
}
32+
axios.get(urlToSwagger, { httpsAgent: agent }).then((res) => resolve(res.data));
2633
}
2734
});
2835

29-
const getSwaggerObject = (pathToSwagger, urlToSwagger) =>
30-
getSwaggerFile(pathToSwagger, urlToSwagger).then((file) =>
36+
const getSwaggerObject = (pathToSwagger, urlToSwagger, disableStrictSSL) =>
37+
getSwaggerFile(pathToSwagger, urlToSwagger, disableStrictSSL).then((file) =>
3138
convertSwaggerObject(parseSwaggerFile(file)),
3239
);
3340

0 commit comments

Comments
 (0)