@catbee/utils 0.0.8-rc.0 → 0.0.8-rc.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 (281) hide show
  1. package/README.md +25 -1
  2. package/build/esm/config.d.ts +0 -1
  3. package/build/esm/config.js +6 -7
  4. package/build/esm/index.d.ts +0 -1
  5. package/build/esm/index.js +0 -1
  6. package/build/esm/servers/server.builder.d.ts +0 -1
  7. package/build/esm/servers/server.builder.js +99 -147
  8. package/build/esm/servers/server.d.ts +0 -1
  9. package/build/esm/servers/server.js +591 -876
  10. package/build/esm/types/api-response.d.ts +0 -1
  11. package/build/esm/types/api-response.js +0 -1
  12. package/build/esm/types/index.d.ts +0 -1
  13. package/build/esm/types/index.js +0 -1
  14. package/build/esm/types/server.d.ts +0 -1
  15. package/build/esm/types/server.js +0 -1
  16. package/build/esm/utils/array.utils.d.ts +0 -1
  17. package/build/esm/utils/array.utils.js +48 -86
  18. package/build/esm/utils/async.utils.d.ts +0 -1
  19. package/build/esm/utils/async.utils.js +247 -524
  20. package/build/esm/utils/cache.utils.d.ts +0 -1
  21. package/build/esm/utils/cache.utils.js +96 -301
  22. package/build/esm/utils/context-store.utils.d.ts +0 -1
  23. package/build/esm/utils/context-store.utils.js +62 -79
  24. package/build/esm/utils/crypto.utils.d.ts +0 -1
  25. package/build/esm/utils/crypto.utils.js +78 -175
  26. package/build/esm/utils/date.utils.d.ts +0 -1
  27. package/build/esm/utils/date.utils.js +47 -53
  28. package/build/esm/utils/decorators.utils.d.ts +201 -5
  29. package/build/esm/utils/decorators.utils.js +632 -285
  30. package/build/esm/utils/dir.utils.d.ts +0 -1
  31. package/build/esm/utils/dir.utils.js +264 -786
  32. package/build/esm/utils/env.utils.d.ts +0 -1
  33. package/build/esm/utils/env.utils.js +180 -271
  34. package/build/esm/utils/exception.utils.d.ts +0 -1
  35. package/build/esm/utils/exception.utils.js +112 -289
  36. package/build/esm/utils/fs.utils.d.ts +0 -1
  37. package/build/esm/utils/fs.utils.js +169 -401
  38. package/build/esm/utils/http-status-codes.d.ts +0 -1
  39. package/build/esm/utils/http-status-codes.js +0 -1
  40. package/build/esm/utils/id.utils.d.ts +0 -1
  41. package/build/esm/utils/id.utils.js +5 -9
  42. package/build/esm/utils/logger.utils.d.ts +0 -1
  43. package/build/esm/utils/logger.utils.js +34 -71
  44. package/build/esm/utils/middleware.utils.d.ts +0 -1
  45. package/build/esm/utils/middleware.utils.js +65 -155
  46. package/build/esm/utils/obj.utils.d.ts +0 -1
  47. package/build/esm/utils/obj.utils.js +69 -176
  48. package/build/esm/utils/performance.utils.d.ts +0 -1
  49. package/build/esm/utils/performance.utils.js +92 -195
  50. package/build/esm/utils/request.utils.d.ts +0 -1
  51. package/build/esm/utils/request.utils.js +41 -74
  52. package/build/esm/utils/response.utils.d.ts +0 -1
  53. package/build/esm/utils/response.utils.js +84 -107
  54. package/build/esm/utils/stream.utils.d.ts +0 -1
  55. package/build/esm/utils/stream.utils.js +38 -113
  56. package/build/esm/utils/string.utils.d.ts +0 -1
  57. package/build/esm/utils/string.utils.js +6 -11
  58. package/build/esm/utils/type.utils.d.ts +0 -1
  59. package/build/esm/utils/type.utils.js +8 -12
  60. package/build/esm/utils/url.utils.d.ts +0 -1
  61. package/build/esm/utils/url.utils.js +49 -127
  62. package/build/esm/utils/validate.utils.d.ts +0 -1
  63. package/build/esm/utils/validate.utils.js +23 -40
  64. package/package.json +3 -33
  65. package/build/esm/config.js.map +0 -1
  66. package/build/esm/index.js.map +0 -1
  67. package/build/esm/servers/server.builder.js.map +0 -1
  68. package/build/esm/servers/server.js.map +0 -1
  69. package/build/esm/types/api-response.js.map +0 -1
  70. package/build/esm/types/index.js.map +0 -1
  71. package/build/esm/types/server.js.map +0 -1
  72. package/build/esm/utils/array.utils.js.map +0 -1
  73. package/build/esm/utils/async.utils.js.map +0 -1
  74. package/build/esm/utils/cache.utils.js.map +0 -1
  75. package/build/esm/utils/context-store.utils.js.map +0 -1
  76. package/build/esm/utils/crypto.utils.js.map +0 -1
  77. package/build/esm/utils/date.utils.js.map +0 -1
  78. package/build/esm/utils/decorators.utils.js.map +0 -1
  79. package/build/esm/utils/dir.utils.js.map +0 -1
  80. package/build/esm/utils/env.utils.js.map +0 -1
  81. package/build/esm/utils/exception.utils.js.map +0 -1
  82. package/build/esm/utils/fs.utils.js.map +0 -1
  83. package/build/esm/utils/http-status-codes.js.map +0 -1
  84. package/build/esm/utils/id.utils.js.map +0 -1
  85. package/build/esm/utils/logger.utils.js.map +0 -1
  86. package/build/esm/utils/middleware.utils.js.map +0 -1
  87. package/build/esm/utils/obj.utils.js.map +0 -1
  88. package/build/esm/utils/performance.utils.js.map +0 -1
  89. package/build/esm/utils/request.utils.js.map +0 -1
  90. package/build/esm/utils/response.utils.js.map +0 -1
  91. package/build/esm/utils/stream.utils.js.map +0 -1
  92. package/build/esm/utils/string.utils.js.map +0 -1
  93. package/build/esm/utils/type.utils.js.map +0 -1
  94. package/build/esm/utils/url.utils.js.map +0 -1
  95. package/build/esm/utils/validate.utils.js.map +0 -1
  96. package/build/esnext/config.d.ts +0 -122
  97. package/build/esnext/config.js +0 -133
  98. package/build/esnext/config.js.map +0 -1
  99. package/build/esnext/index.d.ts +0 -27
  100. package/build/esnext/index.js +0 -50
  101. package/build/esnext/index.js.map +0 -1
  102. package/build/esnext/servers/server.builder.d.ts +0 -508
  103. package/build/esnext/servers/server.builder.js +0 -657
  104. package/build/esnext/servers/server.builder.js.map +0 -1
  105. package/build/esnext/servers/server.d.ts +0 -256
  106. package/build/esnext/servers/server.js +0 -955
  107. package/build/esnext/servers/server.js.map +0 -1
  108. package/build/esnext/types/api-response.d.ts +0 -152
  109. package/build/esnext/types/api-response.js +0 -34
  110. package/build/esnext/types/api-response.js.map +0 -1
  111. package/build/esnext/types/index.d.ts +0 -125
  112. package/build/esnext/types/index.js +0 -25
  113. package/build/esnext/types/index.js.map +0 -1
  114. package/build/esnext/types/server.d.ts +0 -268
  115. package/build/esnext/types/server.js +0 -25
  116. package/build/esnext/types/server.js.map +0 -1
  117. package/build/esnext/utils/array.utils.d.ts +0 -168
  118. package/build/esnext/utils/array.utils.js +0 -345
  119. package/build/esnext/utils/array.utils.js.map +0 -1
  120. package/build/esnext/utils/async.utils.d.ts +0 -265
  121. package/build/esnext/utils/async.utils.js +0 -620
  122. package/build/esnext/utils/async.utils.js.map +0 -1
  123. package/build/esnext/utils/cache.utils.d.ts +0 -153
  124. package/build/esnext/utils/cache.utils.js +0 -293
  125. package/build/esnext/utils/cache.utils.js.map +0 -1
  126. package/build/esnext/utils/context-store.utils.d.ts +0 -189
  127. package/build/esnext/utils/context-store.utils.js +0 -289
  128. package/build/esnext/utils/context-store.utils.js.map +0 -1
  129. package/build/esnext/utils/crypto.utils.d.ts +0 -160
  130. package/build/esnext/utils/crypto.utils.js +0 -276
  131. package/build/esnext/utils/crypto.utils.js.map +0 -1
  132. package/build/esnext/utils/date.utils.d.ts +0 -159
  133. package/build/esnext/utils/date.utils.js +0 -384
  134. package/build/esnext/utils/date.utils.js.map +0 -1
  135. package/build/esnext/utils/decorators.utils.d.ts +0 -315
  136. package/build/esnext/utils/decorators.utils.js +0 -504
  137. package/build/esnext/utils/decorators.utils.js.map +0 -1
  138. package/build/esnext/utils/dir.utils.d.ts +0 -196
  139. package/build/esnext/utils/dir.utils.js +0 -477
  140. package/build/esnext/utils/dir.utils.js.map +0 -1
  141. package/build/esnext/utils/env.utils.d.ts +0 -377
  142. package/build/esnext/utils/env.utils.js +0 -785
  143. package/build/esnext/utils/env.utils.js.map +0 -1
  144. package/build/esnext/utils/exception.utils.d.ts +0 -230
  145. package/build/esnext/utils/exception.utils.js +0 -381
  146. package/build/esnext/utils/exception.utils.js.map +0 -1
  147. package/build/esnext/utils/fs.utils.d.ts +0 -164
  148. package/build/esnext/utils/fs.utils.js +0 -349
  149. package/build/esnext/utils/fs.utils.js.map +0 -1
  150. package/build/esnext/utils/http-status-codes.d.ts +0 -266
  151. package/build/esnext/utils/http-status-codes.js +0 -295
  152. package/build/esnext/utils/http-status-codes.js.map +0 -1
  153. package/build/esnext/utils/id.utils.d.ts +0 -36
  154. package/build/esnext/utils/id.utils.js +0 -84
  155. package/build/esnext/utils/id.utils.js.map +0 -1
  156. package/build/esnext/utils/logger.utils.d.ts +0 -160
  157. package/build/esnext/utils/logger.utils.js +0 -300
  158. package/build/esnext/utils/logger.utils.js.map +0 -1
  159. package/build/esnext/utils/middleware.utils.d.ts +0 -100
  160. package/build/esnext/utils/middleware.utils.js +0 -236
  161. package/build/esnext/utils/middleware.utils.js.map +0 -1
  162. package/build/esnext/utils/obj.utils.d.ts +0 -124
  163. package/build/esnext/utils/obj.utils.js +0 -413
  164. package/build/esnext/utils/obj.utils.js.map +0 -1
  165. package/build/esnext/utils/performance.utils.d.ts +0 -136
  166. package/build/esnext/utils/performance.utils.js +0 -271
  167. package/build/esnext/utils/performance.utils.js.map +0 -1
  168. package/build/esnext/utils/request.utils.d.ts +0 -86
  169. package/build/esnext/utils/request.utils.js +0 -186
  170. package/build/esnext/utils/request.utils.js.map +0 -1
  171. package/build/esnext/utils/response.utils.d.ts +0 -163
  172. package/build/esnext/utils/response.utils.js +0 -247
  173. package/build/esnext/utils/response.utils.js.map +0 -1
  174. package/build/esnext/utils/stream.utils.d.ts +0 -88
  175. package/build/esnext/utils/stream.utils.js +0 -210
  176. package/build/esnext/utils/stream.utils.js.map +0 -1
  177. package/build/esnext/utils/string.utils.d.ts +0 -93
  178. package/build/esnext/utils/string.utils.js +0 -165
  179. package/build/esnext/utils/string.utils.js.map +0 -1
  180. package/build/esnext/utils/type.utils.d.ts +0 -90
  181. package/build/esnext/utils/type.utils.js +0 -187
  182. package/build/esnext/utils/type.utils.js.map +0 -1
  183. package/build/esnext/utils/url.utils.d.ts +0 -141
  184. package/build/esnext/utils/url.utils.js +0 -304
  185. package/build/esnext/utils/url.utils.js.map +0 -1
  186. package/build/esnext/utils/validate.utils.d.ts +0 -177
  187. package/build/esnext/utils/validate.utils.js +0 -320
  188. package/build/esnext/utils/validate.utils.js.map +0 -1
  189. package/build/src/config.d.ts +0 -122
  190. package/build/src/config.js +0 -138
  191. package/build/src/config.js.map +0 -1
  192. package/build/src/index.d.ts +0 -27
  193. package/build/src/index.js +0 -69
  194. package/build/src/index.js.map +0 -1
  195. package/build/src/servers/server.builder.d.ts +0 -508
  196. package/build/src/servers/server.builder.js +0 -661
  197. package/build/src/servers/server.builder.js.map +0 -1
  198. package/build/src/servers/server.d.ts +0 -256
  199. package/build/src/servers/server.js +0 -962
  200. package/build/src/servers/server.js.map +0 -1
  201. package/build/src/types/api-response.d.ts +0 -152
  202. package/build/src/types/api-response.js +0 -37
  203. package/build/src/types/api-response.js.map +0 -1
  204. package/build/src/types/index.d.ts +0 -125
  205. package/build/src/types/index.js +0 -26
  206. package/build/src/types/index.js.map +0 -1
  207. package/build/src/types/server.d.ts +0 -268
  208. package/build/src/types/server.js +0 -26
  209. package/build/src/types/server.js.map +0 -1
  210. package/build/src/utils/array.utils.d.ts +0 -168
  211. package/build/src/utils/array.utils.js +0 -364
  212. package/build/src/utils/array.utils.js.map +0 -1
  213. package/build/src/utils/async.utils.d.ts +0 -265
  214. package/build/src/utils/async.utils.js +0 -641
  215. package/build/src/utils/async.utils.js.map +0 -1
  216. package/build/src/utils/cache.utils.d.ts +0 -153
  217. package/build/src/utils/cache.utils.js +0 -297
  218. package/build/src/utils/cache.utils.js.map +0 -1
  219. package/build/src/utils/context-store.utils.d.ts +0 -189
  220. package/build/src/utils/context-store.utils.js +0 -296
  221. package/build/src/utils/context-store.utils.js.map +0 -1
  222. package/build/src/utils/crypto.utils.d.ts +0 -160
  223. package/build/src/utils/crypto.utils.js +0 -293
  224. package/build/src/utils/crypto.utils.js.map +0 -1
  225. package/build/src/utils/date.utils.d.ts +0 -159
  226. package/build/src/utils/date.utils.js +0 -396
  227. package/build/src/utils/date.utils.js.map +0 -1
  228. package/build/src/utils/decorators.utils.d.ts +0 -315
  229. package/build/src/utils/decorators.utils.js +0 -516
  230. package/build/src/utils/decorators.utils.js.map +0 -1
  231. package/build/src/utils/dir.utils.d.ts +0 -196
  232. package/build/src/utils/dir.utils.js +0 -501
  233. package/build/src/utils/dir.utils.js.map +0 -1
  234. package/build/src/utils/env.utils.d.ts +0 -377
  235. package/build/src/utils/env.utils.js +0 -789
  236. package/build/src/utils/env.utils.js.map +0 -1
  237. package/build/src/utils/exception.utils.d.ts +0 -230
  238. package/build/src/utils/exception.utils.js +0 -407
  239. package/build/src/utils/exception.utils.js.map +0 -1
  240. package/build/src/utils/fs.utils.d.ts +0 -164
  241. package/build/src/utils/fs.utils.js +0 -372
  242. package/build/src/utils/fs.utils.js.map +0 -1
  243. package/build/src/utils/http-status-codes.d.ts +0 -266
  244. package/build/src/utils/http-status-codes.js +0 -298
  245. package/build/src/utils/http-status-codes.js.map +0 -1
  246. package/build/src/utils/id.utils.d.ts +0 -36
  247. package/build/src/utils/id.utils.js +0 -91
  248. package/build/src/utils/id.utils.js.map +0 -1
  249. package/build/src/utils/logger.utils.d.ts +0 -160
  250. package/build/src/utils/logger.utils.js +0 -346
  251. package/build/src/utils/logger.utils.js.map +0 -1
  252. package/build/src/utils/middleware.utils.d.ts +0 -100
  253. package/build/src/utils/middleware.utils.js +0 -244
  254. package/build/src/utils/middleware.utils.js.map +0 -1
  255. package/build/src/utils/obj.utils.d.ts +0 -124
  256. package/build/src/utils/obj.utils.js +0 -429
  257. package/build/src/utils/obj.utils.js.map +0 -1
  258. package/build/src/utils/performance.utils.d.ts +0 -136
  259. package/build/src/utils/performance.utils.js +0 -278
  260. package/build/src/utils/performance.utils.js.map +0 -1
  261. package/build/src/utils/request.utils.d.ts +0 -86
  262. package/build/src/utils/request.utils.js +0 -195
  263. package/build/src/utils/request.utils.js.map +0 -1
  264. package/build/src/utils/response.utils.d.ts +0 -163
  265. package/build/src/utils/response.utils.js +0 -260
  266. package/build/src/utils/response.utils.js.map +0 -1
  267. package/build/src/utils/stream.utils.d.ts +0 -88
  268. package/build/src/utils/stream.utils.js +0 -218
  269. package/build/src/utils/stream.utils.js.map +0 -1
  270. package/build/src/utils/string.utils.d.ts +0 -93
  271. package/build/src/utils/string.utils.js +0 -179
  272. package/build/src/utils/string.utils.js.map +0 -1
  273. package/build/src/utils/type.utils.d.ts +0 -90
  274. package/build/src/utils/type.utils.js +0 -196
  275. package/build/src/utils/type.utils.js.map +0 -1
  276. package/build/src/utils/url.utils.d.ts +0 -141
  277. package/build/src/utils/url.utils.js +0 -317
  278. package/build/src/utils/url.utils.js.map +0 -1
  279. package/build/src/utils/validate.utils.d.ts +0 -177
  280. package/build/src/utils/validate.utils.js +0 -345
  281. package/build/src/utils/validate.utils.js.map +0 -1
