swaggie 0.7.0-alpha.3 → 0.7.1
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/dist/cli.js +1 -0
- package/dist/gen/js/createBarrel.js +3 -2
- package/dist/gen/js/genOperations.js +18 -10
- package/dist/gen/js/genTypes.js +4 -3
- package/dist/gen/js/index.js +1 -0
- package/dist/gen/js/models.js +2 -0
- package/dist/gen/js/support.js +3 -1
- package/dist/gen/templateManager.js +4 -6
- package/dist/gen/util.js +30 -4
- package/dist/index.js +1 -0
- package/dist/swagger/operations.js +9 -1
- package/dist/swagger/swagger.js +1 -0
- package/package.json +5 -5
package/dist/cli.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});var
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }var _lodashcamelcase = require('lodash.camelcase'); var _lodashcamelcase2 = _interopRequireDefault(_lodashcamelcase);
|
|
2
|
+
|
|
2
3
|
var _templateManager = require('../templateManager');
|
|
3
4
|
|
|
4
5
|
async function generateBarrelFile(clients, clientOptions) {
|
|
@@ -15,7 +16,7 @@ var _templateManager = require('../templateManager');
|
|
|
15
16
|
.map((c) => ({
|
|
16
17
|
fileName: (clientOptions.servicePrefix || '') + c,
|
|
17
18
|
className: (clientOptions.servicePrefix || '') + c + 'Client',
|
|
18
|
-
camelCaseName:
|
|
19
|
+
camelCaseName: _lodashcamelcase2.default.call(void 0, (clientOptions.servicePrefix || '') + c + 'Client'),
|
|
19
20
|
})),
|
|
20
21
|
};
|
|
21
22
|
|
|
@@ -1,6 +1,12 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});var
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }var _lodashcamelcase = require('lodash.camelcase'); var _lodashcamelcase2 = _interopRequireDefault(_lodashcamelcase);
|
|
2
2
|
|
|
3
3
|
var _support = require('./support');
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
4
10
|
var _util = require('../util');
|
|
5
11
|
|
|
6
12
|
|
|
@@ -12,6 +18,7 @@ var _util = require('../util');
|
|
|
12
18
|
var _createBarrel = require('./createBarrel');
|
|
13
19
|
var _templateManager = require('../templateManager');
|
|
14
20
|
|
|
21
|
+
|
|
15
22
|
const MAX_QUERY_PARAMS = 1;
|
|
16
23
|
|
|
17
24
|
async function genOperations(
|
|
@@ -20,10 +27,11 @@ const MAX_QUERY_PARAMS = 1;
|
|
|
20
27
|
options
|
|
21
28
|
) {
|
|
22
29
|
const groups = _util.groupOperationsByGroupName.call(void 0, operations);
|
|
23
|
-
let result =
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
30
|
+
let result =
|
|
31
|
+
(await _templateManager.renderFile.call(void 0, 'baseClient.ejs', {
|
|
32
|
+
servicePrefix: options.servicePrefix || '',
|
|
33
|
+
baseUrl: options.baseUrl,
|
|
34
|
+
})) || '';
|
|
27
35
|
let queryDefinitions = {} ;
|
|
28
36
|
|
|
29
37
|
for (let name in groups) {
|
|
@@ -61,7 +69,7 @@ function prepareClient(
|
|
|
61
69
|
return [
|
|
62
70
|
{
|
|
63
71
|
clientName: name,
|
|
64
|
-
camelCaseName:
|
|
72
|
+
camelCaseName: _lodashcamelcase2.default.call(void 0, name),
|
|
65
73
|
operations: preparedOperations,
|
|
66
74
|
baseUrl: options.baseUrl,
|
|
67
75
|
},
|
|
@@ -118,7 +126,7 @@ function prepareClient(
|
|
|
118
126
|
}
|
|
119
127
|
|
|
120
128
|
const ops = operations.map((a) => Object.assign({}, a));
|
|
121
|
-
const results =
|
|
129
|
+
const results = _util.orderBy.call(void 0, ops, 'id');
|
|
122
130
|
|
|
123
131
|
let inc = 0;
|
|
124
132
|
let prevOpId = results[0].id;
|
|
@@ -142,7 +150,7 @@ function prepareClient(
|
|
|
142
150
|
return opId;
|
|
143
151
|
}
|
|
144
152
|
|
|
145
|
-
return
|
|
153
|
+
return _lodashcamelcase2.default.call(void 0, opId.replace(group + '_', ''));
|
|
146
154
|
} exports.getOperationName = getOperationName;
|
|
147
155
|
|
|
148
156
|
function getHeaders(op, options) {
|
|
@@ -208,7 +216,7 @@ function getParams(
|
|
|
208
216
|
return _util.escapeReservedWords.call(void 0,
|
|
209
217
|
name
|
|
210
218
|
.split('.')
|
|
211
|
-
.map((x) =>
|
|
219
|
+
.map((x) => _lodashcamelcase2.default.call(void 0, x))
|
|
212
220
|
.join('_')
|
|
213
221
|
);
|
|
214
222
|
} exports.getParamName = getParamName;
|
|
@@ -248,7 +256,7 @@ function getQueryDefinition(
|
|
|
248
256
|
const queryParam = {
|
|
249
257
|
originalName: `${op.id.replace('_', '')}Query`,
|
|
250
258
|
name: getParamName(`${op.id.replace('_', '')}Query`),
|
|
251
|
-
type: `I${
|
|
259
|
+
type: `I${_util.upperFirst.call(void 0, getOperationName(op.id, op.group))}From${options.servicePrefix || ''}${
|
|
252
260
|
op.group
|
|
253
261
|
}ServiceQuery`,
|
|
254
262
|
optional: false,
|
package/dist/gen/js/genTypes.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});var
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }var _lodashset = require('lodash.set'); var _lodashset2 = _interopRequireDefault(_lodashset);
|
|
2
2
|
var _util = require('../util');
|
|
3
3
|
var _support = require('./support');
|
|
4
4
|
|
|
5
5
|
|
|
6
|
+
|
|
6
7
|
function genTypes(
|
|
7
8
|
spec,
|
|
8
9
|
queryDefinitions,
|
|
@@ -112,7 +113,7 @@ function renderTsType(name, def, options, typeToBeGeneric) {
|
|
|
112
113
|
parts: def.properties[e].name.split('.'),
|
|
113
114
|
}));
|
|
114
115
|
const objNotation = {};
|
|
115
|
-
props.forEach((p) =>
|
|
116
|
+
props.forEach((p) => _lodashset2.default.call(void 0, objNotation, p.name, def.properties[p.key]));
|
|
116
117
|
|
|
117
118
|
return processQueryStringParameter(objNotation, null, options);
|
|
118
119
|
} exports.renderQueryStringParameters = renderQueryStringParameters;
|
|
@@ -223,7 +224,7 @@ function verifyAllOf(name, allOf) {
|
|
|
223
224
|
|
|
224
225
|
function getDistinctGenericTypes(keys) {
|
|
225
226
|
const sanitizedKeys = keys.map((k) => k.substring(0, k.indexOf('[')));
|
|
226
|
-
return
|
|
227
|
+
return _util.uniq.call(void 0, sanitizedKeys);
|
|
227
228
|
}
|
|
228
229
|
|
|
229
230
|
function unwrapDefinitions(definitions) {
|
package/dist/gen/js/index.js
CHANGED
package/dist/gen/js/models.js
CHANGED
package/dist/gen/js/support.js
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
|
+
|
|
3
|
+
function getTSParamType(param, options) {
|
|
2
4
|
const unknownType = options.preferAny ? 'any' : 'unknown';
|
|
3
5
|
|
|
4
6
|
if (!param) {
|
|
@@ -2,20 +2,18 @@
|
|
|
2
2
|
var _path = require('path'); var _path2 = _interopRequireDefault(_path);
|
|
3
3
|
var _eta = require('eta'); var Eta = _interopRequireWildcard(_eta);
|
|
4
4
|
|
|
5
|
-
let templatesDir = null;
|
|
6
|
-
|
|
7
5
|
function loadAllTemplateFiles(templateName) {
|
|
8
6
|
if (!templateName) {
|
|
9
7
|
throw new Error(`No template name was provided`);
|
|
10
8
|
}
|
|
11
9
|
|
|
12
|
-
templatesDir = _fs2.default.existsSync(templateName)
|
|
10
|
+
const templatesDir = _fs2.default.existsSync(templateName)
|
|
13
11
|
? templateName
|
|
14
12
|
: _path2.default.join(__dirname, '..', '..', 'templates', templateName);
|
|
15
13
|
|
|
16
14
|
if (!_fs2.default.existsSync(templatesDir)) {
|
|
17
15
|
throw new Error(
|
|
18
|
-
`Could not found directory with the template (we tried ${templatesDir}). Template name is correct
|
|
16
|
+
`Could not found directory with the template (we tried ${templatesDir}). Template name is correct?`
|
|
19
17
|
);
|
|
20
18
|
}
|
|
21
19
|
const templates = _fs2.default.readdirSync(templatesDir);
|
|
@@ -28,6 +26,6 @@ let templatesDir = null;
|
|
|
28
26
|
} exports.loadAllTemplateFiles = loadAllTemplateFiles;
|
|
29
27
|
|
|
30
28
|
function renderFile(templateFile, data = {}) {
|
|
31
|
-
const
|
|
32
|
-
return Eta.
|
|
29
|
+
const template = Eta.templates.get(templateFile);
|
|
30
|
+
return Eta.render(template, data);
|
|
33
31
|
} exports.renderFile = renderFile;
|
package/dist/gen/util.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true});var _fs = require('fs');
|
|
2
2
|
var _path = require('path');
|
|
3
|
-
|
|
3
|
+
|
|
4
|
+
|
|
4
5
|
|
|
5
6
|
function exists(filePath) {
|
|
6
7
|
try {
|
|
@@ -11,9 +12,12 @@ var _mkdirp = require('mkdirp');
|
|
|
11
12
|
} exports.exists = exists;
|
|
12
13
|
|
|
13
14
|
function saveFile(filePath, contents) {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
15
|
+
_fs.mkdir.call(void 0, _path.dirname.call(void 0, filePath), { recursive: true }, (err) => {
|
|
16
|
+
if (err) {
|
|
17
|
+
throw err;
|
|
18
|
+
}
|
|
19
|
+
_fs.writeFileSync.call(void 0, filePath, contents);
|
|
20
|
+
});
|
|
17
21
|
} exports.saveFile = saveFile;
|
|
18
22
|
|
|
19
23
|
function groupOperationsByGroupName(operations) {
|
|
@@ -109,3 +113,25 @@ const reservedWords = [
|
|
|
109
113
|
}
|
|
110
114
|
return out.replace(/[\\]/i, '/') + '.ts';
|
|
111
115
|
} exports.prepareOutputFilename = prepareOutputFilename;
|
|
116
|
+
|
|
117
|
+
function uniq(arr) {
|
|
118
|
+
if (!arr) {
|
|
119
|
+
return [];
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
return [...new Set(arr)];
|
|
123
|
+
} exports.uniq = uniq;
|
|
124
|
+
|
|
125
|
+
function orderBy(arr, key) {
|
|
126
|
+
if (!arr) {
|
|
127
|
+
return [];
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
return arr.concat().sort(sortByKey(key));
|
|
131
|
+
} exports.orderBy = orderBy;
|
|
132
|
+
|
|
133
|
+
const sortByKey = (key) => (a, b) => a[key] > b[key] ? 1 : b[key] > a[key] ? -1 : 0;
|
|
134
|
+
|
|
135
|
+
function upperFirst(str) {
|
|
136
|
+
return str ? str.charAt(0).toUpperCase() + str.slice(1) : '';
|
|
137
|
+
} exports.upperFirst = upperFirst;
|
package/dist/index.js
CHANGED
|
@@ -6,6 +6,7 @@ var _js = require('./gen/js'); var _js2 = _interopRequireDefault(_js);
|
|
|
6
6
|
var _templateManager = require('./gen/templateManager');
|
|
7
7
|
var _swagger = require('./swagger');
|
|
8
8
|
|
|
9
|
+
|
|
9
10
|
function runCodeGenerator(options) {
|
|
10
11
|
return verifyOptions(options)
|
|
11
12
|
.then(applyConfigFile)
|
|
@@ -1,4 +1,12 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
const SUPPORTED_METHODS = ['get', 'put', 'post', 'delete', 'options', 'head', 'patch'];
|
|
2
10
|
|
|
3
11
|
/**
|
|
4
12
|
* This method converts dictionary-alike operation definition to operation array.
|
package/dist/swagger/swagger.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "swaggie",
|
|
3
|
-
"version": "0.7.
|
|
3
|
+
"version": "0.7.1",
|
|
4
4
|
"description": "Generate ES6 or TypeScript service integration code from an OpenAPI spec",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Piotr Dabrowski",
|
|
@@ -44,16 +44,16 @@
|
|
|
44
44
|
"commander": "^8.3.0",
|
|
45
45
|
"eta": "^1.12.3",
|
|
46
46
|
"js-yaml": "^4.1.0",
|
|
47
|
-
"lodash": "^4.
|
|
48
|
-
"
|
|
47
|
+
"lodash.camelcase": "^4.3.0",
|
|
48
|
+
"lodash.set": "^4.3.2",
|
|
49
49
|
"nanocolors": "^0.2.0",
|
|
50
50
|
"node-fetch": "^2.6.3"
|
|
51
51
|
},
|
|
52
52
|
"devDependencies": {
|
|
53
53
|
"@types/chai": "4.3.0",
|
|
54
54
|
"@types/js-yaml": "4.0.5",
|
|
55
|
-
"@types/lodash": "4.
|
|
56
|
-
"@types/
|
|
55
|
+
"@types/lodash.camelcase": "4.3.6",
|
|
56
|
+
"@types/lodash.set": "4.3.6",
|
|
57
57
|
"@types/mocha": "9.0.0",
|
|
58
58
|
"@types/node-fetch": "2.5.3",
|
|
59
59
|
"chai": "4.3.4",
|