@innet/server 2.0.0-alpha.9 → 2.0.0-beta.2

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 (345) hide show
  1. package/README.md +1063 -445
  2. package/handler/handler.d.ts +23 -18
  3. package/handler/handler.es6.js +15 -14
  4. package/handler/handler.js +14 -13
  5. package/hooks/index.d.ts +6 -1
  6. package/hooks/index.es6.js +6 -1
  7. package/hooks/index.js +6 -1
  8. package/hooks/useAction/useAction.es6.js +1 -1
  9. package/hooks/useAction/useAction.js +1 -1
  10. package/hooks/useApi/useApi.d.ts +1 -3
  11. package/hooks/useClientIp/useClientIp.d.ts +1 -1
  12. package/hooks/useEndpoint/useEndpoint.d.ts +1 -1
  13. package/hooks/useEndpoint/useEndpoint.es6.js +3 -1
  14. package/hooks/useEndpoint/useEndpoint.js +3 -1
  15. package/hooks/useHeaders/useHeaders.d.ts +0 -1
  16. package/hooks/useIsServerHttps/index.d.ts +1 -0
  17. package/hooks/useIsServerHttps/index.es6.js +1 -0
  18. package/hooks/useIsServerHttps/index.js +10 -0
  19. package/hooks/useIsServerHttps/useIsServerHttps.d.ts +3 -0
  20. package/hooks/useIsServerHttps/useIsServerHttps.es6.js +14 -0
  21. package/hooks/useIsServerHttps/useIsServerHttps.js +19 -0
  22. package/hooks/useNewSchema/useNewSchema.es6.js +2 -2
  23. package/hooks/useNewSchema/useNewSchema.js +2 -2
  24. package/hooks/useObjectSchemaContext/index.d.ts +1 -0
  25. package/hooks/useObjectSchemaContext/index.es6.js +1 -0
  26. package/hooks/useObjectSchemaContext/index.js +10 -0
  27. package/hooks/useObjectSchemaContext/useObjectSchemaContext.d.ts +3 -0
  28. package/hooks/useObjectSchemaContext/useObjectSchemaContext.es6.js +14 -0
  29. package/hooks/useObjectSchemaContext/useObjectSchemaContext.js +19 -0
  30. package/hooks/useRequest/index.es6.js +1 -1
  31. package/hooks/useRequest/index.js +0 -1
  32. package/hooks/useRequest/useRequest.d.ts +1 -5
  33. package/hooks/useRequest/useRequest.es6.js +4 -4
  34. package/hooks/useRequest/useRequest.js +3 -4
  35. package/hooks/useRequestHandler/index.d.ts +1 -0
  36. package/hooks/useRequestHandler/index.es6.js +1 -0
  37. package/hooks/useRequestHandler/index.js +10 -0
  38. package/hooks/useRequestHandler/useRequestHandler.d.ts +4 -0
  39. package/hooks/useRequestHandler/useRequestHandler.es6.js +14 -0
  40. package/hooks/useRequestHandler/useRequestHandler.js +19 -0
  41. package/hooks/useResponse/index.es6.js +1 -1
  42. package/hooks/useResponse/index.js +0 -1
  43. package/hooks/useResponse/useResponse.d.ts +1 -5
  44. package/hooks/useResponse/useResponse.es6.js +4 -4
  45. package/hooks/useResponse/useResponse.js +3 -4
  46. package/hooks/useSchemaType/useSchemaType.d.ts +3 -2
  47. package/hooks/useSchemaType/useSchemaType.es6.js +16 -9
  48. package/hooks/useSchemaType/useSchemaType.js +16 -9
  49. package/hooks/useServer/useServer.d.ts +2 -3
  50. package/hooks/useServer/useServer.es6.js +3 -1
  51. package/hooks/useServer/useServer.js +3 -1
  52. package/hooks/useServerPlugin/index.d.ts +1 -0
  53. package/hooks/useServerPlugin/index.es6.js +1 -0
  54. package/hooks/useServerPlugin/index.js +9 -0
  55. package/hooks/useServerPlugin/useServerPlugin.d.ts +2 -0
  56. package/hooks/useServerPlugin/useServerPlugin.es6.js +13 -0
  57. package/hooks/useServerPlugin/useServerPlugin.js +17 -0
  58. package/hooks/useServerPlugins/index.d.ts +1 -0
  59. package/hooks/useServerPlugins/index.es6.js +1 -0
  60. package/hooks/useServerPlugins/index.js +10 -0
  61. package/hooks/useServerPlugins/useServerPlugins.d.ts +4 -0
  62. package/hooks/useServerPlugins/useServerPlugins.es6.js +14 -0
  63. package/hooks/useServerPlugins/useServerPlugins.js +19 -0
  64. package/hooks/useServerPort/index.d.ts +1 -0
  65. package/hooks/useServerPort/index.es6.js +1 -0
  66. package/hooks/useServerPort/index.js +10 -0
  67. package/hooks/useServerPort/useServerPort.d.ts +3 -0
  68. package/hooks/useServerPort/useServerPort.es6.js +14 -0
  69. package/hooks/useServerPort/useServerPort.js +19 -0
  70. package/index.es6.js +15 -9
  71. package/index.js +30 -14
  72. package/package.json +15 -16
  73. package/plugins/handler/serverFn/serverFn.es6.js +1 -1
  74. package/plugins/handler/serverFn/serverFn.js +1 -1
  75. package/plugins/main/api/api.d.ts +11 -8
  76. package/plugins/main/api/api.es6.js +112 -113
  77. package/plugins/main/api/api.js +111 -112
  78. package/plugins/main/body/body.d.ts +1 -0
  79. package/plugins/main/contact/contact.d.ts +2 -2
  80. package/plugins/main/endpoint/endpoint.d.ts +21 -15
  81. package/plugins/main/endpoint/endpoint.es6.js +11 -9
  82. package/plugins/main/endpoint/endpoint.js +10 -8
  83. package/plugins/main/host/host.d.ts +5 -5
  84. package/plugins/main/host/host.es6.js +3 -1
  85. package/plugins/main/host/host.js +3 -1
  86. package/plugins/main/index.d.ts +2 -2
  87. package/plugins/main/index.es6.js +2 -2
  88. package/plugins/main/index.js +2 -2
  89. package/plugins/main/license/license.d.ts +5 -5
  90. package/plugins/main/param/param.d.ts +12 -11
  91. package/plugins/main/param/param.es6.js +6 -7
  92. package/plugins/main/param/param.js +5 -6
  93. package/plugins/main/preset/index.d.ts +1 -0
  94. package/plugins/main/preset/index.es6.js +1 -0
  95. package/plugins/{utils/prod → main/preset}/index.js +2 -2
  96. package/plugins/main/preset/preset.d.ts +3 -0
  97. package/plugins/main/preset/preset.es6.js +13 -0
  98. package/plugins/{utils/dev/dev.js → main/preset/preset.js} +9 -6
  99. package/plugins/main/response/index.es6.js +1 -1
  100. package/plugins/main/response/index.js +1 -0
  101. package/plugins/main/response/response.d.ts +6 -1
  102. package/plugins/main/response/response.es6.js +28 -12
  103. package/plugins/main/response/response.js +27 -10
  104. package/plugins/main/return/index.d.ts +1 -0
  105. package/plugins/main/return/index.es6.js +1 -0
  106. package/plugins/main/return/index.js +9 -0
  107. package/plugins/main/return/return.d.ts +4 -0
  108. package/plugins/main/return/return.es6.js +10 -0
  109. package/plugins/main/return/return.js +14 -0
  110. package/plugins/main/server/server.d.ts +6 -6
  111. package/plugins/main/server/server.es6.js +40 -16
  112. package/plugins/main/server/server.js +39 -15
  113. package/plugins/main/tag/tag.d.ts +3 -2
  114. package/plugins/main/tag/tag.es6.js +6 -4
  115. package/plugins/main/tag/tag.js +5 -3
  116. package/plugins/main/variable/variable.d.ts +5 -5
  117. package/plugins/main/variable/variable.es6.js +4 -3
  118. package/plugins/main/variable/variable.js +4 -3
  119. package/plugins/request/cms/cms.d.ts +1 -0
  120. package/plugins/request/cms/cms.es6.js +3 -4
  121. package/plugins/request/cms/cms.js +2 -3
  122. package/plugins/request/cookie/cookie.d.ts +2 -2
  123. package/plugins/request/cookie/cookie.es6.js +1 -2
  124. package/plugins/request/cookie/cookie.js +1 -2
  125. package/plugins/request/error/error.d.ts +41 -40
  126. package/plugins/request/error/error.es6.js +47 -45
  127. package/plugins/request/error/error.js +46 -44
  128. package/plugins/request/file/file.d.ts +1 -0
  129. package/plugins/request/file/file.es6.js +4 -6
  130. package/plugins/request/file/file.js +3 -5
  131. package/plugins/request/header/header.es6.js +1 -1
  132. package/plugins/request/header/header.js +1 -1
  133. package/plugins/request/proxy/proxy.d.ts +3 -1
  134. package/plugins/request/proxy/proxy.es6.js +5 -2
  135. package/plugins/request/proxy/proxy.js +5 -2
  136. package/plugins/request/redirect/redirect.d.ts +8 -7
  137. package/plugins/request/redirect/redirect.es6.js +7 -7
  138. package/plugins/request/redirect/redirect.js +7 -7
  139. package/plugins/request/success/success.d.ts +8 -6
  140. package/plugins/request/success/success.es6.js +21 -11
  141. package/plugins/request/success/success.js +20 -10
  142. package/plugins/schema/any/any.d.ts +5 -0
  143. package/plugins/schema/any/any.es6.js +27 -0
  144. package/plugins/schema/any/any.js +31 -0
  145. package/plugins/schema/array/array.d.ts +1 -0
  146. package/plugins/schema/array/array.es6.js +2 -3
  147. package/plugins/schema/array/array.js +1 -2
  148. package/plugins/schema/binary/binary.d.ts +3 -3
  149. package/plugins/schema/date/date.d.ts +1 -1
  150. package/plugins/schema/date/date.es6.js +8 -4
  151. package/plugins/schema/date/date.js +8 -4
  152. package/plugins/schema/field/field.d.ts +2 -0
  153. package/plugins/schema/field/field.es6.js +8 -8
  154. package/plugins/schema/field/field.js +6 -6
  155. package/plugins/schema/index.d.ts +1 -0
  156. package/plugins/schema/index.es6.js +1 -0
  157. package/plugins/schema/index.js +1 -0
  158. package/plugins/schema/integer/integer.d.ts +3 -3
  159. package/plugins/schema/integer/integer.es6.js +8 -3
  160. package/plugins/schema/integer/integer.js +8 -3
  161. package/plugins/schema/number/number.d.ts +2 -2
  162. package/plugins/schema/number/number.es6.js +1 -2
  163. package/plugins/schema/number/number.js +1 -2
  164. package/plugins/schema/object/object.d.ts +1 -0
  165. package/plugins/schema/object/object.es6.js +19 -7
  166. package/plugins/schema/object/object.js +18 -6
  167. package/plugins/schema/string/string.d.ts +2 -2
  168. package/plugins/schema/string/string.es6.js +44 -31
  169. package/plugins/schema/string/string.js +44 -31
  170. package/plugins/schema/tuple/tuple.d.ts +1 -0
  171. package/plugins/schema/tuple/tuple.es6.js +4 -5
  172. package/plugins/schema/tuple/tuple.js +3 -4
  173. package/plugins/schema/uuid/uuid.es6.js +5 -3
  174. package/plugins/schema/uuid/uuid.js +5 -3
  175. package/plugins/utils/blacklist/blacklist.d.ts +5 -0
  176. package/plugins/utils/blacklist/blacklist.es6.js +17 -0
  177. package/plugins/utils/blacklist/blacklist.js +21 -0
  178. package/plugins/utils/blacklist/index.d.ts +1 -0
  179. package/plugins/utils/blacklist/index.es6.js +1 -0
  180. package/plugins/utils/blacklist/index.js +9 -0
  181. package/plugins/utils/dts/dts.d.ts +2 -1
  182. package/plugins/utils/dts/dts.es6.js +2 -2
  183. package/plugins/utils/dts/dts.js +2 -2
  184. package/plugins/utils/env/env.d.ts +7 -0
  185. package/plugins/utils/env/env.es6.js +11 -0
  186. package/plugins/utils/{prod/prod.js → env/env.js} +5 -4
  187. package/plugins/utils/env/index.d.ts +1 -0
  188. package/plugins/utils/env/index.es6.js +1 -0
  189. package/plugins/utils/{dev → env}/index.js +2 -2
  190. package/plugins/utils/index.d.ts +3 -2
  191. package/plugins/utils/index.es6.js +3 -2
  192. package/plugins/utils/index.js +3 -2
  193. package/plugins/utils/protection/protection.d.ts +4 -4
  194. package/plugins/utils/protection/protection.es6.js +13 -16
  195. package/plugins/utils/protection/protection.js +13 -16
  196. package/plugins/utils/swagger/swagger.es6.js +7 -5
  197. package/plugins/utils/swagger/swagger.js +7 -5
  198. package/plugins/utils/whitelist/index.d.ts +1 -0
  199. package/plugins/utils/whitelist/index.es6.js +1 -0
  200. package/plugins/utils/whitelist/index.js +9 -0
  201. package/plugins/utils/whitelist/whitelist.d.ts +5 -0
  202. package/plugins/utils/whitelist/whitelist.es6.js +19 -0
  203. package/plugins/utils/whitelist/whitelist.js +23 -0
  204. package/types.d.ts +15 -22
  205. package/utils/FileData/Bin.d.ts +13 -13
  206. package/utils/FileData/Bin.es6.js +2 -2
  207. package/utils/FileData/Bin.js +2 -2
  208. package/utils/action/Action.d.ts +13 -14
  209. package/utils/action/Action.es6.js +92 -92
  210. package/utils/action/Action.js +91 -91
  211. package/utils/dateFormat/dateFormat.d.ts +1 -1
  212. package/utils/dateFormat/dateFormat.es6.js +1 -1
  213. package/utils/dateFormat/dateFormat.js +1 -1
  214. package/utils/decorators/once/once.es6.js +1 -1
  215. package/utils/decorators/once/once.js +1 -1
  216. package/utils/generateTypes/generateTypes.d.ts +2 -2
  217. package/utils/generateTypes/generateTypes.es6.js +85 -25
  218. package/utils/generateTypes/generateTypes.js +85 -25
  219. package/utils/getEndpoint/getEndpoint.es6.js +2 -2
  220. package/utils/getEndpoint/getEndpoint.js +2 -2
  221. package/utils/getOrAdd/getOrAdd.d.ts +1 -1
  222. package/utils/httpOnStart/httpOnStart.d.ts +1 -1
  223. package/utils/httpOnStart/httpOnStart.es6.js +1 -1
  224. package/utils/httpOnStart/httpOnStart.js +1 -1
  225. package/utils/parseBody/parseBody.d.ts +0 -1
  226. package/utils/parseBody/parseBody.es6.js +13 -16
  227. package/utils/parseBody/parseBody.js +13 -16
  228. package/utils/parseFormBody/parseFormBody.d.ts +0 -1
  229. package/utils/parseFormBody/parseFormBody.es6.js +41 -41
  230. package/utils/parseFormBody/parseFormBody.js +41 -41
  231. package/utils/parseSearch/parseSearch.es6.js +4 -1
  232. package/utils/parseSearch/parseSearch.js +4 -1
  233. package/utils/rules/arrayOf/arrayOf.es6.js +1 -1
  234. package/utils/rules/arrayOf/arrayOf.js +1 -1
  235. package/utils/rules/bin/bin.es6.js +4 -1
  236. package/utils/rules/bin/bin.js +4 -1
  237. package/utils/rules/binaryAccept/binaryAccept.es6.js +5 -2
  238. package/utils/rules/binaryAccept/binaryAccept.js +5 -2
  239. package/utils/rules/dateTo/dateTo.d.ts +1 -1
  240. package/utils/rules/dateTo/dateTo.es6.js +4 -1
  241. package/utils/rules/dateTo/dateTo.js +4 -1
  242. package/utils/rules/helpers.d.ts +1 -1
  243. package/utils/rules/helpers.es6.js +4 -1
  244. package/utils/rules/helpers.js +4 -1
  245. package/utils/rules/index.d.ts +0 -1
  246. package/utils/rules/index.es6.js +0 -1
  247. package/utils/rules/index.js +0 -1
  248. package/utils/rules/int/int.es6.js +17 -4
  249. package/utils/rules/int/int.js +17 -4
  250. package/utils/rules/max/max.d.ts +1 -1
  251. package/utils/rules/max/max.es6.js +10 -4
  252. package/utils/rules/max/max.js +10 -4
  253. package/utils/rules/maxBin/maxBin.es6.js +5 -2
  254. package/utils/rules/maxBin/maxBin.js +5 -2
  255. package/utils/rules/maxDate/maxDate.es6.js +5 -1
  256. package/utils/rules/maxDate/maxDate.js +5 -1
  257. package/utils/rules/maxLength/maxLength.es6.js +5 -2
  258. package/utils/rules/maxLength/maxLength.js +5 -2
  259. package/utils/rules/min/min.d.ts +1 -1
  260. package/utils/rules/min/min.es6.js +10 -4
  261. package/utils/rules/min/min.js +10 -4
  262. package/utils/rules/minBin/minBin.es6.js +5 -2
  263. package/utils/rules/minBin/minBin.js +5 -2
  264. package/utils/rules/minDate/minDate.es6.js +5 -1
  265. package/utils/rules/minDate/minDate.js +5 -1
  266. package/utils/rules/minLength/minLength.es6.js +5 -2
  267. package/utils/rules/minLength/minLength.js +5 -2
  268. package/utils/rules/num/num.es6.js +4 -1
  269. package/utils/rules/num/num.js +4 -1
  270. package/utils/rules/objectOf/objectOf.d.ts +1 -1
  271. package/utils/rules/objectOf/objectOf.es6.js +16 -3
  272. package/utils/rules/objectOf/objectOf.js +16 -3
  273. package/utils/rules/pattern/pattern.d.ts +1 -1
  274. package/utils/rules/pattern/pattern.es6.js +6 -1
  275. package/utils/rules/pattern/pattern.js +6 -1
  276. package/utils/rules/tupleOf/tupleOf.es6.js +1 -1
  277. package/utils/rules/tupleOf/tupleOf.js +1 -1
  278. package/utils/rules/values/values.es6.js +5 -2
  279. package/utils/rules/values/values.js +5 -2
  280. package/utils/stringifySearch/stringifySearch.es6.js +4 -1
  281. package/utils/stringifySearch/stringifySearch.js +4 -1
  282. package/example/app/App/App.d.ts +0 -1
  283. package/example/app/App/index.d.ts +0 -1
  284. package/example/index.d.ts +0 -1
  285. package/example/requests/index.d.ts +0 -1
  286. package/example/requests/todo/AddTodo/AddTodo.d.ts +0 -1
  287. package/example/requests/todo/AddTodo/index.d.ts +0 -1
  288. package/example/requests/todo/DeleteTodo/DeleteTodo.d.ts +0 -1
  289. package/example/requests/todo/DeleteTodo/index.d.ts +0 -1
  290. package/example/requests/todo/EditTodo/EditTodo.d.ts +0 -1
  291. package/example/requests/todo/EditTodo/index.d.ts +0 -1
  292. package/example/requests/todo/GetTodo/GetTodo.d.ts +0 -1
  293. package/example/requests/todo/GetTodo/index.d.ts +0 -1
  294. package/example/requests/todo/GetTodos/GetTodos.d.ts +0 -1
  295. package/example/requests/todo/GetTodos/index.d.ts +0 -1
  296. package/example/requests/todo/index.d.ts +0 -5
  297. package/example/requests/todo/todos.d.ts +0 -1
  298. package/example/schemas/app/ListQueryParams/ListQueryParams.d.ts +0 -1
  299. package/example/schemas/app/ListQueryParams/index.d.ts +0 -1
  300. package/example/schemas/app/ListSchema/ListSchema.d.ts +0 -4
  301. package/example/schemas/app/ListSchema/index.d.ts +0 -1
  302. package/example/schemas/app/index.d.ts +0 -2
  303. package/example/schemas/index.d.ts +0 -2
  304. package/example/schemas/todo/TodoSchema/TodoSchema.d.ts +0 -4
  305. package/example/schemas/todo/TodoSchema/index.d.ts +0 -1
  306. package/example/schemas/todo/index.d.ts +0 -1
  307. package/example/tags/Todo/Todo.d.ts +0 -1
  308. package/example/tags/Todo/index.d.ts +0 -1
  309. package/example/tags/index.d.ts +0 -1
  310. package/hooks/useRequestPlugin/index.d.ts +0 -1
  311. package/hooks/useRequestPlugin/index.es6.js +0 -1
  312. package/hooks/useRequestPlugin/index.js +0 -9
  313. package/hooks/useRequestPlugin/useRequestPlugin.d.ts +0 -2
  314. package/hooks/useRequestPlugin/useRequestPlugin.es6.js +0 -13
  315. package/hooks/useRequestPlugin/useRequestPlugin.js +0 -17
  316. package/openApi.test.d.ts +0 -1
  317. package/plugins/main/fallback/fallback.d.ts +0 -4
  318. package/plugins/main/fallback/fallback.es6.js +0 -19
  319. package/plugins/main/fallback/fallback.js +0 -23
  320. package/plugins/main/fallback/index.d.ts +0 -1
  321. package/plugins/main/fallback/index.es6.js +0 -1
  322. package/plugins/main/fallback/index.js +0 -9
  323. package/plugins/main/request/index.d.ts +0 -1
  324. package/plugins/main/request/index.es6.js +0 -1
  325. package/plugins/main/request/index.js +0 -9
  326. package/plugins/main/request/request.d.ts +0 -4
  327. package/plugins/main/request/request.es6.js +0 -21
  328. package/plugins/main/request/request.js +0 -25
  329. package/plugins/utils/dev/dev.d.ts +0 -4
  330. package/plugins/utils/dev/dev.es6.js +0 -10
  331. package/plugins/utils/dev/index.d.ts +0 -1
  332. package/plugins/utils/dev/index.es6.js +0 -1
  333. package/plugins/utils/prod/index.d.ts +0 -1
  334. package/plugins/utils/prod/index.es6.js +0 -1
  335. package/plugins/utils/prod/prod.d.ts +0 -4
  336. package/plugins/utils/prod/prod.es6.js +0 -10
  337. package/utils/decorators/once/once.test.d.ts +0 -1
  338. package/utils/generateTypes/generateTypes.test.d.ts +0 -1
  339. package/utils/parseSearch/parseSearch.test.d.ts +0 -1
  340. package/utils/rules/any/any.d.ts +0 -1
  341. package/utils/rules/any/any.es6.js +0 -5
  342. package/utils/rules/any/any.js +0 -9
  343. /package/{utils/rules → plugins/schema}/any/index.d.ts +0 -0
  344. /package/{utils/rules → plugins/schema}/any/index.es6.js +0 -0
  345. /package/{utils/rules → plugins/schema}/any/index.js +0 -0