@@ -21,78 +21,6 @@
21
21
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
22
  * SOFTWARE.
23
23
  */
24
- var __assign = (this && this.__assign) || function () {
25
- __assign = Object.assign || function(t) {
26
- for (var s, i = 1, n = arguments.length; i < n; i++) {
27
- s = arguments[i];
28
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
29
- t[p] = s[p];
30
- }
31
- return t;
32
- };
33
- return __assign.apply(this, arguments);
34
- };
35
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
36
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
37
- return new (P || (P = Promise))(function (resolve, reject) {
38
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
39
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
40
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
41
- step((generator = generator.apply(thisArg, _arguments || [])).next());
42
- });
43
- };
44
- var __generator = (this && this.__generator) || function (thisArg, body) {
45
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
46
- return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
47
- function verb(n) { return function (v) { return step([n, v]); }; }
48
- function step(op) {
49
- if (f) throw new TypeError("Generator is already executing.");
50
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
51
- 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;
52
- if (y = 0, t) op = [op[0] & 2, t.value];
53
- switch (op[0]) {
54
- case 0: case 1: t = op; break;
55
- case 4: _.label++; return { value: op[1], done: false };
56
- case 5: _.label++; y = op[1]; op = [0]; continue;
57
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
58
- default:
59
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
60
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
61
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
62
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
63
- if (t[2]) _.ops.pop();
64
- _.trys.pop(); continue;
65
- }
66
- op = body.call(thisArg, _);
67
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
68
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
69
- }
70
- };
71
- var __read = (this && this.__read) || function (o, n) {
72
- var m = typeof Symbol === "function" && o[Symbol.iterator];
73
- if (!m) return o;
74
- var i = m.call(o), r, ar = [], e;
75
- try {
76
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
77
- }
78
- catch (error) { e = { error: error }; }
79
- finally {
80
- try {
81
- if (r && !r.done && (m = i["return"])) m.call(i);
82
- }
83
- finally { if (e) throw e.error; }
84
- }
85
- return ar;
86
- };
87
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
88
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
89
- if (ar || !(i in from)) {
90
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
91
- ar[i] = from[i];
92
- }
93
- }
94
- return to.concat(ar || Array.prototype.slice.call(from));
95
- };
96
24
  import { TTLCache } from './cache.utils';
