jszy-swagger-doc-generator 1.4.0 → 1.5.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/README.md +327 -113
- package/dist/cli.js +34 -1
- package/dist/cli.js.map +1 -1
- package/dist/generators/swagger.generator.d.ts +90 -0
- package/dist/generators/swagger.generator.js +626 -0
- package/dist/generators/swagger.generator.js.map +1 -0
- package/dist/helpers/handlebars.helpers.d.ts +4 -0
- package/dist/helpers/handlebars.helpers.js +92 -0
- package/dist/helpers/handlebars.helpers.js.map +1 -0
- package/dist/helpers/string.helpers.d.ts +8 -0
- package/dist/helpers/string.helpers.js +25 -0
- package/dist/helpers/string.helpers.js.map +1 -0
- package/dist/helpers/template.helpers.d.ts +4 -0
- package/dist/helpers/template.helpers.js +105 -0
- package/dist/helpers/template.helpers.js.map +1 -0
- package/dist/helpers/type.helpers.d.ts +18 -0
- package/dist/helpers/type.helpers.js +229 -0
- package/dist/helpers/type.helpers.js.map +1 -0
- package/dist/index.d.ts +31 -0
- package/dist/index.js +432 -159
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +97 -0
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -0
- package/package.json +1 -1
- package/src/cli.ts +35 -1
- package/src/generators/swagger.generator.ts +664 -0
- package/src/helpers/template.helpers.ts +72 -0
- package/src/helpers/type.helpers.ts +232 -0
- package/src/index.ts +465 -162
- package/src/types.ts +98 -0
- package/templates/hooks/individual-hook.hbs +55 -0
- package/templates/hooks/react-hook.hbs +14 -0
- package/templates/types/type-definition.hbs +5 -0
- package/test-openapi-swagger.json +454 -0
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.registerHandlebarHelpers = registerHandlebarHelpers;
|
|
37
|
+
const Handlebars = __importStar(require("handlebars"));
|
|
38
|
+
/**
|
|
39
|
+
* Register all Handlebars helpers used in templates
|
|
40
|
+
*/
|
|
41
|
+
function registerHandlebarHelpers() {
|
|
42
|
+
// Helper to convert to camelCase
|
|
43
|
+
Handlebars.registerHelper('camelCase', function (str) {
|
|
44
|
+
if (typeof str !== 'string') {
|
|
45
|
+
return '';
|
|
46
|
+
}
|
|
47
|
+
return str
|
|
48
|
+
.replace(/(?:^\w|[A-Z]|\b\w)/g, (word, index) => {
|
|
49
|
+
return index === 0 ? word.toLowerCase() : word.toUpperCase();
|
|
50
|
+
})
|
|
51
|
+
.replace(/\s+/g, '');
|
|
52
|
+
});
|
|
53
|
+
// Helper to convert to PascalCase
|
|
54
|
+
Handlebars.registerHelper('pascalCase', function (str) {
|
|
55
|
+
if (typeof str !== 'string') {
|
|
56
|
+
return '';
|
|
57
|
+
}
|
|
58
|
+
return str
|
|
59
|
+
.replace(/(?:^\w|[A-Z]|\b\w)/g, (word, index) => {
|
|
60
|
+
return index === 0 ? word.toUpperCase() : word.toUpperCase();
|
|
61
|
+
})
|
|
62
|
+
.replace(/\s+/g, '');
|
|
63
|
+
});
|
|
64
|
+
// Helper to check if array has elements
|
|
65
|
+
Handlebars.registerHelper('hasElements', function (arr) {
|
|
66
|
+
return arr && arr.length > 0;
|
|
67
|
+
});
|
|
68
|
+
// Helper for conditional rendering
|
|
69
|
+
Handlebars.registerHelper('ifCond', function (v1, operator, v2, options) {
|
|
70
|
+
switch (operator) {
|
|
71
|
+
case '==':
|
|
72
|
+
return v1 == v2 ? options.fn(this) : options.inverse(this);
|
|
73
|
+
case '===':
|
|
74
|
+
return v1 === v2 ? options.fn(this) : options.inverse(this);
|
|
75
|
+
case '<':
|
|
76
|
+
return v1 < v2 ? options.fn(this) : options.inverse(this);
|
|
77
|
+
case '<=':
|
|
78
|
+
return v1 <= v2 ? options.fn(this) : options.inverse(this);
|
|
79
|
+
case '>':
|
|
80
|
+
return v1 > v2 ? options.fn(this) : options.inverse(this);
|
|
81
|
+
case '>=':
|
|
82
|
+
return v1 >= v2 ? options.fn(this) : options.inverse(this);
|
|
83
|
+
case '&&':
|
|
84
|
+
return v1 && v2 ? options.fn(this) : options.inverse(this);
|
|
85
|
+
case '||':
|
|
86
|
+
return v1 || v2 ? options.fn(this) : options.inverse(this);
|
|
87
|
+
default:
|
|
88
|
+
return options.inverse(this);
|
|
89
|
+
}
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=handlebars.helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handlebars.helpers.js","sourceRoot":"","sources":["../../src/helpers/handlebars.helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.toPascalCase = toPascalCase;
|
|
4
|
+
exports.toCamelCase = toCamelCase;
|
|
5
|
+
/**
|
|
6
|
+
* Transforms a string to PascalCase
|
|
7
|
+
*/
|
|
8
|
+
function toPascalCase(str) {
|
|
9
|
+
return str
|
|
10
|
+
.replace(/(?:^\w|[A-Z]|\b\w)/g, (word, index) => {
|
|
11
|
+
return index === 0 ? word.toUpperCase() : word.toUpperCase();
|
|
12
|
+
})
|
|
13
|
+
.replace(/\s+/g, '');
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Transforms a string to camelCase
|
|
17
|
+
*/
|
|
18
|
+
function toCamelCase(str) {
|
|
19
|
+
return str
|
|
20
|
+
.replace(/(?:^\w|[A-Z]|\b\w)/g, (word, index) => {
|
|
21
|
+
return index === 0 ? word.toLowerCase() : word.toUpperCase();
|
|
22
|
+
})
|
|
23
|
+
.replace(/\s+/g, '');
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=string.helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"string.helpers.js","sourceRoot":"","sources":["../../src/helpers/string.helpers.ts"],"names":[],"mappings":";;AAGA,oCAMC;AAKD,kCAMC;AApBD;;GAEG;AACH,SAAgB,YAAY,CAAC,GAAW;IACtC,OAAO,GAAG;SACP,OAAO,CAAC,qBAAqB,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QAC9C,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;IAC/D,CAAC,CAAC;SACD,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACzB,CAAC;AAED;;GAEG;AACH,SAAgB,WAAW,CAAC,GAAW;IACrC,OAAO,GAAG;SACP,OAAO,CAAC,qBAAqB,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QAC9C,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;IAC/D,CAAC,CAAC;SACD,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACzB,CAAC"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.compileTemplate = compileTemplate;
|
|
37
|
+
const fs = __importStar(require("fs"));
|
|
38
|
+
const Handlebars = __importStar(require("handlebars"));
|
|
39
|
+
// Register helpers when module loads
|
|
40
|
+
(function () {
|
|
41
|
+
// Helper to convert to camelCase
|
|
42
|
+
Handlebars.registerHelper('camelCase', function (str) {
|
|
43
|
+
if (typeof str !== 'string') {
|
|
44
|
+
return '';
|
|
45
|
+
}
|
|
46
|
+
return str
|
|
47
|
+
.replace(/(?:^\w|[A-Z]|\b\w)/g, (word, index) => {
|
|
48
|
+
return index === 0 ? word.toLowerCase() : word.toUpperCase();
|
|
49
|
+
})
|
|
50
|
+
.replace(/\s+/g, '');
|
|
51
|
+
});
|
|
52
|
+
// Helper to convert to PascalCase
|
|
53
|
+
Handlebars.registerHelper('pascalCase', function (str) {
|
|
54
|
+
if (typeof str !== 'string') {
|
|
55
|
+
return '';
|
|
56
|
+
}
|
|
57
|
+
return str
|
|
58
|
+
.replace(/(?:^\w|[A-Z]|\b\w)/g, (word, index) => {
|
|
59
|
+
return index === 0 ? word.toUpperCase() : word.toUpperCase();
|
|
60
|
+
})
|
|
61
|
+
.replace(/\s+/g, '');
|
|
62
|
+
});
|
|
63
|
+
// Helper to check if array has elements
|
|
64
|
+
Handlebars.registerHelper('hasElements', function (arr) {
|
|
65
|
+
return arr && arr.length > 0;
|
|
66
|
+
});
|
|
67
|
+
// Helper for conditional rendering
|
|
68
|
+
Handlebars.registerHelper('ifCond', function (v1, operator, v2, options) {
|
|
69
|
+
switch (operator) {
|
|
70
|
+
case '==':
|
|
71
|
+
return v1 == v2 ? options.fn(this) : options.inverse(this);
|
|
72
|
+
case '===':
|
|
73
|
+
return v1 === v2 ? options.fn(this) : options.inverse(this);
|
|
74
|
+
case '<':
|
|
75
|
+
return v1 < v2 ? options.fn(this) : options.inverse(this);
|
|
76
|
+
case '<=':
|
|
77
|
+
return v1 <= v2 ? options.fn(this) : options.inverse(this);
|
|
78
|
+
case '>':
|
|
79
|
+
return v1 > v2 ? options.fn(this) : options.inverse(this);
|
|
80
|
+
case '>=':
|
|
81
|
+
return v1 >= v2 ? options.fn(this) : options.inverse(this);
|
|
82
|
+
case '&&':
|
|
83
|
+
return v1 && v2 ? options.fn(this) : options.inverse(this);
|
|
84
|
+
case '||':
|
|
85
|
+
return v1 || v2 ? options.fn(this) : options.inverse(this);
|
|
86
|
+
default:
|
|
87
|
+
return options.inverse(this);
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
})();
|
|
91
|
+
/**
|
|
92
|
+
* Compiles and renders a Handlebars template
|
|
93
|
+
*/
|
|
94
|
+
function compileTemplate(templatePath, context) {
|
|
95
|
+
try {
|
|
96
|
+
const templateSource = fs.readFileSync(templatePath, 'utf8');
|
|
97
|
+
const template = Handlebars.compile(templateSource);
|
|
98
|
+
return template(context);
|
|
99
|
+
}
|
|
100
|
+
catch (error) {
|
|
101
|
+
console.error(`Error compiling template ${templatePath}:`, error);
|
|
102
|
+
throw error;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=template.helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"template.helpers.js","sourceRoot":"","sources":["../../src/helpers/template.helpers.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8DA,0CASC;AAvED,uCAAyB;AACzB,uDAAyC;AAEzC,qCAAqC;AACrC,CAAC;IACC,iCAAiC;IACjC,UAAU,CAAC,cAAc,CAAC,WAAW,EAAE,UAAS,GAAQ;QACtD,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC5B,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,OAAO,GAAG;aACP,OAAO,CAAC,qBAAqB,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YAC9C,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QAC/D,CAAC,CAAC;aACD,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACzB,CAAC,CAAC,CAAC;IAEH,kCAAkC;IAClC,UAAU,CAAC,cAAc,CAAC,YAAY,EAAE,UAAS,GAAQ;QACvD,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC5B,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,OAAO,GAAG;aACP,OAAO,CAAC,qBAAqB,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YAC9C,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QAC/D,CAAC,CAAC;aACD,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACzB,CAAC,CAAC,CAAC;IAEH,wCAAwC;IACxC,UAAU,CAAC,cAAc,CAAC,aAAa,EAAE,UAAS,GAAU;QAC1D,OAAO,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,mCAAmC;IACnC,UAAU,CAAC,cAAc,CAAC,QAAQ,EAAE,UAAqB,EAAO,EAAE,QAAgB,EAAE,EAAO,EAAE,OAAY;QACvG,QAAQ,QAAQ,EAAE,CAAC;YACjB,KAAK,IAAI;gBACP,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC7D,KAAK,KAAK;gBACR,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC9D,KAAK,GAAG;gBACN,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC5D,KAAK,IAAI;gBACP,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC7D,KAAK,GAAG;gBACN,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC5D,KAAK,IAAI;gBACP,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC7D,KAAK,IAAI;gBACP,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC7D,KAAK,IAAI;gBACP,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC7D;gBACE,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,EAAE,CAAC;AAEL;;GAEG;AACH,SAAgB,eAAe,CAAC,YAAoB,EAAE,OAAY;IAChE,IAAI,CAAC;QACH,MAAM,cAAc,GAAG,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QAC7D,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QACpD,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,4BAA4B,YAAY,GAAG,EAAE,KAAK,CAAC,CAAC;QAClE,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Converts OpenAPI types to TypeScript types
|
|
3
|
+
*/
|
|
4
|
+
export declare function convertTypeToTs(typeDef: any, schemaComponents: {
|
|
5
|
+
[key: string]: any;
|
|
6
|
+
}): string;
|
|
7
|
+
/**
|
|
8
|
+
* Generates a single TypeScript type definition
|
|
9
|
+
*/
|
|
10
|
+
export declare function generateSingleTypeDefinition(typeName: string, schema: any, allSchemas: {
|
|
11
|
+
[key: string]: any;
|
|
12
|
+
}): string;
|
|
13
|
+
/**
|
|
14
|
+
* Generates an inline object interface for allOf composition
|
|
15
|
+
*/
|
|
16
|
+
export declare function generateInlineObjectInterface(schema: any, tempName: string, allSchemas: {
|
|
17
|
+
[key: string]: any;
|
|
18
|
+
}): string;
|
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.convertTypeToTs = convertTypeToTs;
|
|
4
|
+
exports.generateSingleTypeDefinition = generateSingleTypeDefinition;
|
|
5
|
+
exports.generateInlineObjectInterface = generateInlineObjectInterface;
|
|
6
|
+
/**
|
|
7
|
+
* Converts OpenAPI types to TypeScript types
|
|
8
|
+
*/
|
|
9
|
+
function convertTypeToTs(typeDef, schemaComponents) {
|
|
10
|
+
if (!typeDef)
|
|
11
|
+
return 'any';
|
|
12
|
+
if (typeDef.$ref) {
|
|
13
|
+
// Extract the type name from the reference
|
|
14
|
+
const refTypeName = typeDef.$ref.split('/').pop();
|
|
15
|
+
return refTypeName || 'any';
|
|
16
|
+
}
|
|
17
|
+
// Handle allOf (used for composition/references) - combine all properties
|
|
18
|
+
if (typeDef.allOf && Array.isArray(typeDef.allOf)) {
|
|
19
|
+
const combinedProperties = {};
|
|
20
|
+
const refTypes = [];
|
|
21
|
+
for (const item of typeDef.allOf) {
|
|
22
|
+
if (item.$ref) {
|
|
23
|
+
// Extract the type name from the reference
|
|
24
|
+
const refTypeName = item.$ref.split('/').pop();
|
|
25
|
+
if (refTypeName) {
|
|
26
|
+
refTypes.push(refTypeName);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
else if (item.type === 'object' && item.properties) {
|
|
30
|
+
// Combine properties from inline object definitions
|
|
31
|
+
Object.assign(combinedProperties, item.properties);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
if (refTypes.length > 0 && Object.keys(combinedProperties).length > 0) {
|
|
35
|
+
// We have both references and inline properties
|
|
36
|
+
const inlineDef = {
|
|
37
|
+
type: 'object',
|
|
38
|
+
properties: combinedProperties,
|
|
39
|
+
required: typeDef.required
|
|
40
|
+
};
|
|
41
|
+
const inlineType = convertTypeToTs(inlineDef, schemaComponents);
|
|
42
|
+
return `${refTypes.join(' & ')} & ${inlineType}`;
|
|
43
|
+
}
|
|
44
|
+
else if (refTypes.length > 0) {
|
|
45
|
+
// Only references
|
|
46
|
+
return refTypes.join(' & ');
|
|
47
|
+
}
|
|
48
|
+
else if (Object.keys(combinedProperties).length > 0) {
|
|
49
|
+
// Only inline properties
|
|
50
|
+
return convertTypeToTs({
|
|
51
|
+
type: 'object',
|
|
52
|
+
properties: combinedProperties,
|
|
53
|
+
required: typeDef.required
|
|
54
|
+
}, schemaComponents);
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
return 'any';
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
// Handle oneOf (union types)
|
|
61
|
+
if (typeDef.oneOf && Array.isArray(typeDef.oneOf)) {
|
|
62
|
+
return typeDef.oneOf.map((item) => {
|
|
63
|
+
if (item.$ref) {
|
|
64
|
+
return item.$ref.split('/').pop();
|
|
65
|
+
}
|
|
66
|
+
else if (item.type) {
|
|
67
|
+
return convertTypeToTs(item, schemaComponents);
|
|
68
|
+
}
|
|
69
|
+
return 'any';
|
|
70
|
+
}).filter(Boolean).join(' | ') || 'any';
|
|
71
|
+
}
|
|
72
|
+
// Handle anyOf (union types)
|
|
73
|
+
if (typeDef.anyOf && Array.isArray(typeDef.anyOf)) {
|
|
74
|
+
return typeDef.anyOf.map((item) => {
|
|
75
|
+
if (item.$ref) {
|
|
76
|
+
return item.$ref.split('/').pop();
|
|
77
|
+
}
|
|
78
|
+
else if (item.type) {
|
|
79
|
+
return convertTypeToTs(item, schemaComponents);
|
|
80
|
+
}
|
|
81
|
+
return 'any';
|
|
82
|
+
}).filter(Boolean).join(' | ') || 'any';
|
|
83
|
+
}
|
|
84
|
+
if (Array.isArray(typeDef.type)) {
|
|
85
|
+
// Handle union types like ["string", "null"]
|
|
86
|
+
if (typeDef.type.includes('null')) {
|
|
87
|
+
const nonNullTypes = typeDef.type.filter((t) => t !== 'null');
|
|
88
|
+
if (nonNullTypes.length === 1) {
|
|
89
|
+
return `${convertTypeToTs({ ...typeDef, type: nonNullTypes[0] }, schemaComponents)} | null`;
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
// Handle complex union types with null
|
|
93
|
+
const nonNullTypeStr = nonNullTypes
|
|
94
|
+
.map((t) => convertTypeToTs({ ...typeDef, type: t }, schemaComponents))
|
|
95
|
+
.join(' | ');
|
|
96
|
+
return `${nonNullTypeStr} | null`;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
// Handle other array type unions
|
|
100
|
+
return typeDef.type
|
|
101
|
+
.map((t) => convertTypeToTs({ ...typeDef, type: t }, schemaComponents))
|
|
102
|
+
.join(' | ') || 'any';
|
|
103
|
+
}
|
|
104
|
+
switch (typeDef.type) {
|
|
105
|
+
case 'string':
|
|
106
|
+
if (typeDef.enum) {
|
|
107
|
+
return `"${typeDef.enum.join('" | "')}"`;
|
|
108
|
+
}
|
|
109
|
+
if (typeDef.format === 'date' || typeDef.format === 'date-time') {
|
|
110
|
+
return 'string';
|
|
111
|
+
}
|
|
112
|
+
return 'string';
|
|
113
|
+
case 'integer':
|
|
114
|
+
case 'number':
|
|
115
|
+
return 'number';
|
|
116
|
+
case 'boolean':
|
|
117
|
+
return 'boolean';
|
|
118
|
+
case 'array':
|
|
119
|
+
if (typeDef.items) {
|
|
120
|
+
return `${convertTypeToTs(typeDef.items, schemaComponents)}[]`;
|
|
121
|
+
}
|
|
122
|
+
return 'any[]';
|
|
123
|
+
case 'object':
|
|
124
|
+
if (typeDef.properties) {
|
|
125
|
+
// Inline object definition
|
|
126
|
+
const fields = Object.entries(typeDef.properties)
|
|
127
|
+
.map(([propName, propSchema]) => {
|
|
128
|
+
const required = typeDef.required && typeDef.required.includes(propName);
|
|
129
|
+
const optional = !required ? '?' : '';
|
|
130
|
+
const type = convertTypeToTs(propSchema, schemaComponents);
|
|
131
|
+
// Get the description for JSDoc if available
|
|
132
|
+
const propDescription = propSchema.description || propSchema.title;
|
|
133
|
+
const jsDoc = propDescription ? ` /** ${propDescription} */\n` : '';
|
|
134
|
+
return `${jsDoc} ${propName}${optional}: ${type};`;
|
|
135
|
+
})
|
|
136
|
+
.join('\n');
|
|
137
|
+
return `{\n${fields}\n }`;
|
|
138
|
+
}
|
|
139
|
+
return 'Record<string, any>';
|
|
140
|
+
case 'null':
|
|
141
|
+
return 'null';
|
|
142
|
+
default:
|
|
143
|
+
return 'any';
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Generates a single TypeScript type definition
|
|
148
|
+
*/
|
|
149
|
+
function generateSingleTypeDefinition(typeName, schema, allSchemas) {
|
|
150
|
+
if (schema.enum) {
|
|
151
|
+
// Enum type
|
|
152
|
+
return `export type ${typeName} = ${schema.enum.map((val) => `'${val}'`).join(' | ')};\n`;
|
|
153
|
+
}
|
|
154
|
+
if (schema.oneOf || schema.anyOf) {
|
|
155
|
+
// Union type or complex type (oneOf/anyOf)
|
|
156
|
+
const typeOption = schema.oneOf ? 'oneOf' : 'anyOf';
|
|
157
|
+
const types = schema[typeOption].map((item) => {
|
|
158
|
+
if (item.$ref) {
|
|
159
|
+
return item.$ref.split('/').pop();
|
|
160
|
+
}
|
|
161
|
+
else if (item.type) {
|
|
162
|
+
return convertTypeToTs(item, allSchemas);
|
|
163
|
+
}
|
|
164
|
+
else {
|
|
165
|
+
return 'any';
|
|
166
|
+
}
|
|
167
|
+
}).filter(Boolean);
|
|
168
|
+
return `export type ${typeName} = ${types.join(' | ')};\n`;
|
|
169
|
+
}
|
|
170
|
+
if (schema.allOf) {
|
|
171
|
+
// Handle allOf - composition of multiple schemas
|
|
172
|
+
const allParts = [];
|
|
173
|
+
for (const part of schema.allOf) {
|
|
174
|
+
if (part.$ref) {
|
|
175
|
+
const refTypeName = part.$ref.split('/').pop();
|
|
176
|
+
if (refTypeName) {
|
|
177
|
+
allParts.push(refTypeName);
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
else if (part.type === 'object' && part.properties) {
|
|
181
|
+
// Create a temporary interface for inline object
|
|
182
|
+
const inlineInterface = generateInlineObjectInterface(part, `${typeName}Inline`, allSchemas);
|
|
183
|
+
allParts.push(inlineInterface);
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
return `export type ${typeName} = ${allParts.join(' & ')};\n`;
|
|
187
|
+
}
|
|
188
|
+
if (schema.type === 'object') {
|
|
189
|
+
// Object type
|
|
190
|
+
let result = `export interface ${typeName} {\n`;
|
|
191
|
+
if (schema.properties) {
|
|
192
|
+
Object.entries(schema.properties).forEach(([propName, propSchema]) => {
|
|
193
|
+
const required = schema.required && schema.required.includes(propName);
|
|
194
|
+
const optional = !required ? '?' : '';
|
|
195
|
+
// Add JSDoc comment if available (using title or description)
|
|
196
|
+
const jsDoc = propSchema.title || propSchema.description;
|
|
197
|
+
if (jsDoc) {
|
|
198
|
+
result += ` /** ${jsDoc} */\n`;
|
|
199
|
+
}
|
|
200
|
+
result += ` ${propName}${optional}: ${convertTypeToTs(propSchema, allSchemas)};\n`;
|
|
201
|
+
});
|
|
202
|
+
}
|
|
203
|
+
result += '}\n';
|
|
204
|
+
return result;
|
|
205
|
+
}
|
|
206
|
+
// For other types (string, number, etc.) that might have additional properties
|
|
207
|
+
return `export type ${typeName} = ${convertTypeToTs(schema, allSchemas)};\n`;
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Generates an inline object interface for allOf composition
|
|
211
|
+
*/
|
|
212
|
+
function generateInlineObjectInterface(schema, tempName, allSchemas) {
|
|
213
|
+
if (!schema.properties)
|
|
214
|
+
return 'any';
|
|
215
|
+
let result = '{\n';
|
|
216
|
+
Object.entries(schema.properties).forEach(([propName, propSchema]) => {
|
|
217
|
+
const required = schema.required && schema.required.includes(propName);
|
|
218
|
+
const optional = !required ? '?' : '';
|
|
219
|
+
// Add JSDoc comment if available (using title or description)
|
|
220
|
+
const jsDoc = propSchema.title || propSchema.description;
|
|
221
|
+
if (jsDoc) {
|
|
222
|
+
result += ` /** ${jsDoc} */\n`;
|
|
223
|
+
}
|
|
224
|
+
result += ` ${propName}${optional}: ${convertTypeToTs(propSchema, allSchemas)};\n`;
|
|
225
|
+
});
|
|
226
|
+
result += ' }';
|
|
227
|
+
return result;
|
|
228
|
+
}
|
|
229
|
+
//# sourceMappingURL=type.helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"type.helpers.js","sourceRoot":"","sources":["../../src/helpers/type.helpers.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -70,6 +70,14 @@ export interface Parameter {
|
|
|
70
70
|
};
|
|
71
71
|
}
|
|
72
72
|
export declare class SwaggerDocGenerator {
|
|
73
|
+
/**
|
|
74
|
+
* Transforms a string to PascalCase
|
|
75
|
+
*/
|
|
76
|
+
private toPascalCase;
|
|
77
|
+
/**
|
|
78
|
+
* Transforms a string to camelCase
|
|
79
|
+
*/
|
|
80
|
+
private toCamelCase;
|
|
73
81
|
/**
|
|
74
82
|
* Fetches the Swagger/OpenAPI JSON from a given URL
|
|
75
83
|
*/
|
|
@@ -86,12 +94,23 @@ export declare class SwaggerDocGenerator {
|
|
|
86
94
|
* Generates TypeScript type definitions from the schemas in Swagger doc
|
|
87
95
|
*/
|
|
88
96
|
generateTypeDefinitions(swaggerDoc: SwaggerDoc): string;
|
|
97
|
+
/**
|
|
98
|
+
* Generates React hooks from the paths in Swagger doc organized by tag
|
|
99
|
+
*/
|
|
100
|
+
/**
|
|
101
|
+
* Converts OpenAPI types to TypeScript types
|
|
102
|
+
*/
|
|
103
|
+
private convertTypeToTs;
|
|
89
104
|
/**
|
|
90
105
|
* Generates a single TypeScript type definition
|
|
91
106
|
*/
|
|
92
107
|
generateSingleTypeDefinition(typeName: string, schema: any, allSchemas: {
|
|
93
108
|
[key: string]: any;
|
|
94
109
|
}): string;
|
|
110
|
+
/**
|
|
111
|
+
* Generates an inline object interface for allOf composition
|
|
112
|
+
*/
|
|
113
|
+
private generateInlineObjectInterface;
|
|
95
114
|
/**
|
|
96
115
|
* Generates React hooks from the paths in Swagger doc organized by tag
|
|
97
116
|
*/
|
|
@@ -166,4 +185,16 @@ export declare class SwaggerDocGenerator {
|
|
|
166
185
|
hooks: string;
|
|
167
186
|
types: string;
|
|
168
187
|
}>, outputDir: string): void;
|
|
188
|
+
/**
|
|
189
|
+
* Generates frontend resources using Handlebars templates
|
|
190
|
+
*/
|
|
191
|
+
generateHandlebarsResources(swaggerDoc: SwaggerDoc, templatePaths?: {
|
|
192
|
+
hooks?: string;
|
|
193
|
+
types?: string;
|
|
194
|
+
components?: string;
|
|
195
|
+
pages?: string;
|
|
196
|
+
}): Map<string, {
|
|
197
|
+
hooks: string;
|
|
198
|
+
types: string;
|
|
199
|
+
}>;
|
|
169
200
|
}
|