@@ -1,49 +1,87 @@
1
1
  function hasDefault(target) {
2
2
  return Boolean(target && ('default' in target || 'x-default' in target));
3
3
  }
4
- function generateSchemaTypes(schema, spaces = 2) {
4
+ function generateSchemaTypes(schema, spaces = 2, lastChar = '\n') {
5
5
  const space = [...new Array(spaces)].map(() => ' ').join('');
6
6
  if ('$ref' in schema) {
7
- return `Schemas.${schema.$ref.slice(21)}\n`;
7
+ return `Schemas.${schema.$ref.slice(21)}${lastChar}`;
8
8
  }
9
9
  if (schema.type === 'integer') {
10
- return `${schema.format === 'int64' ? 'bigint' : 'number'}\n`;
10
+ return `${schema.format === 'int64' ? 'bigint' : 'number'}${lastChar}`;
11
11
  }
12
12
  if (schema.type === 'string') {
13
13
  if (schema.format === 'date-time') {
14
- return 'Date\n';
14
+ return `Date${lastChar}`;
15
15
  }
16
16
  if (schema.format === 'binary') {
17
- return 'Bin\n';
17
+ return `Bin${lastChar}`;
18
18
  }
19
- return 'string\n';
19
+ return `string${lastChar}`;
20
20
  }
21
- if (['boolean', 'number', 'null'].includes(schema.type)) {
22
- return `${schema.type}\n`;
21
+ if (['boolean', 'null', 'number'].includes(schema.type)) {
22
+ return `${schema.type}${lastChar}`;
23
+ }
24
+ if (schema.oneOf) {
25
+ let result = '';
26
+ for (const item of schema.oneOf) {
27
+ if (result) {
28
+ result += ' | ';
29
+ }
30
+ result += generateSchemaTypes(item, spaces + 2, '');
31
+ }
32
+ return result + lastChar;
23
33
  }
24
34
  if (schema.type === 'array') {
25
35
  if (!schema.items)
26
- return 'any[]\n';
27
- return `(${generateSchemaTypes(schema.items, spaces + 2).slice(0, -1)})[]\n`;
36
+ return `any[]${lastChar}`;
37
+ return `Array<${generateSchemaTypes(schema.items, spaces + 2, '')}>${lastChar}`;
38
+ }
39
+ if (!schema.type) {
40
+ return `any${lastChar}`;
28
41
  }
29
42
  if (schema.type !== 'object') {
30
43
  console.error('unknown type', schema);
31
- return 'any\n';
44
+ return `any${lastChar}`;
32
45
  }
33
46
  let result = '{\n';
34
47
  const required = schema.required || [];
35
- for (const key in schema.properties) {
36
- const prop = schema.properties[key];
37
- const splitter = required.includes(key) || hasDefault(prop)
38
- ? ':'
39
- : '?:';
40
- result += `${space}${key}${splitter} ${generateSchemaTypes(prop, spaces + 2)}`;
48
+ const hasProps = Boolean(schema.properties && Object.keys(schema.properties).length);
49
+ const hasRestProps = Boolean(typeof schema.additionalProperties === 'object' &&
50
+ Object.keys(schema.additionalProperties).length);
51
+ if (hasProps) {
52
+ for (const key in schema.properties) {
53
+ const prop = schema.properties[key];
54
+ const splitter = required.includes(key) || hasDefault(prop)
55
+ ? ':'
56
+ : '?:';
57
+ if ('deprecated' in prop && prop.deprecated) {
58
+ result += `${space}/** @deprecated */\n`;
59
+ }
60
+ result += `${space}${key}${splitter} ${generateSchemaTypes(prop, spaces + 2)}`;
61
+ }
62
+ }
63
+ if (hasRestProps) {
64
+ const value = hasProps
65
+ ? 'any\n'
66
+ : generateSchemaTypes(schema.additionalProperties, spaces + 2);
67
+ result += `${space}[key: string]: ${value}`;
41
68
  }
42
- return `${result}${space.slice(0, -2)}}\n`;
69
+ return `${result}${space.slice(0, -2)}}${lastChar}`;
43
70
  }
44
- function generateTypes(docs) {
71
+ function generateTypes(docs, namespace = 'Api') {
45
72
  var _a;
46
- let result = 'declare namespace Api {\n export interface Bin {\n filename: string\n fieldName: string\n originalFilename: string\n path: string\n type: string\n disposition: string\n size: number\n extension?: string\n }\n';
73
+ let result = `declare namespace ${namespace} {
74
+ export interface Bin {
75
+ filename: string
76
+ fieldName: string
77
+ originalFilename: string
78
+ path: string
79
+ type: string
80
+ disposition: string
81
+ size: number
82
+ extension?: string
83
+ }
84
+ `;
47
85
  const schemas = (_a = docs.components) === null || _a === void 0 ? void 0 : _a.schemas;
48
86
  const paths = docs.paths;
49
87
  if (schemas) {
@@ -62,16 +100,19 @@ function generateTypes(docs) {
62
100
  const parameters = endpoint.parameters;
63
101
  const requestBody = endpoint.requestBody;
64
102
  const responses = endpoint.responses;
103
+ if (endpoint.deprecated) {
104
+ result += ' /** @deprecated */\n';
105
+ }
65
106
  result += ` ['${method.toUpperCase()}:${path}']: {\n`;
66
107
  if (parameters) {
67
108
  const params = {
68
- query: '',
109
+ cookie: '',
69
110
  header: '',
70
111
  path: '',
71
- cookie: '',
112
+ query: '',
72
113
  };
73
114
  for (const param of parameters) {
74
- const splitter = param.in === 'path' || hasDefault(param.schema) ? ':' : '?:';
115
+ const splitter = param.in === 'path' || hasDefault(param.schema) || param.required ? ':' : '?:';
75
116
  params[param.in] += ` ${param.name}${splitter} ${generateSchemaTypes(param.schema)}`;
76
117
  }
77
118
  if (params.path) {
@@ -90,8 +131,27 @@ function generateTypes(docs) {
90
131
  if (requestBody) {
91
132
  result += ` Body: ${generateSchemaTypes(requestBody.content['multipart/form-data'].schema, 8)}`;
92
133
  }
93
- if (responses === null || responses === void 0 ? void 0 : responses.default) {
94
- result += ` Response: ${generateSchemaTypes(responses.default.content['application/json'].schema, 8)}`;
134
+ if (responses) {
135
+ result += ' Response: {\n';
136
+ for (const key in responses) {
137
+ let multiple = false;
138
+ const response = responses[key];
139
+ result += ` ['${key}']: `;
140
+ if (!response.content) {
141
+ result += 'void';
142
+ }
143
+ else {
144
+ for (const type in response.content) {
145
+ if (multiple) {
146
+ result += ' | ';
147
+ }
148
+ result += generateSchemaTypes(response.content[type].schema, 10, '');
149
+ multiple = true;
150
+ }
151
+ }
152
+ result += '\n';
153
+ }
154
+ result += ' }\n';
95
155
  }
96
156
  result += ' }\n';
97
157
  }
@@ -5,49 +5,87 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  function hasDefault(target) {
6
6
  return Boolean(target && ('default' in target || 'x-default' in target));
7
7
  }
8
- function generateSchemaTypes(schema, spaces = 2) {
8
+ function generateSchemaTypes(schema, spaces = 2, lastChar = '\n') {
9
9
  const space = [...new Array(spaces)].map(() => ' ').join('');
10
10
  if ('$ref' in schema) {
11
- return `Schemas.${schema.$ref.slice(21)}\n`;
11
+ return `Schemas.${schema.$ref.slice(21)}${lastChar}`;
12
12
  }
13
13
  if (schema.type === 'integer') {
14
- return `${schema.format === 'int64' ? 'bigint' : 'number'}\n`;
14
+ return `${schema.format === 'int64' ? 'bigint' : 'number'}${lastChar}`;
15
15
  }
16
16
  if (schema.type === 'string') {
17
17
  if (schema.format === 'date-time') {
18
- return 'Date\n';
18
+ return `Date${lastChar}`;
19
19
  }
20
20
  if (schema.format === 'binary') {
21
- return 'Bin\n';
21
+ return `Bin${lastChar}`;
22
22
  }
23
- return 'string\n';
23
+ return `string${lastChar}`;
24
24
  }
25
- if (['boolean', 'number', 'null'].includes(schema.type)) {
26
- return `${schema.type}\n`;
25
+ if (['boolean', 'null', 'number'].includes(schema.type)) {
26
+ return `${schema.type}${lastChar}`;
27
+ }
28
+ if (schema.oneOf) {
29
+ let result = '';
30
+ for (const item of schema.oneOf) {
31
+ if (result) {
32
+ result += ' | ';
33
+ }
34
+ result += generateSchemaTypes(item, spaces + 2, '');
35
+ }
36
+ return result + lastChar;
27
37
  }
28
38
  if (schema.type === 'array') {
29
39
  if (!schema.items)
30
- return 'any[]\n';
31
- return `(${generateSchemaTypes(schema.items, spaces + 2).slice(0, -1)})[]\n`;
40
+ return `any[]${lastChar}`;
41
+ return `Array<${generateSchemaTypes(schema.items, spaces + 2, '')}>${lastChar}`;
42
+ }
43
+ if (!schema.type) {
44
+ return `any${lastChar}`;
32
45
  }
33
46
  if (schema.type !== 'object') {
34
47
  console.error('unknown type', schema);
35
- return 'any\n';
48
+ return `any${lastChar}`;
36
49
  }
37
50
  let result = '{\n';
38
51
  const required = schema.required || [];
39
- for (const key in schema.properties) {
40
- const prop = schema.properties[key];
41
- const splitter = required.includes(key) || hasDefault(prop)
42
- ? ':'
43
- : '?:';
44
- result += `${space}${key}${splitter} ${generateSchemaTypes(prop, spaces + 2)}`;
52
+ const hasProps = Boolean(schema.properties && Object.keys(schema.properties).length);
53
+ const hasRestProps = Boolean(typeof schema.additionalProperties === 'object' &&
54
+ Object.keys(schema.additionalProperties).length);
55
+ if (hasProps) {
56
+ for (const key in schema.properties) {
57
+ const prop = schema.properties[key];
58
+ const splitter = required.includes(key) || hasDefault(prop)
59
+ ? ':'
60
+ : '?:';
61
+ if ('deprecated' in prop && prop.deprecated) {
62
+ result += `${space}/** @deprecated */\n`;
63
+ }
64
+ result += `${space}${key}${splitter} ${generateSchemaTypes(prop, spaces + 2)}`;
65
+ }
66
+ }
67
+ if (hasRestProps) {
68
+ const value = hasProps
69
+ ? 'any\n'
70
+ : generateSchemaTypes(schema.additionalProperties, spaces + 2);
71
+ result += `${space}[key: string]: ${value}`;
45
72
  }
46
- return `${result}${space.slice(0, -2)}}\n`;
73
+ return `${result}${space.slice(0, -2)}}${lastChar}`;
47
74
  }
48
- function generateTypes(docs) {
75
+ function generateTypes(docs, namespace = 'Api') {
49
76
  var _a;
50
- let result = 'declare namespace Api {\n export interface Bin {\n filename: string\n fieldName: string\n originalFilename: string\n path: string\n type: string\n disposition: string\n size: number\n extension?: string\n }\n';
77
+ let result = `declare namespace ${namespace} {
78
+ export interface Bin {
79
+ filename: string
80
+ fieldName: string
81
+ originalFilename: string
82
+ path: string
83
+ type: string
84
+ disposition: string
85
+ size: number
86
+ extension?: string
87
+ }
88
+ `;
51
89
  const schemas = (_a = docs.components) === null || _a === void 0 ? void 0 : _a.schemas;
52
90
  const paths = docs.paths;
53
91
  if (schemas) {
@@ -66,16 +104,19 @@ function generateTypes(docs) {
66
104
  const parameters = endpoint.parameters;
67
105
  const requestBody = endpoint.requestBody;
68
106
  const responses = endpoint.responses;
107
+ if (endpoint.deprecated) {
108
+ result += ' /** @deprecated */\n';
109
+ }
69
110
  result += ` ['${method.toUpperCase()}:${path}']: {\n`;
70
111
  if (parameters) {
71
112
  const params = {
72
- query: '',
113
+ cookie: '',
73
114
  header: '',
74
115
  path: '',
75
- cookie: '',
116
+ query: '',
76
117
  };
77
118
  for (const param of parameters) {
78
- const splitter = param.in === 'path' || hasDefault(param.schema) ? ':' : '?:';
119
+ const splitter = param.in === 'path' || hasDefault(param.schema) || param.required ? ':' : '?:';
79
120
  params[param.in] += ` ${param.name}${splitter} ${generateSchemaTypes(param.schema)}`;
80
121
  }
81
122
  if (params.path) {
@@ -94,8 +135,27 @@ function generateTypes(docs) {
94
135
  if (requestBody) {
95
136
  result += ` Body: ${generateSchemaTypes(requestBody.content['multipart/form-data'].schema, 8)}`;
96
137
  }
97
- if (responses === null || responses === void 0 ? void 0 : responses.default) {
98
- result += ` Response: ${generateSchemaTypes(responses.default.content['application/json'].schema, 8)}`;
138
+ if (responses) {
139
+ result += ' Response: {\n';
140
+ for (const key in responses) {
141
+ let multiple = false;
142
+ const response = responses[key];
143
+ result += ` ['${key}']: `;
144
+ if (!response.content) {
145
+ result += 'void';
146
+ }
147
+ else {
148
+ for (const type in response.content) {
149
+ if (multiple) {
150
+ result += ' | ';
151
+ }
152
+ result += generateSchemaTypes(response.content[type].schema, 10, '');
153
+ multiple = true;
154
+ }
155
+ }
156
+ result += '\n';
157
+ }
158
+ result += ' }\n';
99
159
  }
100
160
  result += ' }\n';
101
161
  }
@@ -8,7 +8,7 @@ function getEndpoint(path, parentEndpoint) {
8
8
  parentEndpoint.static = {};
9
9
  }
10
10
  if (!parentEndpoint.static[key]) {
11
- parentEndpoint.static[key] = { key };
11
+ parentEndpoint.static[key] = { key, plugins: new Set() };
12
12
  }
13
13
  parentEndpoint = parentEndpoint.static[key];
14
14
  if (deep + 1 === splitPath.length) {
@@ -19,7 +19,7 @@ function getEndpoint(path, parentEndpoint) {
19
19
  if (!parentEndpoint.dynamic) {
20
20
  parentEndpoint.dynamic = [];
21
21
  }
22
- const newEndpoint = { key };
22
+ const newEndpoint = { key, plugins: new Set() };
23
23
  parentEndpoint.dynamic.push(newEndpoint);
24
24
  parentEndpoint = newEndpoint;
25
25
  if (deep + 1 === splitPath.length) {
@@ -12,7 +12,7 @@ function getEndpoint(path, parentEndpoint) {
12
12
  parentEndpoint.static = {};
13
13
  }
14
14
  if (!parentEndpoint.static[key]) {
15
- parentEndpoint.static[key] = { key };
15
+ parentEndpoint.static[key] = { key, plugins: new Set() };
16
16
  }
17
17
  parentEndpoint = parentEndpoint.static[key];
18
18
  if (deep + 1 === splitPath.length) {
@@ -23,7 +23,7 @@ function getEndpoint(path, parentEndpoint) {
23
23
  if (!parentEndpoint.dynamic) {
24
24
  parentEndpoint.dynamic = [];
25
25
  }
26
- const newEndpoint = { key };
26
+ const newEndpoint = { key, plugins: new Set() };
27
27
  parentEndpoint.dynamic.push(newEndpoint);
28
28
  parentEndpoint = newEndpoint;
29
29
  if (deep + 1 === splitPath.length) {
@@ -1 +1 @@
1
- export declare function getOrAdd<R = any>(target: object, path: string | number, defaultValues: any[]): R;
1
+ export declare function getOrAdd<R = any>(target: object, path: number | string, defaultValues: any[]): R;
@@ -1,2 +1,2 @@
1
1
  import { type ServerStartParams } from '../../types';
2
- export declare function httpOnStart({ port, https }: ServerStartParams): void;
2
+ export declare function httpOnStart({ https, port, }: ServerStartParams): void;
@@ -1,4 +1,4 @@
1
- function httpOnStart({ port, https }) {
1
+ function httpOnStart({ https, port, }) {
2
2
  console.log(`http${https ? 's' : ''}://localhost:${port}`);
3
3
  }
4
4
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- function httpOnStart({ port, https }) {
5
+ function httpOnStart({ https, port, }) {
6
6
  console.log(`http${https ? 's' : ''}://localhost:${port}`);
7
7
  }
8
8
 
@@ -1,3 +1,2 @@
1
- /// <reference types="node" />
2
1
  import type http from 'http';
3
2
  export declare function parseBody(req: http.IncomingMessage): Promise<string>;
@@ -1,21 +1,18 @@
1
- import { __awaiter } from 'tslib';
2
1
  import { StringDecoder } from 'node:string_decoder';
3
2
 
4
- function parseBody(req) {
5
- return __awaiter(this, void 0, void 0, function* () {
6
- return yield new Promise((resolve, reject) => {
7
- const decoder = new StringDecoder('utf-8');
8
- let buffer = '';
9
- req.on('data', chunk => {
10
- buffer += decoder.write(chunk);
11
- });
12
- req.on('end', () => {
13
- buffer += decoder.end();
14
- resolve(buffer);
15
- });
16
- req.on('error', err => {
17
- reject(err);
18
- });
3
+ async function parseBody(req) {
4
+ return await new Promise((resolve, reject) => {
5
+ const decoder = new StringDecoder('utf-8');
6
+ let buffer = '';
7
+ req.on('data', chunk => {
8
+ buffer += decoder.write(chunk);
9
+ });
10
+ req.on('end', () => {
11
+ buffer += decoder.end();
12
+ resolve(buffer);
13
+ });
14
+ req.on('error', err => {
15
+ reject(err);
19
16
  });
20
17
  });
21
18
  }
@@ -2,24 +2,21 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var tslib = require('tslib');
6
5
  var node_string_decoder = require('node:string_decoder');
7
6
 
8
- function parseBody(req) {
9
- return tslib.__awaiter(this, void 0, void 0, function* () {
10
- return yield new Promise((resolve, reject) => {
11
- const decoder = new node_string_decoder.StringDecoder('utf-8');
12
- let buffer = '';
13
- req.on('data', chunk => {
14
- buffer += decoder.write(chunk);
15
- });
16
- req.on('end', () => {
17
- buffer += decoder.end();
18
- resolve(buffer);
19
- });
20
- req.on('error', err => {
21
- reject(err);
22
- });
7
+ async function parseBody(req) {
8
+ return await new Promise((resolve, reject) => {
9
+ const decoder = new node_string_decoder.StringDecoder('utf-8');
10
+ let buffer = '';
11
+ req.on('data', chunk => {
12
+ buffer += decoder.write(chunk);
13
+ });
14
+ req.on('end', () => {
15
+ buffer += decoder.end();
16
+ resolve(buffer);
17
+ });
18
+ req.on('error', err => {
19
+ reject(err);
23
20
  });
24
21
  });
25
22
  }
@@ -1,3 +1,2 @@
1
- /// <reference types="node" />
2
1
  import type http from 'http';
3
2
  export declare function parseFormBody(req: http.IncomingMessage): Promise<object>;
@@ -1,54 +1,54 @@
1
- import { __awaiter, __rest } from 'tslib';
2
1
  import { Form } from 'multiparty';
3
2
  import '../FileData/index.es6.js';
4
3
  import '../parseSearch/index.es6.js';
5
4
  import { Bin } from '../FileData/Bin.es6.js';
6
5
  import { parseSearch } from '../parseSearch/parseSearch.es6.js';
7
6
 
8
- function parseFormBody(req) {
9
- return __awaiter(this, void 0, void 0, function* () {
10
- return yield new Promise((resolve, reject) => {
11
- const form = new Form();
12
- form.parse(req, (error, fields, files) => {
13
- if (error) {
14
- reject(error);
15
- return;
16
- }
17
- let query = '';
18
- const queryFiles = [];
19
- for (const key in fields) {
20
- for (const value of fields[key]) {
21
- if (query) {
22
- query += '&';
23
- }
24
- query += `${key}=${value.replaceAll('=', '%26')}`;
7
+ async function parseFormBody(req) {
8
+ return await new Promise((resolve, reject) => {
9
+ const form = new Form();
10
+ form.parse(req, (error, fields, files) => {
11
+ if (error) {
12
+ reject(error);
13
+ return;
14
+ }
15
+ let query = '';
16
+ const queryFiles = [];
17
+ for (const key in fields) {
18
+ for (const value of fields[key]) {
19
+ if (query) {
20
+ query += '&';
25
21
  }
22
+ query += `${key}=${value.replaceAll('=', '%26')}`;
26
23
  }
27
- for (const key in files) {
28
- const values = files[key];
29
- for (const value of values) {
30
- if (query) {
31
- query += '&';
32
- }
33
- query += `${key}==${queryFiles.length}`;
34
- const { headers } = value, options = __rest(value, ["headers"]);
35
- options.type = headers['content-type'];
36
- options.disposition = headers['content-disposition'];
37
- queryFiles.push(new Bin(options));
24
+ }
25
+ for (const key in files) {
26
+ const values = files[key];
27
+ for (const value of values) {
28
+ if (query) {
29
+ query += '&';
38
30
  }
31
+ query += `${key}==${queryFiles.length}`;
32
+ const { headers, ...options } = value;
33
+ const binOptions = {
34
+ ...options,
35
+ disposition: headers['content-disposition'],
36
+ type: headers['content-type'],
37
+ };
38
+ queryFiles.push(new Bin(binOptions));
39
39
  }
40
- resolve(parseSearch(query, {
41
- decoder(value, decoder, charset, type) {
42
- if (type === 'key') {
43
- return decoder(value, decoder, charset);
44
- }
45
- if (value.startsWith('=')) {
46
- return queryFiles[Number(value.slice(1))];
47
- }
48
- return value.replaceAll('%26', '=');
49
- },
50
- }));
51
- });
40
+ }
41
+ resolve(parseSearch(query, {
42
+ decoder(value, decoder, charset, type) {
43
+ if (type === 'key') {
44
+ return decoder(value, decoder, charset);
45
+ }
46
+ if (value.startsWith('=')) {
47
+ return queryFiles[Number(value.slice(1))];
48
+ }
49
+ return value.replaceAll('%26', '=');
50
+ },
51
+ }));
52
52
  });
53
53
  });
54
54
  }