97
25
  import { getLogger } from './logger.utils';
98
26
  /**
@@ -112,46 +40,45 @@ import { getLogger } from './logger.utils';
112
40
  * console.log(`Result: ${result}, took ${timing.durationMs}ms`);
113
41
  * ```
114
42
  */
115
- export function timeSync(fn, options) {
116
- if (options === void 0) { options = {}; }
117
- var _a = options.label, label = _a === void 0 ? fn.name || 'anonymous function' : _a, _b = options.log, log = _b === void 0 ? false : _b, _c = options.logLevel, logLevel = _c === void 0 ? 'debug' : _c;
118
- var startTime = performance.now();
119
- var result = fn();
120
- var endTime = performance.now();
121
- var durationMs = endTime - startTime;
122
- var durationSec = durationMs / 1000;
123
- var timing = {
124
- durationMs: durationMs,
125
- durationSec: durationSec,
126
- startTime: startTime,
127
- endTime: endTime,
128
- label: label
43
+ export function timeSync(fn, options = {}) {
44
+ const { label = fn.name || 'anonymous function', log = false, logLevel = 'debug' } = options;
45
+ const startTime = performance.now();
46
+ const result = fn();
47
+ const endTime = performance.now();
48
+ const durationMs = endTime - startTime;
49
+ const durationSec = durationMs / 1000;
50
+ const timing = {
51
+ durationMs,
52
+ durationSec,
53
+ startTime,
54
+ endTime,
55
+ label
129
56
  };
130
57
  if (log) {
131
- var logger = getLogger();
132
- var message = "".concat(label, " completed in ").concat(durationMs.toFixed(2), "ms");
58
+ const logger = getLogger();
59
+ const message = `${label} completed in ${durationMs.toFixed(2)}ms`;
133
60
  switch (logLevel) {
134
61
  case 'trace':
135
- logger.trace({ timing: timing }, message);
62
+ logger.trace({ timing }, message);
136
63
  break;
137
64
  case 'debug':
138
- logger.debug({ timing: timing }, message);
65
+ logger.debug({ timing }, message);
139
66
  break;
140
67
  case 'info':
141
- logger.info({ timing: timing }, message);
68
+ logger.info({ timing }, message);
142
69
  break;
143
70
  case 'warn':
144
- logger.warn({ timing: timing }, message);
71
+ logger.warn({ timing }, message);
145
72
  break;
146
73
  case 'error':
147
- logger.error({ timing: timing }, message);
74
+ logger.error({ timing }, message);
148
75
  break;
149
76
  default:
150
- logger.debug({ timing: timing }, message);
77
+ logger.debug({ timing }, message);
151
78
  break;
152
79
  }
153
80
  }
154
- return { result: result, timing: timing };
81
+ return { result, timing };
155
82
  }
156
83
  /**
157
84
  * Measure the execution time of an asynchronous function.
@@ -171,56 +98,45 @@ export function timeSync(fn, options) {
171
98
  * console.log(`Fetched ${result.length} items in ${timing.durationSec.toFixed(2)}s`);
172
99
  * ```
173
100
  */
174
- export function timeAsync(fn_1) {
175
- return __awaiter(this, arguments, void 0, function (fn, options) {
176
- var _a, label, _b, log, _c, logLevel, startTime, result, endTime, durationMs, durationSec, timing, logger, message;
177
- if (options === void 0) { options = {}; }
178
- return __generator(this, function (_d) {
179
- switch (_d.label) {
180
- case 0:
181
- _a = options.label, label = _a === void 0 ? fn.name || 'anonymous async function' : _a, _b = options.log, log = _b === void 0 ? false : _b, _c = options.logLevel, logLevel = _c === void 0 ? 'debug' : _c;
182
- startTime = performance.now();
183
- return [4 /*yield*/, fn()];
184
- case 1:
185
- result = _d.sent();
186
- endTime = performance.now();
187
- durationMs = endTime - startTime;
188
- durationSec = durationMs / 1000;
189
- timing = {
190
- durationMs: durationMs,
191
- durationSec: durationSec,
192
- startTime: startTime,
193
- endTime: endTime,
194
- label: label
195
- };
196
- if (log) {
197
- logger = getLogger();
198
- message = "".concat(label, " completed in ").concat(durationMs.toFixed(2), "ms");
199
- switch (logLevel) {
200
- case 'trace':
201
- logger.trace({ timing: timing }, message);
202
- break;
203
- case 'debug':
204
- logger.debug({ timing: timing }, message);
205
- break;
206
- case 'info':
207
- logger.info({ timing: timing }, message);
208
- break;
209
- case 'warn':
210
- logger.warn({ timing: timing }, message);
211
- break;
212
- case 'error':
213
- logger.error({ timing: timing }, message);
214
- break;
215
- default:
216
- logger.debug({ timing: timing }, message);
217
- break;
218
- }
219
- }
220
- return [2 /*return*/, { result: result, timing: timing }];
221
- }
222
- });
223
- });
101
+ export async function timeAsync(fn, options = {}) {
102
+ const { label = fn.name || 'anonymous async function', log = false, logLevel = 'debug' } = options;
103
+ const startTime = performance.now();
104
+ const result = await fn();
105
+ const endTime = performance.now();
106
+ const durationMs = endTime - startTime;
107
+ const durationSec = durationMs / 1000;
108
+ const timing = {
109
+ durationMs,
110
+ durationSec,
111
+ startTime,
112
+ endTime,
113
+ label
114
+ };
115
+ if (log) {
116
+ const logger = getLogger();
117
+ const message = `${label} completed in ${durationMs.toFixed(2)}ms`;
118
+ switch (logLevel) {
119
+ case 'trace':
120
+ logger.trace({ timing }, message);
121
+ break;
122
+ case 'debug':
123
+ logger.debug({ timing }, message);
124
+ break;
125
+ case 'info':
126
+ logger.info({ timing }, message);
127
+ break;
128
+ case 'warn':
129
+ logger.warn({ timing }, message);
130
+ break;
131
+ case 'error':
132
+ logger.error({ timing }, message);
133
+ break;
134
+ default:
135
+ logger.debug({ timing }, message);
136
+ break;
137
+ }
138
+ }
139
+ return { result, timing };
224
140
  }
225
141
  /**
226
142
  * Create a timing decorator for class methods.
@@ -238,37 +154,31 @@ export function timeAsync(fn_1) {
238
154
  * }
239
155
  * ```
240
156
  */
241
- export function timed(options) {
242
- if (options === void 0) { options = {}; }
157
+ export function timed(options = {}) {
243
158
  return function (target, propertyKeyOrContext, descriptor) {
244
- var propertyKey;
245
- var actualDescriptor;
159
+ let propertyKey;
160
+ let actualDescriptor;
246
161
  // ESNext decorator: second argument is context object
247
162
  if (typeof propertyKeyOrContext === 'object' && propertyKeyOrContext !== null && 'name' in propertyKeyOrContext) {
248
163
  propertyKey = propertyKeyOrContext.name;
249
- actualDescriptor = descriptor !== null && descriptor !== void 0 ? descriptor : Object.getOwnPropertyDescriptor(target, propertyKey);
164
+ actualDescriptor = descriptor ?? Object.getOwnPropertyDescriptor(target, propertyKey);
250
165
  }
251
166
  else {
252
167
  // Legacy decorator: second argument is property key
253
168
  propertyKey = propertyKeyOrContext;
254
- actualDescriptor = descriptor !== null && descriptor !== void 0 ? descriptor : Object.getOwnPropertyDescriptor(target, propertyKey);
169
+ actualDescriptor = descriptor ?? Object.getOwnPropertyDescriptor(target, propertyKey);
255
170
  }
256
- var originalMethod = actualDescriptor.value;
257
- actualDescriptor.value = function () {
258
- var _this = this;
259
- var args = [];
260
- for (var _i = 0; _i < arguments.length; _i++) {
261
- args[_i] = arguments[_i];
262
- }
263
- var methodOptions = __assign(__assign({}, options), { label: options.label || "".concat(target.constructor.name, ".").concat(String(propertyKey)) });
171
+ const originalMethod = actualDescriptor.value;
172
+ actualDescriptor.value = function (...args) {
173
+ const methodOptions = {
174
+ ...options,
175
+ label: options.label || `${target.constructor.name}.${String(propertyKey)}`
176
+ };
264
177
  if (originalMethod.constructor.name === 'AsyncFunction') {
265
- return timeAsync(function () { return originalMethod.apply(_this, args); }, methodOptions).then(function (_a) {
266
- var result = _a.result;
267
- return result;
268
- });
178
+ return timeAsync(() => originalMethod.apply(this, args), methodOptions).then(({ result }) => result);
269
179
  }
270
180
  else {
271
- return timeSync(function () { return originalMethod.apply(_this, args); }, methodOptions).result;
181
+ return timeSync(() => originalMethod.apply(this, args), methodOptions).result;
272
182
  }
273
183
  };
274
184
  // For legacy decorators, assign the new descriptor
@@ -300,34 +210,23 @@ export function timed(options) {
300
210
  * );
301
211
  * ```
302
212
  */
303
- export function memoize(fn, options) {
304
- if (options === void 0) { options = {}; }
305
- var ttl = options.ttl, maxSize = options.maxSize, autoCleanupMs = options.autoCleanupMs, _a = options.cacheKey, cacheKey = _a === void 0 ? function () {
306
- var args = [];
307
- for (var _i = 0; _i < arguments.length; _i++) {
308
- args[_i] = arguments[_i];
309
- }
310
- return JSON.stringify(args);
311
- } : _a;
213
+ export function memoize(fn, options = {}) {
214
+ const { ttl, maxSize, autoCleanupMs, cacheKey = (...args) => JSON.stringify(args) } = options;
312
215
  // Create a properly configured TTLCache instance
313
- var cache = new TTLCache({
216
+ const cache = new TTLCache({
314
217
  ttlMs: ttl,
315
218
  maxSize: maxSize,
316
219
  autoCleanupMs: autoCleanupMs
317
220
  });
318
- return function () {
319
- var args = [];
320
- for (var _i = 0; _i < arguments.length; _i++) {
321
- args[_i] = arguments[_i];
322
- }
323
- var key = cacheKey.apply(void 0, __spreadArray([], __read(args), false));
221
+ return function (...args) {
222
+ const key = cacheKey(...args);
324
223
  // Try to get from cache first - TTLCache handles expiration internally
325
- var cachedValue = cache.get(key);
224
+ const cachedValue = cache.get(key);
326
225
  if (cachedValue !== undefined) {
327
226
  return cachedValue;
328
227
  }
329
228
  // Calculate the value and store in cache with configured TTL
330
- var value = fn.apply(void 0, __spreadArray([], __read(args), false));
229
+ const value = fn(...args);
331
230
  cache.set(key, value);
332
231
  return value;
333
232
  };
@@ -339,38 +238,36 @@ export function memoize(fn, options) {
339
238
  * @param options - Memory tracking options
340
239
  * @returns Result and memory usage information
341
240
  */
342
- export function trackMemoryUsage(fn, options) {
343
- if (options === void 0) { options = {}; }
344
- var _a = options.log, log = _a === void 0 ? false : _a, _b = options.label, label = _b === void 0 ? fn.name || 'anonymous function' : _b;
241
+ export function trackMemoryUsage(fn, options = {}) {
242
+ const { log = false, label = fn.name || 'anonymous function' } = options;
345
243
  // Collect garbage before measuring (optional)
346
244
  if (global.gc) {
347
245
  global.gc();
348
246
  }
349
- var beforeMemory = process.memoryUsage();
350
- var result = fn();
351
- var afterMemory = process.memoryUsage();
247
+ const beforeMemory = process.memoryUsage();
248
+ const result = fn();
249
+ const afterMemory = process.memoryUsage();
352
250
  // Calculate differences
353
- var diff = {};
354
- for (var key in afterMemory) {
251
+ const diff = {};
252
+ for (const key in afterMemory) {
355
253
  if (Object.prototype.hasOwnProperty.call(afterMemory, key)) {
356
254
  diff[key] = afterMemory[key] - beforeMemory[key];
357
255
  }
358
256
  }
359
257
  if (log) {
360
258
  getLogger().info({
361
- label: label,
259
+ label,
362
260
  memoryBefore: beforeMemory,
363
261
  memoryAfter: afterMemory,
364
262
  memoryDiff: diff
365
- }, "Memory usage for ".concat(label));
263
+ }, `Memory usage for ${label}`);
366
264
  }
367
265
  return {
368
- result: result,
266
+ result,
369
267
  memoryUsage: {
370
268
  before: beforeMemory,
371
269
  after: afterMemory,
372
- diff: diff
270
+ diff
373
271
  }
374
272
  };
375
273
  }
376
- //# sourceMappingURL=performance.utils.js.map
@@ -83,4 +83,3 @@ export declare function extractSortParams(query: Record<string, string | string[
83
83
  * @returns Object containing the filters as key-value pairs
84
84
  */
85
85
  export declare function extractFilterParams(query: Record<string, string | string[]>, allowedFilters: string[]): Record<string, string | string[]>;
86
- //# sourceMappingURL=request.utils.d.ts.map
@@ -21,28 +21,6 @@
21
21
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
22
  * SOFTWARE.
23
23
  */
24
- var __assign = (this && this.__assign) || function () {
25
- __assign = Object.assign || function(t) {
26
- for (var s, i = 1, n = arguments.length; i < n; i++) {
27
- s = arguments[i];
28
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
29
- t[p] = s[p];
30
- }
31
- return t;
32
- };
33
- return __assign.apply(this, arguments);
34
- };
35
- var __values = (this && this.__values) || function(o) {
36
- var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
37
- if (m) return m.call(o);
38
- if (o && typeof o.length === "number") return {
39
- next: function () {
40
- if (o && i >= o.length) o = void 0;
41
- return { value: o && o[i++], done: !o };
42
- }
43
- };
44
- throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
45
- };
46
24
  import { BadRequestException } from './exception.utils';
47
25
  /**
48
26
  * Extracts pagination, sorting, and optional search params from a request.
@@ -50,14 +28,21 @@ import { BadRequestException } from './exception.utils';
50
28
  * @param req - Express request
51
29
  * @returns Object containing validated pagination, sorting, and additional query params
52
30
  */
53
- export var getPaginationParams = function (req) {
54
- var query = req.query;
31
+ export const getPaginationParams = (req) => {
32
+ const query = req.query;
55
33
  // Extract page & limit
56
- var _a = extractPaginationParams(query, 1, 20, 100), page = _a.page, limit = _a.limit;
57
- var _b = extractSortParams(query, []), sortBy = _b.sortBy, sortOrder = _b.sortOrder;
34
+ const { page, limit } = extractPaginationParams(query, 1, 20, 100);
35
+ const { sortBy, sortOrder } = extractSortParams(query, []);
58
36
  // Optional search param
59
- var search = typeof query.search === 'string' ? query.search : undefined;
60
- return __assign(__assign({}, query), { page: page, limit: limit, sortBy: sortBy, sortOrder: sortOrder, search: search });
37
+ const search = typeof query.search === 'string' ? query.search : undefined;
38
+ return {
39
+ ...query,
40
+ page,
41
+ limit,
42
+ sortBy,
43
+ sortOrder: sortOrder,
44
+ search
45
+ };
61
46
  };
62
47
  /**
63
48
  * Safely parses a string parameter to a number.
@@ -66,16 +51,15 @@ export var getPaginationParams = function (req) {
66
51
  * @param options - Validation options
67
52
  * @returns Validation result containing the parsed number or error
68
53
  */
69
- export function parseNumberParam(value, options) {
70
- if (options === void 0) { options = {}; }
71
- var _a = options.throwOnError, throwOnError = _a === void 0 ? false : _a, _b = options.errorMessage, errorMessage = _b === void 0 ? 'Invalid number parameter' : _b, defaultValue = options.defaultValue, _c = options.required, required = _c === void 0 ? false : _c;
54
+ export function parseNumberParam(value, options = {}) {
55
+ const { throwOnError = false, errorMessage = 'Invalid number parameter', defaultValue, required = false } = options;
72
56
  // Handle undefined case
73
57
  if (value === undefined) {
74
58
  if (required) {
75
- var error = "Required number parameter is missing";
59
+ const error = `Required number parameter is missing`;
76
60
  if (throwOnError)
77
61
  throw new BadRequestException(error);
78
- return { isValid: false, value: null, error: error };
62
+ return { isValid: false, value: null, error };
79
63
  }
80
64
  return {
81
65
  isValid: defaultValue !== undefined,
@@ -84,7 +68,7 @@ export function parseNumberParam(value, options) {
84
68
  };
85
69
  }
86
70
  // Parse and validate the number
87
- var num = Number(value);
71
+ const num = Number(value);
88
72
  if (isNaN(num)) {
89
73
  if (throwOnError)
90
74
  throw new BadRequestException(errorMessage);
@@ -99,16 +83,15 @@ export function parseNumberParam(value, options) {
99
83
  * @param options - Validation options
100
84
  * @returns Validation result containing the parsed boolean or error
101
85
  */
102
- export function parseBooleanParam(value, options) {
103
- if (options === void 0) { options = {}; }
104
- var _a = options.throwOnError, throwOnError = _a === void 0 ? false : _a, _b = options.errorMessage, errorMessage = _b === void 0 ? 'Invalid boolean parameter' : _b, defaultValue = options.defaultValue, _c = options.required, required = _c === void 0 ? false : _c;
86
+ export function parseBooleanParam(value, options = {}) {
87
+ const { throwOnError = false, errorMessage = 'Invalid boolean parameter', defaultValue, required = false } = options;
105
88
  // Handle undefined case
106
89
  if (value === undefined) {
107
90
  if (required) {
108
- var error = "Required boolean parameter is missing";
91
+ const error = `Required boolean parameter is missing`;
109
92
  if (throwOnError)
110
93
  throw new BadRequestException(error);
111
- return { isValid: false, value: null, error: error };
94
+ return { isValid: false, value: null, error };
112
95
  }
113
96
  return {
114
97
  isValid: defaultValue !== undefined,
@@ -117,7 +100,7 @@ export function parseBooleanParam(value, options) {
117
100
  };
118
101
  }
119
102
  // Parse the boolean value with various allowed formats
120
- var lowercaseValue = value.toLowerCase();
103
+ const lowercaseValue = value.toLowerCase();
121
104
  if (['true', 't', 'yes', 'y', '1'].includes(lowercaseValue)) {
122
105
  return { isValid: true, value: true };
123
106
  }
@@ -137,20 +120,17 @@ export function parseBooleanParam(value, options) {
137
120
  * @param maxLimitSize - Maximum allowed per page size (defaults to 100)
138
121
  * @returns Object containing validated page and limit
139
122
  */
140
- export function extractPaginationParams(query, defaultPage, defaultLimit, maxLimitSize) {
141
- if (defaultPage === void 0) { defaultPage = 1; }
142
- if (defaultLimit === void 0) { defaultLimit = 20; }
143
- if (maxLimitSize === void 0) { maxLimitSize = 100; }
123
+ export function extractPaginationParams(query, defaultPage = 1, defaultLimit = 20, maxLimitSize = 100) {
144
124
  // Parse page parameter
145
- var pageParam = typeof query.page === 'string' ? query.page : undefined;
146
- var pageResult = parseNumberParam(pageParam, { defaultValue: defaultPage });
125
+ const pageParam = typeof query.page === 'string' ? query.page : undefined;
126
+ const pageResult = parseNumberParam(pageParam, { defaultValue: defaultPage });
147
127
  // Parse limit parameter
148
- var limitParam = typeof query.limit === 'string' ? query.limit : undefined;
149
- var limitResult = parseNumberParam(limitParam, { defaultValue: defaultLimit });
128
+ const limitParam = typeof query.limit === 'string' ? query.limit : undefined;
129
+ const limitResult = parseNumberParam(limitParam, { defaultValue: defaultLimit });
150
130
  // Ensure valid values (handle 0 → fallback to default)
151
- var page = pageResult.value && pageResult.value > 0 ? pageResult.value : defaultPage;
152
- var limit = limitResult.value && limitResult.value > 0 ? Math.min(limitResult.value, maxLimitSize) : defaultLimit;
153
- return { page: page, limit: limit };
131
+ const page = pageResult.value && pageResult.value > 0 ? pageResult.value : defaultPage;
132
+ const limit = limitResult.value && limitResult.value > 0 ? Math.min(limitResult.value, maxLimitSize) : defaultLimit;
133
+ return { page, limit };
154
134
  }
155
135
  /**
156
136
  * Extracts sorting parameters from request query parameters.
@@ -160,10 +140,9 @@ export function extractPaginationParams(query, defaultPage, defaultLimit, maxLim
160
140
  * @param defaultSort - Default sort configuration if not specified
161
141
  * @returns Object containing sort field and direction
162
142
  */
163
- export function extractSortParams(query, allowedFields, defaultSort) {
164
- if (defaultSort === void 0) { defaultSort = { sortBy: 'createdAt', sortOrder: 'desc' }; }
165
- var sortBy = defaultSort.sortBy;
166
- var sortOrder = defaultSort.sortOrder;
143
+ export function extractSortParams(query, allowedFields, defaultSort = { sortBy: 'createdAt', sortOrder: 'desc' }) {
144
+ let sortBy = defaultSort.sortBy;
145
+ let sortOrder = defaultSort.sortOrder;
167
146
  // Extract from `sortBy` or `sort`
168
147
  if (typeof query.sortBy === 'string') {
169
148
  sortBy = query.sortBy;
@@ -181,7 +160,7 @@ export function extractSortParams(query, allowedFields, defaultSort) {
181
160
  }
182
161
  // Explicit sortOrder (overrides inferred one if valid)
183
162
  if (typeof query.sortOrder === 'string') {
184
- var order = query.sortOrder.toLowerCase();
163
+ const order = query.sortOrder.toLowerCase();
185
164
  if (order === 'asc' || order === 'desc') {
186
165
  sortOrder = order;
187
166
  }
@@ -190,7 +169,7 @@ export function extractSortParams(query, allowedFields, defaultSort) {
190
169
  if (allowedFields.length && !allowedFields.includes(sortBy)) {
191
170
  sortBy = defaultSort.sortBy;
192
171
  }
193
- return { sortBy: sortBy, sortOrder: sortOrder };
172
+ return { sortBy, sortOrder };
194
173
  }
195
174
  /**
196
175
  * Extracts filter parameters from query parameters based on allowed filter fields.
@@ -200,24 +179,12 @@ export function extractSortParams(query, allowedFields, defaultSort) {
200
179
  * @returns Object containing the filters as key-value pairs
201
180
  */
202
181
  export function extractFilterParams(query, allowedFilters) {
203
- var e_1, _a;
204
- var filters = {};
205
- try {
206
- // Find filter parameters in the query
207
- for (var allowedFilters_1 = __values(allowedFilters), allowedFilters_1_1 = allowedFilters_1.next(); !allowedFilters_1_1.done; allowedFilters_1_1 = allowedFilters_1.next()) {
208
- var field = allowedFilters_1_1.value;
209
- if (field in query) {
210
- filters[field] = query[field];
211
- }
212
- }
213
- }
214
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
215
- finally {
216
- try {
217
- if (allowedFilters_1_1 && !allowedFilters_1_1.done && (_a = allowedFilters_1.return)) _a.call(allowedFilters_1);
182
+ const filters = {};
183
+ // Find filter parameters in the query
184
+ for (const field of allowedFilters) {
185
+ if (field in query) {
186
+ filters[field] = query[field];
218
187
  }
219
- finally { if (e_1) throw e_1.error; }
220
188
  }
221
189
  return filters;
222
190
  }
223
- //# sourceMappingURL=request.utils.js.map
@@ -160,4 +160,3 @@ export declare function createPaginatedResponse<T>(allItems: T[], page: number,
160
160
  * @param {SuccessResponse<any> | ErrorResponse | RedirectResponse} apiResponse - API response instance.
161
161
  */
162
162
  export declare function sendResponse(res: any, apiResponse: SuccessResponse<any> | ErrorResponse | RedirectResponse): void;
163
- //# sourceMappingURL=response.utils.d.ts.map