@automatons/typescript-client-axios 1.0.0 → 1.0.4
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/extractors/api.js +2 -1
- package/extractors/api.js.map +1 -1
- package/generator/generate.d.ts.map +1 -1
- package/generator/generate.js +11 -9
- package/generator/generate.js.map +1 -1
- package/generator/index.js +1 -1
- package/generator/register.d.ts.map +1 -1
- package/generator/register.js +25 -4
- package/generator/register.js.map +1 -1
- package/generator/setup.d.ts.map +1 -1
- package/generator/setup.js +11 -4
- package/generator/setup.js.map +1 -1
- package/generator/writer.d.ts +1 -1
- package/generator/writer.d.ts.map +1 -1
- package/generator/writer.js +5 -5
- package/generator/writer.js.map +1 -1
- package/index.js +1 -1
- package/index.js.map +1 -1
- package/package.json +3 -3
- package/templates/apis/abstractApi.hbs +10 -6
- package/templates/apis/api.hbs +3 -3
- package/templates/apis/partials/class/arguments.hbs +6 -6
- package/templates/apis/partials/class/variables.hbs +1 -1
- package/templates/apis/partials/class.hbs +6 -6
- package/templates/apis/partials/config/arguments.hbs +6 -6
- package/templates/apis/partials/config/request/cookies.hbs +5 -2
- package/templates/apis/partials/config/request.hbs +2 -2
- package/templates/apis/partials/config.hbs +6 -6
- package/templates/config.hbs +3 -3
package/extractors/api.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.extractApiMeta = void 0;
|
|
4
4
|
const isAffectPath = (path) => ['post', 'patch', 'put'].includes(path.method);
|
|
5
|
-
|
|
5
|
+
const extractApiMeta = (api) => {
|
|
6
6
|
const hasTemplate = api.servers.some(server => { var _a; return (_a = server.values) === null || _a === void 0 ? void 0 : _a.length; })
|
|
7
7
|
|| api.paths.some(path => { var _a; return (_a = path.parameters) === null || _a === void 0 ? void 0 : _a.length; })
|
|
8
8
|
|| api.paths.some(path => { var _a; return (_a = path.headers) === null || _a === void 0 ? void 0 : _a.length; });
|
|
@@ -11,4 +11,5 @@ exports.extractApiMeta = (api) => {
|
|
|
11
11
|
const hasFormData = api.paths.some(path => { var _a; return isAffectPath(path) ? (_a = path.forms) === null || _a === void 0 ? void 0 : _a.length : false; });
|
|
12
12
|
return { hasQuery, hasTemplate, hasFormData };
|
|
13
13
|
};
|
|
14
|
+
exports.extractApiMeta = extractApiMeta;
|
|
14
15
|
//# sourceMappingURL=api.js.map
|
package/extractors/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/extractors/api.ts"],"names":[],"mappings":";;;AAEA,MAAM,YAAY,GAAG,CAAC,IAAU,EAAsB,EAAE,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/extractors/api.ts"],"names":[],"mappings":";;;AAEA,MAAM,YAAY,GAAG,CAAC,IAAU,EAAsB,EAAE,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAEjG,MAAM,cAAc,GAAG,CAAC,GAAQ,EAAE,EAAE;IACzC,MAAM,WAAW,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,WAAC,OAAA,MAAA,MAAM,CAAC,MAAM,0CAAE,MAAM,CAAA,EAAA,CAAC;WAChE,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,WAAC,OAAA,MAAA,IAAI,CAAC,UAAU,0CAAE,MAAM,CAAA,EAAA,CAAC;WAC/C,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,WAAC,OAAA,MAAA,IAAI,CAAC,OAAO,0CAAE,MAAM,CAAA,EAAA,CAAC,CAAC;IAClD,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,WAAC,OAAA,MAAA,IAAI,CAAC,OAAO,0CAAE,MAAM,CAAA,EAAA,CAAC;WACxD,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,WAAC,OAAA,MAAA,IAAI,CAAC,OAAO,0CAAE,MAAM,CAAA,EAAA,CAAC,CAAC;IAClD,MAAM,WAAW,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,WAAC,OAAA,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAA,IAAI,CAAC,KAAK,0CAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAA,EAAA,CAAC,CAAC;IAC5F,OAAO,EAAC,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAC,CAAC;AAC9C,CAAC,CAAC;AARW,QAAA,cAAc,kBAQzB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../src/generator/generate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,iBAAiB,EAAE,OAAO,EAAC,MAAM,mBAAmB,CAAC;AAO7D,eAAO,MAAM,QAAQ,YAAmB,OAAO,YAAY,iBAAiB,
|
|
1
|
+
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../src/generator/generate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,iBAAiB,EAAE,OAAO,EAAC,MAAM,mBAAmB,CAAC;AAO7D,eAAO,MAAM,QAAQ,YAAmB,OAAO,YAAY,iBAAiB,oBAkC3E,CAAC"}
|
package/generator/generate.js
CHANGED
|
@@ -5,25 +5,27 @@ const parser_1 = require("@automatons/parser");
|
|
|
5
5
|
const writer_1 = require("./writer");
|
|
6
6
|
const setup_1 = require("./setup");
|
|
7
7
|
const api_1 = require("../extractors/api");
|
|
8
|
-
|
|
8
|
+
const generate = async (openapi, settings) => {
|
|
9
9
|
const { outDir } = settings;
|
|
10
10
|
const promises = [];
|
|
11
|
-
await setup_1.setup();
|
|
12
|
-
const { models, apis, securities } = await parser_1.parser(openapi, settings);
|
|
11
|
+
await (0, setup_1.setup)();
|
|
12
|
+
const { models, apis, securities } = await (0, parser_1.parser)(openapi, settings);
|
|
13
13
|
if (models.length) {
|
|
14
|
-
promises.push(writer_1.write('models/index.hbs', [outDir, 'models', 'index.ts'], models));
|
|
14
|
+
promises.push((0, writer_1.write)('models/index.hbs', [outDir, 'models', 'index.ts'], models));
|
|
15
15
|
const modelPromises = models
|
|
16
|
-
.map(model => writer_1.write('models/model.hbs', [outDir, 'models', `${model.filename}.ts`], model));
|
|
16
|
+
.map(model => (0, writer_1.write)('models/model.hbs', [outDir, 'models', `${model.filename}.ts`], model));
|
|
17
17
|
promises.push(...modelPromises);
|
|
18
18
|
}
|
|
19
19
|
if (apis.length) {
|
|
20
|
-
promises.push(writer_1.write('apis/index.hbs', [outDir, 'apis', 'index.ts'], apis), writer_1.write('apis/abstractApi.hbs', [outDir, 'apis', 'abstractApi.ts'], { securities }));
|
|
21
|
-
promises.push(...apis.map(api => writer_1.write('apis/api.hbs', [outDir, 'apis', `${api.filename}.ts`], {
|
|
20
|
+
promises.push((0, writer_1.write)('apis/index.hbs', [outDir, 'apis', 'index.ts'], apis), (0, writer_1.write)('apis/abstractApi.hbs', [outDir, 'apis', 'abstractApi.ts'], { securities }));
|
|
21
|
+
promises.push(...apis.map(api => (0, writer_1.write)('apis/api.hbs', [outDir, 'apis', `${api.filename}.ts`], {
|
|
22
22
|
api,
|
|
23
|
-
meta: api_1.extractApiMeta(api)
|
|
23
|
+
meta: (0, api_1.extractApiMeta)(api),
|
|
24
|
+
securities
|
|
24
25
|
})));
|
|
25
26
|
}
|
|
26
|
-
promises.push(writer_1.write('index.hbs', [outDir, 'index.ts'], { api: apis.length, model: models.length }), writer_1.write('config.hbs', [outDir, 'config.ts'], { securities }), writer_1.write('utils/index.hbs', [outDir, 'utils', 'index.ts']), writer_1.write('utils/template.hbs', [outDir, 'utils', 'template.ts']), writer_1.write('utils/query.hbs', [outDir, 'utils', 'query.ts']), writer_1.write('utils/formData.hbs', [outDir, 'utils', 'formData.ts']));
|
|
27
|
+
promises.push((0, writer_1.write)('index.hbs', [outDir, 'index.ts'], { api: apis.length, model: models.length }), (0, writer_1.write)('config.hbs', [outDir, 'config.ts'], { securities }), (0, writer_1.write)('utils/index.hbs', [outDir, 'utils', 'index.ts']), (0, writer_1.write)('utils/template.hbs', [outDir, 'utils', 'template.ts']), (0, writer_1.write)('utils/query.hbs', [outDir, 'utils', 'query.ts']), (0, writer_1.write)('utils/formData.hbs', [outDir, 'utils', 'formData.ts']));
|
|
27
28
|
return Promise.all(promises);
|
|
28
29
|
};
|
|
30
|
+
exports.generate = generate;
|
|
29
31
|
//# sourceMappingURL=generate.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/generator/generate.ts"],"names":[],"mappings":";;;AACA,+CAA0C;AAC1C,qCAA+B;AAC/B,mCAA8B;AAC9B,2CAAiD;
|
|
1
|
+
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/generator/generate.ts"],"names":[],"mappings":";;;AACA,+CAA0C;AAC1C,qCAA+B;AAC/B,mCAA8B;AAC9B,2CAAiD;AAG1C,MAAM,QAAQ,GAAG,KAAK,EAAE,OAAgB,EAAE,QAA2B,EAAE,EAAE;IAC9E,MAAM,EAAC,MAAM,EAAC,GAAG,QAAQ,CAAC;IAC1B,MAAM,QAAQ,GAAoB,EAAE,CAAC;IACrC,MAAM,IAAA,aAAK,GAAE,CAAC;IAEd,MAAM,EAAC,MAAM,EAAE,IAAI,EAAE,UAAU,EAAC,GAAG,MAAM,IAAA,eAAM,EAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACnE,IAAI,MAAM,CAAC,MAAM,EAAE;QACjB,QAAQ,CAAC,IAAI,CAAC,IAAA,cAAK,EAAC,kBAAkB,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,CAAC,CAAA;QAChF,MAAM,aAAa,GAAG,MAAM;aACzB,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,IAAA,cAAK,EAAC,kBAAkB,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC,QAAQ,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;QAC9F,QAAQ,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,CAAA;KAChC;IAED,IAAI,IAAI,CAAC,MAAM,EAAE;QACf,QAAQ,CAAC,IAAI,CACX,IAAA,cAAK,EAAC,gBAAgB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,IAAI,CAAC,EAC3D,IAAA,cAAK,EAAC,sBAAsB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,EAAC,UAAU,EAAC,CAAC,CAChF,CAAC;QACF,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAA,cAAK,EAAC,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,QAAQ,KAAK,CAAC,EAAE;YAC7F,GAAG;YACH,IAAI,EAAE,IAAA,oBAAc,EAAC,GAAG,CAAC;YACzB,UAAU;SACX,CAAC,CAAC,CAAC,CAAC;KACN;IAED,QAAQ,CAAC,IAAI,CACX,IAAA,cAAK,EAAC,WAAW,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,EAAC,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAC,CAAC,EAClF,IAAA,cAAK,EAAC,YAAY,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,EAAC,UAAU,EAAC,CAAC,EACxD,IAAA,cAAK,EAAC,iBAAiB,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,EACvD,IAAA,cAAK,EAAC,oBAAoB,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC,EAC7D,IAAA,cAAK,EAAC,iBAAiB,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,EACvD,IAAA,cAAK,EAAC,oBAAoB,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC,CAC9D,CAAC;IACF,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;AAC9B,CAAC,CAAC;AAlCW,QAAA,QAAQ,YAkCnB"}
|
package/generator/index.js
CHANGED
|
@@ -7,7 +7,7 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
|
|
|
7
7
|
o[k2] = m[k];
|
|
8
8
|
}));
|
|
9
9
|
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
10
|
-
for (var p in m) if (p !== "default" && !
|
|
10
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
11
11
|
};
|
|
12
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
13
|
__exportStar(require("./generate"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../src/generator/register.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../src/generator/register.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,QAAQ,uBAUhB,CAAC"}
|
package/generator/register.js
CHANGED
|
@@ -1,4 +1,23 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
+
}) : function(o, v) {
|
|
12
|
+
o["default"] = v;
|
|
13
|
+
});
|
|
14
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
+
if (mod && mod.__esModule) return mod;
|
|
16
|
+
var result = {};
|
|
17
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
+
__setModuleDefault(result, mod);
|
|
19
|
+
return result;
|
|
20
|
+
};
|
|
2
21
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
22
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
23
|
};
|
|
@@ -6,13 +25,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
25
|
exports.register = void 0;
|
|
7
26
|
const fs_extra_1 = require("fs-extra");
|
|
8
27
|
const glob_1 = require("glob");
|
|
9
|
-
const handlebars_1 = require("handlebars");
|
|
28
|
+
const handlebars_1 = __importStar(require("handlebars"));
|
|
10
29
|
const paths_1 = __importDefault(require("../paths"));
|
|
30
|
+
const partial = handlebars_1.registerPartial.bind(handlebars_1.default);
|
|
11
31
|
const convertName = (match) => match.replace(`${paths_1.default.templates}/`, '')
|
|
12
32
|
.replace('partials/', '')
|
|
13
33
|
.replace('.hbs', '');
|
|
14
|
-
|
|
34
|
+
const register = () => new Promise((resolve, reject) => (0, glob_1.glob)('/**/partials/**/*.hbs', { root: paths_1.default.templates }, (err, matches) => err ? reject(err) : resolve(matches)))
|
|
15
35
|
.then(matches => matches.map(match => ({ name: convertName(match), path: match })))
|
|
16
|
-
.then(files => Promise.all(files.map(({ name, path }) => fs_extra_1.readFile(path, { encoding: 'utf-8' })
|
|
17
|
-
.then(data =>
|
|
36
|
+
.then(files => Promise.all(files.map(({ name, path }) => (0, fs_extra_1.readFile)(path, { encoding: 'utf-8' })
|
|
37
|
+
.then(data => partial(name, data)))));
|
|
38
|
+
exports.register = register;
|
|
18
39
|
//# sourceMappingURL=register.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register.js","sourceRoot":"","sources":["../../src/generator/register.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"register.js","sourceRoot":"","sources":["../../src/generator/register.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAkC;AAClC,+BAA0B;AAC1B,yDAAuD;AACvD,qDAA6B;AAE7B,MAAM,OAAO,GAAG,4BAAe,CAAC,IAAI,CAAC,oBAAU,CAAC,CAAC;AAEjD,MAAM,WAAW,GAAG,CAAC,KAAa,EAAE,EAAE,CACpC,KAAK,CAAC,OAAO,CAAC,GAAG,eAAK,CAAC,SAAS,GAAG,EAAE,EAAE,CAAC;KACrC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;KACxB,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AAElB,MAAM,QAAQ,GAAG,GAAG,EAAE,CAC3B,IAAI,OAAO,CAAW,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CACxC,IAAA,WAAI,EAAC,uBAAuB,EAC1B,EAAC,IAAI,EAAE,eAAK,CAAC,SAAS,EAAC,EACvB,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;KACzD,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAiC,KAAK,CAAC,EAAE,CACnE,CAAC,EAAC,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,EAAC,CAAC,CAAC,CAAC;KAC5C,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CACxB,KAAK,CAAC,GAAG,CAAC,CAAC,EAAC,IAAI,EAAE,IAAI,EAAC,EAAE,EAAE,CAAC,IAAA,mBAAQ,EAAC,IAAI,EAAE,EAAC,QAAQ,EAAE,OAAO,EAAC,CAAC;KAC5D,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CACvC,CAAC;AAVO,QAAA,QAAQ,YAUf"}
|
package/generator/setup.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/generator/setup.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/generator/setup.ts"],"names":[],"mappings":"AAmBA,eAAO,MAAM,KAAK,uBAAmB,CAAC"}
|
package/generator/setup.js
CHANGED
|
@@ -8,11 +8,18 @@ const handlebars_helpers_1 = __importDefault(require("handlebars-helpers"));
|
|
|
8
8
|
const handlebars_1 = __importDefault(require("handlebars"));
|
|
9
9
|
const register_1 = require("./register");
|
|
10
10
|
handlebars_1.default.registerHelper('every', function (value, key, text) {
|
|
11
|
+
if (!text) {
|
|
12
|
+
return value.every(item => (item[key] == undefined ? false : item[key]));
|
|
13
|
+
}
|
|
11
14
|
return value.every(item => (item[key] == undefined ? false : item[key]) === text);
|
|
12
15
|
});
|
|
13
|
-
handlebars_1.default.registerHelper('
|
|
14
|
-
|
|
16
|
+
handlebars_1.default.registerHelper('any', function (value, key, text) {
|
|
17
|
+
if (!text) {
|
|
18
|
+
return value.some(item => (item[key] == undefined ? false : item[key]));
|
|
19
|
+
}
|
|
20
|
+
return value.some(item => (item[key] == undefined ? false : item[key]) === text);
|
|
15
21
|
});
|
|
16
|
-
handlebars_helpers_1.default({ handlebars: handlebars_1.default });
|
|
17
|
-
|
|
22
|
+
(0, handlebars_helpers_1.default)({ handlebars: handlebars_1.default });
|
|
23
|
+
const setup = () => (0, register_1.register)();
|
|
24
|
+
exports.setup = setup;
|
|
18
25
|
//# sourceMappingURL=setup.js.map
|
package/generator/setup.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/generator/setup.ts"],"names":[],"mappings":";;;;;;AAAA,4EAAyC;AACzC,4DAA4B;AAC5B,yCAAoC;AAEpC,oBAAE,CAAC,cAAc,CAAC,OAAO,EAAE,UAA4B,KAAU,EAAE,GAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/generator/setup.ts"],"names":[],"mappings":";;;;;;AAAA,4EAAyC;AACzC,4DAA4B;AAC5B,yCAAoC;AAEpC,oBAAE,CAAC,cAAc,CAAC,OAAO,EAAE,UAA4B,KAAU,EAAE,GAAY,EAAE,IAAiB;IAChG,IAAI,CAAC,IAAI,EAAE;QACT,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;KACzE;IACD,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAA;AACnF,CAAC,CAAC,CAAC;AAEH,oBAAE,CAAC,cAAc,CAAC,KAAK,EAAE,UAA4B,KAAU,EAAE,GAAY,EAAE,IAAiB;IAC9F,IAAI,CAAC,IAAI,EAAE;QACT,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;KACxE;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAA;AAClF,CAAC,CAAC,CAAC;AAEH,IAAA,4BAAO,EAAC,EAAC,UAAU,EAAE,oBAAE,EAAC,CAAC,CAAC;AACnB,MAAM,KAAK,GAAG,GAAG,EAAE,CAAC,IAAA,mBAAQ,GAAE,CAAC;AAAzB,QAAA,KAAK,SAAoB"}
|
package/generator/writer.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare
|
|
1
|
+
export declare const write: (template: string, outDir: string | string[], context?: any) => Promise<void>;
|
|
2
2
|
//# sourceMappingURL=writer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"writer.d.ts","sourceRoot":"","sources":["../../src/generator/writer.ts"],"names":[],"mappings":"AAMA,
|
|
1
|
+
{"version":3,"file":"writer.d.ts","sourceRoot":"","sources":["../../src/generator/writer.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,KAAK,aAAoB,MAAM,UAAU,MAAM,GAAG,MAAM,EAAE,YAAY,GAAG,kBAKrF,CAAC"}
|
package/generator/writer.js
CHANGED
|
@@ -9,11 +9,11 @@ const fs_extra_1 = require("fs-extra");
|
|
|
9
9
|
const prettier_1 = require("prettier");
|
|
10
10
|
const paths_1 = __importDefault(require("../paths"));
|
|
11
11
|
const handlebars_1 = require("handlebars");
|
|
12
|
-
async
|
|
12
|
+
const write = async (template, outDir, context) => {
|
|
13
13
|
const outputPath = Array.isArray(outDir) ? path_1.default.resolve(...outDir) : outDir;
|
|
14
|
-
await fs_extra_1.ensureDir(path_1.default.dirname(outputPath));
|
|
15
|
-
const data = await fs_extra_1.readFile(path_1.default.resolve(paths_1.default.templates, template), { encoding: 'utf-8' });
|
|
16
|
-
return fs_extra_1.writeFile(outputPath, prettier_1.format(handlebars_1.compile(data)(context), { parser: 'typescript' }));
|
|
17
|
-
}
|
|
14
|
+
await (0, fs_extra_1.ensureDir)(path_1.default.dirname(outputPath));
|
|
15
|
+
const data = await (0, fs_extra_1.readFile)(path_1.default.resolve(paths_1.default.templates, template), { encoding: 'utf-8' });
|
|
16
|
+
return (0, fs_extra_1.writeFile)(outputPath, (0, prettier_1.format)((0, handlebars_1.compile)(data)(context), { parser: 'typescript' }));
|
|
17
|
+
};
|
|
18
18
|
exports.write = write;
|
|
19
19
|
//# sourceMappingURL=writer.js.map
|
package/generator/writer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"writer.js","sourceRoot":"","sources":["../../src/generator/writer.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAwB;AACxB,uCAAwD;AACxD,uCAAgC;AAChC,qDAA6B;AAC7B,2CAAmC;AAE5B,KAAK,
|
|
1
|
+
{"version":3,"file":"writer.js","sourceRoot":"","sources":["../../src/generator/writer.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAwB;AACxB,uCAAwD;AACxD,uCAAgC;AAChC,qDAA6B;AAC7B,2CAAmC;AAE5B,MAAM,KAAK,GAAG,KAAK,EAAE,QAAgB,EAAE,MAAyB,EAAE,OAAa,EAAE,EAAE;IACxF,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,cAAI,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAC5E,MAAM,IAAA,oBAAS,EAAC,cAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;IAC1C,MAAM,IAAI,GAAG,MAAM,IAAA,mBAAQ,EAAC,cAAI,CAAC,OAAO,CAAC,eAAK,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,EAAC,QAAQ,EAAE,OAAO,EAAC,CAAC,CAAC;IAC1F,OAAO,IAAA,oBAAS,EAAC,UAAU,EAAE,IAAA,iBAAM,EAAC,IAAA,oBAAO,EAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,EAAC,MAAM,EAAE,YAAY,EAAC,CAAC,CAAC,CAAC;AACvF,CAAC,CAAC;AALW,QAAA,KAAK,SAKhB"}
|
package/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const generator_1 = require("./generator");
|
|
4
|
-
const generatorTypescriptAxiosClient = (openapi, settings) => generator_1.generate(openapi, settings);
|
|
4
|
+
const generatorTypescriptAxiosClient = (openapi, settings) => (0, generator_1.generate)(openapi, settings);
|
|
5
5
|
exports.default = generatorTypescriptAxiosClient;
|
|
6
6
|
//# sourceMappingURL=index.js.map
|
package/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;AACA,2CAAqC;AAErC,MAAM,8BAA8B,GAAc,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,CACtE,oBAAQ,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;AACA,2CAAqC;AAErC,MAAM,8BAA8B,GAAc,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,CACtE,IAAA,oBAAQ,EAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AAE9B,kBAAe,8BAA8B,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@automatons/typescript-client-axios",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.4",
|
|
4
4
|
"repository": "git@github.com:openapi-automatons/typescript-client-axios.git",
|
|
5
5
|
"author": "tanmen <yt.prog@gmail.com>",
|
|
6
6
|
"license": "MIT",
|
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
"@types/handlebars-helpers": "^0.5.2",
|
|
48
48
|
"@types/jest": "^27.4.0",
|
|
49
49
|
"@types/js-yaml": "^4.0.5",
|
|
50
|
-
"@types/node": "^17.0.
|
|
50
|
+
"@types/node": "^17.0.13",
|
|
51
51
|
"@types/prettier": "^2.0.0",
|
|
52
52
|
"@types/semantic-release": "^17.2.3",
|
|
53
53
|
"@typescript-eslint/eslint-plugin": "^5.10.1",
|
|
@@ -62,7 +62,7 @@
|
|
|
62
62
|
"object-to-formdata": "^4.4.1",
|
|
63
63
|
"semantic-release": "^19.0.2",
|
|
64
64
|
"ts-jest": "^26.0.0",
|
|
65
|
-
"typescript": "^
|
|
65
|
+
"typescript": "^4.5.5",
|
|
66
66
|
"typesync": "^0.8.0",
|
|
67
67
|
"yarn-deduplicate": "^3.1.0"
|
|
68
68
|
},
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import Axios, { AxiosInstance } from "axios";
|
|
2
|
-
import { Config{{#if securities
|
|
2
|
+
import type { Config{{#if securities}}, Security{{/if}} } from "../config";
|
|
3
3
|
|
|
4
4
|
const DateFormat = /^\d{4}-\d{2}-\d{2}([tT]\d{2}:\d{2}:\d{2}(Z|[+-]\d{2}:\d{2})|Z)?$/;
|
|
5
5
|
const reviver = (_key: string, value: any) =>
|
|
@@ -13,13 +13,13 @@ const BASE_AXIOS = Axios.create({
|
|
|
13
13
|
* AbstractConfig
|
|
14
14
|
*/
|
|
15
15
|
export class AbstractConfig {
|
|
16
|
-
{{#if securities
|
|
17
|
-
readonly #security
|
|
16
|
+
{{#if securities}}
|
|
17
|
+
readonly #security: Security;
|
|
18
18
|
|
|
19
19
|
/**
|
|
20
20
|
* constructor
|
|
21
21
|
*/
|
|
22
|
-
constructor(security
|
|
22
|
+
constructor(security: Security = {}) {
|
|
23
23
|
this.#security = security;
|
|
24
24
|
}
|
|
25
25
|
|
|
@@ -32,12 +32,16 @@ export class AbstractConfig {
|
|
|
32
32
|
protected async security(key: "{{name}}"): Promise<string>;
|
|
33
33
|
{{/and}}
|
|
34
34
|
{{/each}}
|
|
35
|
-
protected async security(key: keyof Security, scopes?: string[]): Promise<string | {username: string; password: string;}> {
|
|
36
|
-
const security = this.#security
|
|
35
|
+
protected async security(key: keyof Security{{#or (any securities 'type' 'oauth2') (any securities 'type' 'openIdConnect')}}, scopes?: string[]{{/or}}): Promise<string | {username: string; password: string;}> {
|
|
36
|
+
const security = this.#security[key];
|
|
37
37
|
if (!security) {
|
|
38
38
|
throw new Error("Unauthorized user request.");
|
|
39
39
|
} else if (security instanceof Function) {
|
|
40
|
+
{{#or (any securities 'type' 'oauth2') (any securities 'type' 'openIdConnect')}}
|
|
40
41
|
return scopes ? security(scopes) : security();
|
|
42
|
+
{{else}}
|
|
43
|
+
return security();
|
|
44
|
+
{{/or}}
|
|
41
45
|
}
|
|
42
46
|
return security;
|
|
43
47
|
}
|
package/templates/apis/api.hbs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { AxiosResponse, AxiosRequestConfig } from "axios";
|
|
2
2
|
import { AbstractApi, AbstractConfig } from "./abstractApi";
|
|
3
|
-
import { Config{{#if securities
|
|
3
|
+
import { Config{{#if securities}}, Security{{/if}} } from "../config";
|
|
4
4
|
{{#with meta}}
|
|
5
5
|
{{#or hasTemplate hasQuery hasFormData ~}}
|
|
6
6
|
import { {{#if hasTemplate}}template{{#or hasQuery hasFormData}},{{/or}}{{/if}} {{#if hasQuery}}query{{#if hasFormData}},{{/if}}{{/if}} {{#if hasFormData}}formData{{/if}} } from "../utils";
|
|
@@ -14,6 +14,6 @@ import { Config{{#if securities.length}}, Security{{/if}} } from "../config";
|
|
|
14
14
|
type {{name}}Server = { name: "{{name}}"{{#if values}}; values: { {{#each values}}{{name}}: {{#if enums}}{{#each enums}}'{{this}}'{{#unless @last}} | {{/unless}}{{/each}}{{else}}string{{/if}} {{/each}} }; {{/if}} }
|
|
15
15
|
{{/each}}
|
|
16
16
|
|
|
17
|
-
{{> apis/class api }}
|
|
17
|
+
{{> apis/class api=api securities=securities }}
|
|
18
18
|
|
|
19
|
-
{{> apis/config api }}
|
|
19
|
+
{{> apis/config api=api securities=securities }}
|
|
@@ -6,16 +6,16 @@
|
|
|
6
6
|
{{/each}}
|
|
7
7
|
}{{#if (every queries 'required' false)}} = {}{{/if}},
|
|
8
8
|
{{/if}}
|
|
9
|
-
headers: {
|
|
10
|
-
'Content-Type': {{#if forms}}{{#each forms}}{{#unless @first}} | {{/unless}}{{#each types}}{{#unless @first}} | {{/unless}}'{{this}}'{{/each}}{{/each}}{{else}}'application/json'{{/if}},
|
|
11
|
-
{{#each headers}}
|
|
12
|
-
{{name}}{{#unless required}}?{{/unless}}: {{> models/type schema}},
|
|
13
|
-
{{/each}}
|
|
14
|
-
}{{#if (every headers 'required' false)}} = { 'Content-Type': 'application/json' }{{/if}},
|
|
15
9
|
{{~#if cookies}}cookies: {
|
|
16
10
|
{{~#each cookies}}
|
|
17
11
|
{{name}}{{#unless required}}?{{/unless}}: {{> models/type schema}},
|
|
18
12
|
{{/each}}
|
|
19
13
|
}{{#if (every cookies 'required' false)}} = {}{{/if}},
|
|
20
14
|
{{/if}}
|
|
15
|
+
headers: {
|
|
16
|
+
'Content-Type': {{#if forms}}{{#each forms}}{{#unless @first}} | {{/unless}}{{#each types}}{{#unless @first}} | {{/unless}}'{{this}}'{{/each}}{{/each}}{{else}}'application/json'{{/if}},
|
|
17
|
+
{{#each headers}}
|
|
18
|
+
{{name}}{{#unless required}}?{{/unless}}: {{> models/type schema}},
|
|
19
|
+
{{/each}}
|
|
20
|
+
}{{#if (every headers 'required' false)}} = { 'Content-Type': 'application/json' }{{/if}},
|
|
21
21
|
{{~> apis/arguments/server servers}} config?: AxiosRequestConfig
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
{{> comment}}
|
|
2
|
-
export class {{title}} extends AbstractApi {
|
|
3
|
-
readonly #config: {{title}}Config;
|
|
1
|
+
{{> comment api}}
|
|
2
|
+
export class {{api.title}} extends AbstractApi {
|
|
3
|
+
readonly #config: {{api.title}}Config;
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* constructor
|
|
7
7
|
* @param {Config} config
|
|
8
8
|
*/
|
|
9
|
-
constructor(config: Config) {
|
|
9
|
+
constructor(config: Config = {}) {
|
|
10
10
|
super(config);
|
|
11
|
-
this.#config = new {{title}}Config({{#if securities
|
|
11
|
+
this.#config = new {{api.title}}Config({{#if securities}}config.security{{/if}});
|
|
12
12
|
}
|
|
13
|
-
{{#each paths}}
|
|
13
|
+
{{#each api.paths}}
|
|
14
14
|
|
|
15
15
|
{{> apis/class/request }}
|
|
16
16
|
{{/each}}
|
|
@@ -4,16 +4,16 @@
|
|
|
4
4
|
{{/each}}
|
|
5
5
|
}{{#if (every queries 'required' false)}} = {}{{/if}},
|
|
6
6
|
{{/if}}
|
|
7
|
-
headers: {
|
|
8
|
-
'Content-Type': {{#if forms}}{{#each forms}}{{#unless @first}} | {{/unless}}{{#each types}}{{#unless @first}} | {{/unless}}'{{this}}'{{/each}}{{/each}}{{else}}'application/json'{{/if}},
|
|
9
|
-
{{#each headers}}
|
|
10
|
-
{{name}}{{#unless required}}?{{/unless}}: {{> models/type schema}},
|
|
11
|
-
{{/each}}
|
|
12
|
-
}{{#if (every headers 'required' false)}} = { 'Content-Type': 'application/json' }{{/if}},
|
|
13
7
|
{{~#if cookies}}cookies: {
|
|
14
8
|
{{~#each cookies}}
|
|
15
9
|
{{name}}{{#unless required}}?{{/unless}}: {{> models/type schema}},
|
|
16
10
|
{{/each}}
|
|
17
11
|
}{{#if (every cookies 'required' false)}} = {}{{/if}},
|
|
18
12
|
{{/if}}
|
|
13
|
+
headers: {
|
|
14
|
+
'Content-Type': {{#if forms}}{{#each forms}}{{#unless @first}} | {{/unless}}{{#each types}}{{#unless @first}} | {{/unless}}'{{this}}'{{/each}}{{/each}}{{else}}'application/json'{{/if}},
|
|
15
|
+
{{#each headers}}
|
|
16
|
+
{{name}}{{#unless required}}?{{/unless}}: {{> models/type schema}},
|
|
17
|
+
{{/each}}
|
|
18
|
+
}{{#if (every headers 'required' false)}} = { 'Content-Type': 'application/json' }{{/if}},
|
|
19
19
|
{{~> apis/arguments/server servers}} config?: AxiosRequestConfig
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
{{~#each cookies}}
|
|
2
2
|
if (cookies.{{name}}) {
|
|
3
|
-
|
|
3
|
+
_cookies += Object.entries(query('{{name}}', cookies.{{name}}, 'form', {{#if explode}}true{{else}}false{{/if}})).reduce((pre, [key, value]) => `${pre}${key}=${value};`, '');
|
|
4
4
|
}
|
|
5
5
|
{{/each}}
|
|
6
6
|
{{~#each securities}}
|
|
7
7
|
{{#and (eq type 'apiKey') (eq in 'cookie')~}}
|
|
8
|
-
|
|
8
|
+
const _cookie{{name}} = await this.security("{{name}}");
|
|
9
|
+
if (_cookie{{name}}) {
|
|
10
|
+
_cookies += `{{key}}=${_cookie{{name~}} };`;
|
|
11
|
+
}
|
|
9
12
|
{{/and}}
|
|
10
13
|
{{/each}}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
public async {{name}}({{> apis/config/arguments}}): Promise<AxiosRequestConfig> {
|
|
2
2
|
const params = {{> apis/config/request/queries }};
|
|
3
3
|
|
|
4
|
-
|
|
4
|
+
let _cookies = config?.headers?.Cookie ?? '';
|
|
5
5
|
{{> apis/config/request/cookies }}
|
|
6
6
|
|
|
7
|
-
const _headers = { ...config?.headers, 'Content-Type': headers['Content-Type'], Cookie: _cookies };
|
|
7
|
+
const _headers = Object.assign({ ...config?.headers, 'Content-Type': headers['Content-Type']}, _cookies && {Cookie: _cookies });
|
|
8
8
|
{{> apis/config/request/headers }}
|
|
9
9
|
|
|
10
10
|
return {
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
class {{title}}Config extends AbstractConfig {
|
|
2
|
-
{{#if securities
|
|
3
|
-
constructor(security
|
|
1
|
+
class {{api.title}}Config extends AbstractConfig {
|
|
2
|
+
{{#if securities}}
|
|
3
|
+
constructor(security: Security = {}) {
|
|
4
4
|
super(security);
|
|
5
5
|
}
|
|
6
6
|
{{/if}}
|
|
7
7
|
|
|
8
|
-
{{> apis/config/server }}
|
|
8
|
+
{{> apis/config/server api }}
|
|
9
9
|
|
|
10
|
-
{{#each paths}}
|
|
10
|
+
{{#each api.paths}}
|
|
11
11
|
|
|
12
|
-
{{> apis/config/request title=../title }}
|
|
12
|
+
{{> apis/config/request title=../api.title }}
|
|
13
13
|
{{/each}}
|
|
14
14
|
}
|
package/templates/config.hbs
CHANGED
|
@@ -3,11 +3,11 @@ import { AxiosInstance } from "axios";
|
|
|
3
3
|
export type Security = {
|
|
4
4
|
{{#each securities}}
|
|
5
5
|
{{#and (eq type 'http') (eq scheme 'basic')}}
|
|
6
|
-
{{name}}
|
|
6
|
+
{{name}}?: {username: string; password: string;} | Promise<{username: string; password: string;}> | (() => {username: string; password: string;} | Promise<{username: string; password: string;}>);
|
|
7
7
|
{{else or (eq type 'oauth2') (eq type 'openIdConnect')}}
|
|
8
|
-
{{name}}
|
|
8
|
+
{{name}}?: string | Promise<string> | ((scopes?: string[]) => string | Promise<string>);
|
|
9
9
|
{{else}}
|
|
10
|
-
{{name}}
|
|
10
|
+
{{name}}?: string | Promise<string> | (() => string | Promise<string>);
|
|
11
11
|
{{/and}}
|
|
12
12
|
{{/each}}
|
|
13
13
|
};
|