nestia 2.1.0-dev.20220414 → 2.1.0-dev.20220430

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.
Files changed (116) hide show
  1. package/.github/workflows/build.yml +2 -4
  2. package/README.md +84 -14
  3. package/{src/bundle → bundle}/HttpError.ts +0 -0
  4. package/{src/bundle → bundle}/IConnection.ts +0 -0
  5. package/{src/bundle → bundle}/Primitive.ts +0 -0
  6. package/{src/bundle → bundle}/__internal/AesPkcs5.ts +0 -0
  7. package/{src/bundle → bundle}/__internal/Fetcher.ts +0 -0
  8. package/lib/IConfiguration.d.ts +71 -0
  9. package/lib/IConfiguration.d.ts.map +1 -0
  10. package/lib/IConfiguration.js +3 -0
  11. package/lib/NestiaApplication.d.ts +12 -0
  12. package/lib/NestiaApplication.d.ts.map +1 -0
  13. package/lib/NestiaApplication.js +340 -0
  14. package/lib/analyses/ControllerAnalyzer.d.ts +7 -0
  15. package/lib/analyses/ControllerAnalyzer.d.ts.map +1 -0
  16. package/lib/analyses/ControllerAnalyzer.js +191 -0
  17. package/lib/analyses/GenericAnalyzer.d.ts +6 -0
  18. package/lib/analyses/GenericAnalyzer.d.ts.map +1 -0
  19. package/lib/analyses/GenericAnalyzer.js +100 -0
  20. package/lib/analyses/ImportAnalyzer.d.ts +14 -0
  21. package/lib/analyses/ImportAnalyzer.d.ts.map +1 -0
  22. package/lib/analyses/ImportAnalyzer.js +79 -0
  23. package/lib/analyses/ReflectAnalyzer.d.ts +5 -0
  24. package/lib/analyses/ReflectAnalyzer.d.ts.map +1 -0
  25. package/lib/analyses/ReflectAnalyzer.js +313 -0
  26. package/lib/analyses/SourceFinder.d.ts +5 -0
  27. package/lib/analyses/SourceFinder.d.ts.map +1 -0
  28. package/lib/analyses/SourceFinder.js +260 -0
  29. package/lib/executable/internal/CompilerOptions.d.ts +14 -0
  30. package/lib/executable/internal/CompilerOptions.d.ts.map +1 -0
  31. package/lib/executable/internal/CompilerOptions.js +126 -0
  32. package/lib/executable/internal/NestiaCommand.d.ts +5 -0
  33. package/lib/executable/internal/NestiaCommand.d.ts.map +1 -0
  34. package/lib/executable/internal/NestiaCommand.js +228 -0
  35. package/lib/executable/internal/NestiaConfig.d.ts +5 -0
  36. package/lib/executable/internal/NestiaConfig.d.ts.map +1 -0
  37. package/lib/executable/internal/NestiaConfig.js +277 -0
  38. package/lib/executable/internal/nestia.config.getter.d.ts +2 -0
  39. package/lib/executable/internal/nestia.config.getter.d.ts.map +1 -0
  40. package/lib/executable/internal/nestia.config.getter.js +60 -0
  41. package/lib/executable/nestia.d.ts +3 -0
  42. package/lib/executable/nestia.d.ts.map +1 -0
  43. package/lib/executable/nestia.js +129 -0
  44. package/lib/generates/FileGenerator.d.ts +6 -0
  45. package/lib/generates/FileGenerator.d.ts.map +1 -0
  46. package/lib/generates/FileGenerator.js +326 -0
  47. package/lib/generates/FunctionGenerator.d.ts +6 -0
  48. package/lib/generates/FunctionGenerator.d.ts.map +1 -0
  49. package/lib/generates/FunctionGenerator.js +217 -0
  50. package/lib/generates/SdkGenerator.d.ts +8 -0
  51. package/lib/generates/SdkGenerator.d.ts.map +1 -0
  52. package/lib/generates/SdkGenerator.js +128 -0
  53. package/lib/generates/SwaggerGenerator.d.ts +7 -0
  54. package/lib/generates/SwaggerGenerator.d.ts.map +1 -0
  55. package/lib/generates/SwaggerGenerator.js +258 -0
  56. package/lib/index.d.ts +3 -0
  57. package/lib/index.d.ts.map +1 -0
  58. package/lib/index.js +28 -0
  59. package/lib/module.d.ts +3 -0
  60. package/lib/module.d.ts.map +1 -0
  61. package/lib/module.js +19 -0
  62. package/{src/structures/IController.ts → lib/structures/IController.d.ts} +6 -13
  63. package/lib/structures/IController.d.ts.map +1 -0
  64. package/lib/structures/IController.js +3 -0
  65. package/{src/structures/IRoute.ts → lib/structures/IRoute.d.ts} +8 -13
  66. package/lib/structures/IRoute.d.ts.map +1 -0
  67. package/lib/structures/IRoute.js +3 -0
  68. package/lib/structures/ISwagger.d.ts +36 -0
  69. package/lib/structures/ISwagger.d.ts.map +1 -0
  70. package/lib/structures/ISwagger.js +3 -0
  71. package/lib/structures/IType.d.ts +6 -0
  72. package/lib/structures/IType.d.ts.map +1 -0
  73. package/lib/structures/IType.js +3 -0
  74. package/lib/structures/MethodType.d.ts +5 -0
  75. package/lib/structures/MethodType.d.ts.map +1 -0
  76. package/lib/structures/MethodType.js +8 -0
  77. package/lib/structures/ParamCategory.d.ts +2 -0
  78. package/lib/structures/ParamCategory.d.ts.map +1 -0
  79. package/lib/structures/ParamCategory.js +3 -0
  80. package/lib/utils/ArrayUtil.d.ts +6 -0
  81. package/lib/utils/ArrayUtil.d.ts.map +1 -0
  82. package/lib/utils/ArrayUtil.js +144 -0
  83. package/lib/utils/DirectoryUtil.d.ts +6 -0
  84. package/lib/utils/DirectoryUtil.d.ts.map +1 -0
  85. package/lib/utils/DirectoryUtil.js +190 -0
  86. package/lib/utils/ImportDictionary.d.ts +7 -0
  87. package/lib/utils/ImportDictionary.d.ts.map +1 -0
  88. package/lib/utils/ImportDictionary.js +83 -0
  89. package/lib/utils/MapUtil.d.ts +4 -0
  90. package/lib/utils/MapUtil.d.ts.map +1 -0
  91. package/lib/utils/MapUtil.js +16 -0
  92. package/lib/utils/StringUtil.d.ts +4 -0
  93. package/lib/utils/StringUtil.d.ts.map +1 -0
  94. package/lib/utils/StringUtil.js +13 -0
  95. package/package.json +17 -10
  96. package/src/IConfiguration.ts +0 -17
  97. package/src/NestiaApplication.ts +0 -96
  98. package/src/analyses/ControllerAnalyzer.ts +0 -154
  99. package/src/analyses/GenericAnalyzer.ts +0 -52
  100. package/src/analyses/ImportAnalyzer.ts +0 -93
  101. package/src/analyses/ReflectAnalyzer.ts +0 -221
  102. package/src/analyses/SourceFinder.ts +0 -73
  103. package/src/bin/nestia.ts +0 -125
  104. package/src/executable/sdk.ts +0 -89
  105. package/src/generates/FileGenerator.ts +0 -150
  106. package/src/generates/FunctionGenerator.ts +0 -201
  107. package/src/generates/SdkGenerator.ts +0 -39
  108. package/src/internal/CompilerOptions.ts +0 -142
  109. package/src/structures/MethodType.ts +0 -6
  110. package/src/structures/ParamCategory.ts +0 -1
  111. package/src/utils/ArrayUtil.ts +0 -26
  112. package/src/utils/DirectoryUtil.ts +0 -48
  113. package/src/utils/ImportDictionary.ts +0 -44
  114. package/src/utils/StringUtil.ts +0 -10
  115. package/src/utils/stripJsonComments.ts +0 -79
  116. package/tsconfig.json +0 -82
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (_) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ var WorkerServer_1 = require("tgrid/protocols/workers/WorkerServer");
40
+ var NestiaConfig_1 = require("./NestiaConfig");
41
+ function main() {
42
+ return __awaiter(this, void 0, void 0, function () {
43
+ var worker;
44
+ return __generator(this, function (_a) {
45
+ switch (_a.label) {
46
+ case 0:
47
+ worker = new WorkerServer_1.WorkerServer();
48
+ return [4 /*yield*/, worker.open(NestiaConfig_1.NestiaConfig)];
49
+ case 1:
50
+ _a.sent();
51
+ return [2 /*return*/];
52
+ }
53
+ });
54
+ });
55
+ }
56
+ main().catch(function (exp) {
57
+ console.log(exp);
58
+ process.exit(-1);
59
+ });
60
+ //# sourceMappingURL=nestia.config.getter.js.map
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=nestia.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nestia.d.ts","sourceRoot":"","sources":["../../src/executable/nestia.ts"],"names":[],"mappings":""}
@@ -0,0 +1,129 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = { enumerable: true, get: function() { return m[k]; } };
8
+ }
9
+ Object.defineProperty(o, k2, desc);
10
+ }) : (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ o[k2] = m[k];
13
+ }));
14
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
16
+ }) : function(o, v) {
17
+ o["default"] = v;
18
+ });
19
+ var __importStar = (this && this.__importStar) || function (mod) {
20
+ if (mod && mod.__esModule) return mod;
21
+ var result = {};
22
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
23
+ __setModuleDefault(result, mod);
24
+ return result;
25
+ };
26
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
27
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
28
+ return new (P || (P = Promise))(function (resolve, reject) {
29
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
30
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
31
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
32
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
33
+ });
34
+ };
35
+ var __generator = (this && this.__generator) || function (thisArg, body) {
36
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
37
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
38
+ function verb(n) { return function (v) { return step([n, v]); }; }
39
+ function step(op) {
40
+ if (f) throw new TypeError("Generator is already executing.");
41
+ while (_) try {
42
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
43
+ if (y = 0, t) op = [op[0] & 2, t.value];
44
+ switch (op[0]) {
45
+ case 0: case 1: t = op; break;
46
+ case 4: _.label++; return { value: op[1], done: false };
47
+ case 5: _.label++; y = op[1]; op = [0]; continue;
48
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
49
+ default:
50
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
51
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
52
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
53
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
54
+ if (t[2]) _.ops.pop();
55
+ _.trys.pop(); continue;
56
+ }
57
+ op = body.call(thisArg, _);
58
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
59
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
60
+ }
61
+ };
62
+ var __values = (this && this.__values) || function(o) {
63
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
64
+ if (m) return m.call(o);
65
+ if (o && typeof o.length === "number") return {
66
+ next: function () {
67
+ if (o && i >= o.length) o = void 0;
68
+ return { value: o && o[i++], done: !o };
69
+ }
70
+ };
71
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
72
+ };
73
+ Object.defineProperty(exports, "__esModule", { value: true });
74
+ var cp = __importStar(require("child_process"));
75
+ var process = __importStar(require("process"));
76
+ var NestiaCommand_1 = require("./internal/NestiaCommand");
77
+ function install() {
78
+ var e_1, _a;
79
+ try {
80
+ // INSTALL DEPENDENCIES
81
+ for (var _b = __values(["nestia-fetcher", "typescript-is", "typescript-json"]), _c = _b.next(); !_c.done; _c = _b.next()) {
82
+ var lib = _c.value;
83
+ var command = "npm install ".concat(lib);
84
+ cp.execSync(command, { stdio: "inherit" });
85
+ }
86
+ }
87
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
88
+ finally {
89
+ try {
90
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
91
+ }
92
+ finally { if (e_1) throw e_1.error; }
93
+ }
94
+ }
95
+ function main() {
96
+ return __awaiter(this, void 0, void 0, function () {
97
+ var argv;
98
+ return __generator(this, function (_a) {
99
+ switch (_a.label) {
100
+ case 0:
101
+ argv = process.argv.slice(3);
102
+ if (!(process.argv[2] === "install")) return [3 /*break*/, 2];
103
+ return [4 /*yield*/, install()];
104
+ case 1:
105
+ _a.sent();
106
+ return [3 /*break*/, 7];
107
+ case 2:
108
+ if (!(process.argv[2] === "sdk")) return [3 /*break*/, 4];
109
+ return [4 /*yield*/, NestiaCommand_1.NestiaCommand.sdk(argv)];
110
+ case 3:
111
+ _a.sent();
112
+ return [3 /*break*/, 7];
113
+ case 4:
114
+ if (!(process.argv[2] === "swagger")) return [3 /*break*/, 6];
115
+ return [4 /*yield*/, NestiaCommand_1.NestiaCommand.swagger(argv)];
116
+ case 5:
117
+ _a.sent();
118
+ return [3 /*break*/, 7];
119
+ case 6: throw new Error("nestia supports only three commands; (install, sdk, swagger), however you've typed the \"".concat(process.argv[2], "\""));
120
+ case 7: return [2 /*return*/];
121
+ }
122
+ });
123
+ });
124
+ }
125
+ main().catch(function (exp) {
126
+ console.log(exp.message);
127
+ process.exit(-1);
128
+ });
129
+ //# sourceMappingURL=nestia.js.map
@@ -0,0 +1,6 @@
1
+ import { IConfiguration } from "../IConfiguration";
2
+ import { IRoute } from "../structures/IRoute";
3
+ export declare namespace FileGenerator {
4
+ function generate(config: IConfiguration, routeList: IRoute[]): Promise<void>;
5
+ }
6
+ //# sourceMappingURL=FileGenerator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileGenerator.d.ts","sourceRoot":"","sources":["../../src/generates/FileGenerator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAI9C,yBAAiB,aAAa,CAC9B;IAII,SAAsB,QAAQ,CAAC,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAYzF;CAyHJ"}
@@ -0,0 +1,326 @@
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 (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
+ return new (P || (P = Promise))(function (resolve, reject) {
28
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
32
+ });
33
+ };
34
+ var __generator = (this && this.__generator) || function (thisArg, body) {
35
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
36
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
37
+ function verb(n) { return function (v) { return step([n, v]); }; }
38
+ function step(op) {
39
+ if (f) throw new TypeError("Generator is already executing.");
40
+ while (_) try {
41
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
42
+ if (y = 0, t) op = [op[0] & 2, t.value];
43
+ switch (op[0]) {
44
+ case 0: case 1: t = op; break;
45
+ case 4: _.label++; return { value: op[1], done: false };
46
+ case 5: _.label++; y = op[1]; op = [0]; continue;
47
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
48
+ default:
49
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
50
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
51
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
52
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
53
+ if (t[2]) _.ops.pop();
54
+ _.trys.pop(); continue;
55
+ }
56
+ op = body.call(thisArg, _);
57
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
58
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
59
+ }
60
+ };
61
+ var __values = (this && this.__values) || function(o) {
62
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
63
+ if (m) return m.call(o);
64
+ if (o && typeof o.length === "number") return {
65
+ next: function () {
66
+ if (o && i >= o.length) o = void 0;
67
+ return { value: o && o[i++], done: !o };
68
+ }
69
+ };
70
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
71
+ };
72
+ var __read = (this && this.__read) || function (o, n) {
73
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
74
+ if (!m) return o;
75
+ var i = m.call(o), r, ar = [], e;
76
+ try {
77
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
78
+ }
79
+ catch (error) { e = { error: error }; }
80
+ finally {
81
+ try {
82
+ if (r && !r.done && (m = i["return"])) m.call(i);
83
+ }
84
+ finally { if (e) throw e.error; }
85
+ }
86
+ return ar;
87
+ };
88
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
89
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
90
+ if (ar || !(i in from)) {
91
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
92
+ ar[i] = from[i];
93
+ }
94
+ }
95
+ return to.concat(ar || Array.prototype.slice.call(from));
96
+ };
97
+ Object.defineProperty(exports, "__esModule", { value: true });
98
+ exports.FileGenerator = void 0;
99
+ var fs = __importStar(require("fs"));
100
+ var HashMap_1 = require("tstl/container/HashMap");
101
+ var ImportDictionary_1 = require("../utils/ImportDictionary");
102
+ var FunctionGenerator_1 = require("./FunctionGenerator");
103
+ var FileGenerator;
104
+ (function (FileGenerator) {
105
+ /* ---------------------------------------------------------
106
+ CONSTRUCTOR
107
+ --------------------------------------------------------- */
108
+ function generate(config, routeList) {
109
+ return __awaiter(this, void 0, void 0, function () {
110
+ var root, routeList_1, routeList_1_1, route;
111
+ var e_1, _a;
112
+ return __generator(this, function (_b) {
113
+ switch (_b.label) {
114
+ case 0:
115
+ root = new Directory(null, "functional");
116
+ try {
117
+ for (routeList_1 = __values(routeList), routeList_1_1 = routeList_1.next(); !routeList_1_1.done; routeList_1_1 = routeList_1.next()) {
118
+ route = routeList_1_1.value;
119
+ emplace(root, route);
120
+ }
121
+ }
122
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
123
+ finally {
124
+ try {
125
+ if (routeList_1_1 && !routeList_1_1.done && (_a = routeList_1.return)) _a.call(routeList_1);
126
+ }
127
+ finally { if (e_1) throw e_1.error; }
128
+ }
129
+ // RELOCATE FOR ONLY ONE CONTROLLER METHOD IN AN URL CASE
130
+ relocate(root);
131
+ // ITERATE FILES
132
+ return [4 /*yield*/, iterate(config, config.output + "/functional", root)];
133
+ case 1:
134
+ // ITERATE FILES
135
+ _b.sent();
136
+ return [2 /*return*/];
137
+ }
138
+ });
139
+ });
140
+ }
141
+ FileGenerator.generate = generate;
142
+ function emplace(directory, route) {
143
+ var e_2, _a;
144
+ // SEPARATE IDENTIFIERS
145
+ var identifiers = route.path
146
+ .split("/")
147
+ .filter(function (str) { return str[0] !== ":" && str.length !== 0; })
148
+ .map(function (str) { return str.split("-").join("_").split(".").join("_"); });
149
+ var _loop_1 = function (key) {
150
+ directory = directory.directories.take(key, function () { return new Directory(directory, key); });
151
+ };
152
+ try {
153
+ // OPEN DIRECTORIES
154
+ for (var identifiers_1 = __values(identifiers), identifiers_1_1 = identifiers_1.next(); !identifiers_1_1.done; identifiers_1_1 = identifiers_1.next()) {
155
+ var key = identifiers_1_1.value;
156
+ _loop_1(key);
157
+ }
158
+ }
159
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
160
+ finally {
161
+ try {
162
+ if (identifiers_1_1 && !identifiers_1_1.done && (_a = identifiers_1.return)) _a.call(identifiers_1);
163
+ }
164
+ finally { if (e_2) throw e_2.error; }
165
+ }
166
+ // ADD ROUTE
167
+ directory.routes.push(route);
168
+ }
169
+ function relocate(directory) {
170
+ var e_3, _a;
171
+ if (directory.parent !== null
172
+ && directory.directories.empty()
173
+ && directory.routes.length === 1
174
+ && directory.name === directory.routes[0].name) {
175
+ directory.parent.routes.push(directory.routes[0]);
176
+ directory.parent.directories.erase(directory.name);
177
+ }
178
+ else if (directory.directories.empty() === false)
179
+ try {
180
+ for (var _b = __values(directory.directories), _c = _b.next(); !_c.done; _c = _b.next()) {
181
+ var it = _c.value;
182
+ relocate(it.second);
183
+ }
184
+ }
185
+ catch (e_3_1) { e_3 = { error: e_3_1 }; }
186
+ finally {
187
+ try {
188
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
189
+ }
190
+ finally { if (e_3) throw e_3.error; }
191
+ }
192
+ }
193
+ /* ---------------------------------------------------------
194
+ FILE ITERATOR
195
+ --------------------------------------------------------- */
196
+ function iterate(config, outDir, directory) {
197
+ return __awaiter(this, void 0, void 0, function () {
198
+ var _a, content, _b, _c, it, e_4_1, importDict, primitived, asserted, json, fetcher, head, script;
199
+ var e_4, _d;
200
+ return __generator(this, function (_e) {
201
+ switch (_e.label) {
202
+ case 0:
203
+ _e.trys.push([0, 2, , 3]);
204
+ return [4 /*yield*/, fs.promises.mkdir(outDir)];
205
+ case 1:
206
+ _e.sent();
207
+ return [3 /*break*/, 3];
208
+ case 2:
209
+ _a = _e.sent();
210
+ return [3 /*break*/, 3];
211
+ case 3:
212
+ content = [];
213
+ _e.label = 4;
214
+ case 4:
215
+ _e.trys.push([4, 9, 10, 11]);
216
+ _b = __values(directory.directories), _c = _b.next();
217
+ _e.label = 5;
218
+ case 5:
219
+ if (!!_c.done) return [3 /*break*/, 8];
220
+ it = _c.value;
221
+ return [4 /*yield*/, iterate(config, "".concat(outDir, "/").concat(it.first), it.second)];
222
+ case 6:
223
+ _e.sent();
224
+ content.push("export * as ".concat(it.first, " from \"./").concat(it.first, "\";"));
225
+ _e.label = 7;
226
+ case 7:
227
+ _c = _b.next();
228
+ return [3 /*break*/, 5];
229
+ case 8: return [3 /*break*/, 11];
230
+ case 9:
231
+ e_4_1 = _e.sent();
232
+ e_4 = { error: e_4_1 };
233
+ return [3 /*break*/, 11];
234
+ case 10:
235
+ try {
236
+ if (_c && !_c.done && (_d = _b.return)) _d.call(_b);
237
+ }
238
+ finally { if (e_4) throw e_4.error; }
239
+ return [7 /*endfinally*/];
240
+ case 11:
241
+ if (content.length && directory.routes.length)
242
+ content.push("");
243
+ importDict = new ImportDictionary_1.ImportDictionary();
244
+ directory.routes.forEach(function (route, i) {
245
+ var e_5, _a, e_6, _b;
246
+ try {
247
+ for (var _c = __values(route.imports), _d = _c.next(); !_d.done; _d = _c.next()) {
248
+ var tuple = _d.value;
249
+ try {
250
+ for (var _e = (e_6 = void 0, __values(tuple[1])), _f = _e.next(); !_f.done; _f = _e.next()) {
251
+ var instance = _f.value;
252
+ importDict.emplace(tuple[0], false, instance);
253
+ }
254
+ }
255
+ catch (e_6_1) { e_6 = { error: e_6_1 }; }
256
+ finally {
257
+ try {
258
+ if (_f && !_f.done && (_b = _e.return)) _b.call(_e);
259
+ }
260
+ finally { if (e_6) throw e_6.error; }
261
+ }
262
+ }
263
+ }
264
+ catch (e_5_1) { e_5 = { error: e_5_1 }; }
265
+ finally {
266
+ try {
267
+ if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
268
+ }
269
+ finally { if (e_5) throw e_5.error; }
270
+ }
271
+ content.push(FunctionGenerator_1.FunctionGenerator.generate(config, route));
272
+ if (i !== directory.routes.length - 1)
273
+ content.push("");
274
+ });
275
+ // FINALIZE THE CONTENT
276
+ if (directory.routes.length !== 0) {
277
+ primitived = directory.routes.some(function (route) { return route.output.escapedText !== "void"
278
+ || route.parameters.some(function (param) { return param.category !== "param"; }); });
279
+ asserted = config.assert === true
280
+ && directory.routes.some(function (route) { return route.parameters.length !== 0; });
281
+ json = config.json === true
282
+ && directory.routes.some(function (route) { return route.method === "POST" || route.method === "PUT" || route.method === "PATCH"; });
283
+ fetcher = ["Fetcher"];
284
+ if (primitived)
285
+ fetcher.push("Primitive");
286
+ head = [
287
+ "import { ".concat(fetcher.join(", "), " } from \"nestia-fetcher\";"),
288
+ "import type { IConnection } from \"nestia-fetcher\";",
289
+ ];
290
+ if (asserted)
291
+ head.push("import { assertType } from \"typescript-is\";");
292
+ if (json)
293
+ head.push("import { createStringifier } from \"typescript-json\";");
294
+ if (!importDict.empty())
295
+ head.push("", importDict.toScript(outDir));
296
+ content.push.apply(content, __spreadArray(__spreadArray(__spreadArray([], __read(head), false), [""], false), __read(content.splice(0, content.length)), false));
297
+ }
298
+ script = "/**\n"
299
+ + " * @packageDocumentation\n"
300
+ + " * @module ".concat(directory.module, "\n")
301
+ + " * @nestia Generated by Nestia - https://github.com/samchon/nestia \n"
302
+ + " */\n"
303
+ + "//================================================================\n"
304
+ + content.join("\n");
305
+ return [4 /*yield*/, fs.promises.writeFile("".concat(outDir, "/index.ts"), script, "utf8")];
306
+ case 12:
307
+ _e.sent();
308
+ return [2 /*return*/];
309
+ }
310
+ });
311
+ });
312
+ }
313
+ })(FileGenerator = exports.FileGenerator || (exports.FileGenerator = {}));
314
+ var Directory = /** @class */ (function () {
315
+ function Directory(parent, name) {
316
+ this.parent = parent;
317
+ this.name = name;
318
+ this.directories = new HashMap_1.HashMap();
319
+ this.routes = [];
320
+ this.module = (this.parent !== null)
321
+ ? "".concat(this.parent.module, ".").concat(name)
322
+ : "api.".concat(name);
323
+ }
324
+ return Directory;
325
+ }());
326
+ //# sourceMappingURL=FileGenerator.js.map
@@ -0,0 +1,6 @@
1
+ import { IConfiguration } from "../IConfiguration";
2
+ import { IRoute } from "../structures/IRoute";
3
+ export declare namespace FunctionGenerator {
4
+ function generate(config: IConfiguration, route: IRoute): string;
5
+ }
6
+ //# sourceMappingURL=FunctionGenerator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FunctionGenerator.d.ts","sourceRoot":"","sources":["../../src/generates/FunctionGenerator.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9C,yBAAiB,iBAAiB,CAClC;IACI,SAAgB,QAAQ,CAAC,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAStE;CAqNJ"}