@catbee/utils 0.0.8-rc.1 → 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 (280) hide show
  1. package/build/esm/config.d.ts +0 -1
  2. package/build/esm/config.js +6 -7
  3. package/build/esm/index.d.ts +0 -1
  4. package/build/esm/index.js +0 -1
  5. package/build/esm/servers/server.builder.d.ts +0 -1
  6. package/build/esm/servers/server.builder.js +99 -147
  7. package/build/esm/servers/server.d.ts +0 -1
  8. package/build/esm/servers/server.js +591 -876
  9. package/build/esm/types/api-response.d.ts +0 -1
  10. package/build/esm/types/api-response.js +0 -1
  11. package/build/esm/types/index.d.ts +0 -1
  12. package/build/esm/types/index.js +0 -1
  13. package/build/esm/types/server.d.ts +0 -1
  14. package/build/esm/types/server.js +0 -1
  15. package/build/esm/utils/array.utils.d.ts +0 -1
  16. package/build/esm/utils/array.utils.js +48 -86
  17. package/build/esm/utils/async.utils.d.ts +0 -1
  18. package/build/esm/utils/async.utils.js +247 -524
  19. package/build/esm/utils/cache.utils.d.ts +0 -1
  20. package/build/esm/utils/cache.utils.js +96 -301
  21. package/build/esm/utils/context-store.utils.d.ts +0 -1
  22. package/build/esm/utils/context-store.utils.js +62 -79
  23. package/build/esm/utils/crypto.utils.d.ts +0 -1
  24. package/build/esm/utils/crypto.utils.js +78 -175
  25. package/build/esm/utils/date.utils.d.ts +0 -1
  26. package/build/esm/utils/date.utils.js +47 -53
  27. package/build/esm/utils/decorators.utils.d.ts +30 -27
  28. package/build/esm/utils/decorators.utils.js +417 -461
  29. package/build/esm/utils/dir.utils.d.ts +0 -1
  30. package/build/esm/utils/dir.utils.js +264 -786
  31. package/build/esm/utils/env.utils.d.ts +0 -1
  32. package/build/esm/utils/env.utils.js +180 -271
  33. package/build/esm/utils/exception.utils.d.ts +0 -1
  34. package/build/esm/utils/exception.utils.js +112 -289
  35. package/build/esm/utils/fs.utils.d.ts +0 -1
  36. package/build/esm/utils/fs.utils.js +169 -401
  37. package/build/esm/utils/http-status-codes.d.ts +0 -1
  38. package/build/esm/utils/http-status-codes.js +0 -1
  39. package/build/esm/utils/id.utils.d.ts +0 -1
  40. package/build/esm/utils/id.utils.js +5 -9
  41. package/build/esm/utils/logger.utils.d.ts +0 -1
  42. package/build/esm/utils/logger.utils.js +34 -71
  43. package/build/esm/utils/middleware.utils.d.ts +0 -1
  44. package/build/esm/utils/middleware.utils.js +65 -155
  45. package/build/esm/utils/obj.utils.d.ts +0 -1
  46. package/build/esm/utils/obj.utils.js +69 -176
  47. package/build/esm/utils/performance.utils.d.ts +0 -1
  48. package/build/esm/utils/performance.utils.js +92 -195
  49. package/build/esm/utils/request.utils.d.ts +0 -1
  50. package/build/esm/utils/request.utils.js +41 -74
  51. package/build/esm/utils/response.utils.d.ts +0 -1
  52. package/build/esm/utils/response.utils.js +84 -107
  53. package/build/esm/utils/stream.utils.d.ts +0 -1
  54. package/build/esm/utils/stream.utils.js +38 -113
  55. package/build/esm/utils/string.utils.d.ts +0 -1
  56. package/build/esm/utils/string.utils.js +6 -11
  57. package/build/esm/utils/type.utils.d.ts +0 -1
  58. package/build/esm/utils/type.utils.js +8 -12
  59. package/build/esm/utils/url.utils.d.ts +0 -1
  60. package/build/esm/utils/url.utils.js +49 -127
  61. package/build/esm/utils/validate.utils.d.ts +0 -1
  62. package/build/esm/utils/validate.utils.js +23 -40
  63. package/package.json +3 -33
  64. package/build/esm/config.js.map +0 -1
  65. package/build/esm/index.js.map +0 -1
  66. package/build/esm/servers/server.builder.js.map +0 -1
  67. package/build/esm/servers/server.js.map +0 -1
  68. package/build/esm/types/api-response.js.map +0 -1
  69. package/build/esm/types/index.js.map +0 -1
  70. package/build/esm/types/server.js.map +0 -1
  71. package/build/esm/utils/array.utils.js.map +0 -1
  72. package/build/esm/utils/async.utils.js.map +0 -1
  73. package/build/esm/utils/cache.utils.js.map +0 -1
  74. package/build/esm/utils/context-store.utils.js.map +0 -1
  75. package/build/esm/utils/crypto.utils.js.map +0 -1
  76. package/build/esm/utils/date.utils.js.map +0 -1
  77. package/build/esm/utils/decorators.utils.js.map +0 -1
  78. package/build/esm/utils/dir.utils.js.map +0 -1
  79. package/build/esm/utils/env.utils.js.map +0 -1
  80. package/build/esm/utils/exception.utils.js.map +0 -1
  81. package/build/esm/utils/fs.utils.js.map +0 -1
  82. package/build/esm/utils/http-status-codes.js.map +0 -1
  83. package/build/esm/utils/id.utils.js.map +0 -1
  84. package/build/esm/utils/logger.utils.js.map +0 -1
  85. package/build/esm/utils/middleware.utils.js.map +0 -1
  86. package/build/esm/utils/obj.utils.js.map +0 -1
  87. package/build/esm/utils/performance.utils.js.map +0 -1
  88. package/build/esm/utils/request.utils.js.map +0 -1
  89. package/build/esm/utils/response.utils.js.map +0 -1
  90. package/build/esm/utils/stream.utils.js.map +0 -1
  91. package/build/esm/utils/string.utils.js.map +0 -1
  92. package/build/esm/utils/type.utils.js.map +0 -1
  93. package/build/esm/utils/url.utils.js.map +0 -1
  94. package/build/esm/utils/validate.utils.js.map +0 -1
  95. package/build/esnext/config.d.ts +0 -122
  96. package/build/esnext/config.js +0 -133
  97. package/build/esnext/config.js.map +0 -1
  98. package/build/esnext/index.d.ts +0 -27
  99. package/build/esnext/index.js +0 -50
  100. package/build/esnext/index.js.map +0 -1
  101. package/build/esnext/servers/server.builder.d.ts +0 -508
  102. package/build/esnext/servers/server.builder.js +0 -657
  103. package/build/esnext/servers/server.builder.js.map +0 -1
  104. package/build/esnext/servers/server.d.ts +0 -256
  105. package/build/esnext/servers/server.js +0 -955
  106. package/build/esnext/servers/server.js.map +0 -1
  107. package/build/esnext/types/api-response.d.ts +0 -152
  108. package/build/esnext/types/api-response.js +0 -34
  109. package/build/esnext/types/api-response.js.map +0 -1
  110. package/build/esnext/types/index.d.ts +0 -125
  111. package/build/esnext/types/index.js +0 -25
  112. package/build/esnext/types/index.js.map +0 -1
  113. package/build/esnext/types/server.d.ts +0 -268
  114. package/build/esnext/types/server.js +0 -25
  115. package/build/esnext/types/server.js.map +0 -1
  116. package/build/esnext/utils/array.utils.d.ts +0 -168
  117. package/build/esnext/utils/array.utils.js +0 -345
  118. package/build/esnext/utils/array.utils.js.map +0 -1
  119. package/build/esnext/utils/async.utils.d.ts +0 -265
  120. package/build/esnext/utils/async.utils.js +0 -620
  121. package/build/esnext/utils/async.utils.js.map +0 -1
  122. package/build/esnext/utils/cache.utils.d.ts +0 -153
  123. package/build/esnext/utils/cache.utils.js +0 -293
  124. package/build/esnext/utils/cache.utils.js.map +0 -1
  125. package/build/esnext/utils/context-store.utils.d.ts +0 -189
  126. package/build/esnext/utils/context-store.utils.js +0 -289
  127. package/build/esnext/utils/context-store.utils.js.map +0 -1
  128. package/build/esnext/utils/crypto.utils.d.ts +0 -160
  129. package/build/esnext/utils/crypto.utils.js +0 -276
  130. package/build/esnext/utils/crypto.utils.js.map +0 -1
  131. package/build/esnext/utils/date.utils.d.ts +0 -159
  132. package/build/esnext/utils/date.utils.js +0 -384
  133. package/build/esnext/utils/date.utils.js.map +0 -1
  134. package/build/esnext/utils/decorators.utils.d.ts +0 -508
  135. package/build/esnext/utils/decorators.utils.js +0 -877
  136. package/build/esnext/utils/decorators.utils.js.map +0 -1
  137. package/build/esnext/utils/dir.utils.d.ts +0 -196
  138. package/build/esnext/utils/dir.utils.js +0 -477
  139. package/build/esnext/utils/dir.utils.js.map +0 -1
  140. package/build/esnext/utils/env.utils.d.ts +0 -377
  141. package/build/esnext/utils/env.utils.js +0 -785
  142. package/build/esnext/utils/env.utils.js.map +0 -1
  143. package/build/esnext/utils/exception.utils.d.ts +0 -230
  144. package/build/esnext/utils/exception.utils.js +0 -381
  145. package/build/esnext/utils/exception.utils.js.map +0 -1
  146. package/build/esnext/utils/fs.utils.d.ts +0 -164
  147. package/build/esnext/utils/fs.utils.js +0 -349
  148. package/build/esnext/utils/fs.utils.js.map +0 -1
  149. package/build/esnext/utils/http-status-codes.d.ts +0 -266
  150. package/build/esnext/utils/http-status-codes.js +0 -295
  151. package/build/esnext/utils/http-status-codes.js.map +0 -1
  152. package/build/esnext/utils/id.utils.d.ts +0 -36
  153. package/build/esnext/utils/id.utils.js +0 -84
  154. package/build/esnext/utils/id.utils.js.map +0 -1
  155. package/build/esnext/utils/logger.utils.d.ts +0 -160
  156. package/build/esnext/utils/logger.utils.js +0 -300
  157. package/build/esnext/utils/logger.utils.js.map +0 -1
  158. package/build/esnext/utils/middleware.utils.d.ts +0 -100
  159. package/build/esnext/utils/middleware.utils.js +0 -236
  160. package/build/esnext/utils/middleware.utils.js.map +0 -1
  161. package/build/esnext/utils/obj.utils.d.ts +0 -124
  162. package/build/esnext/utils/obj.utils.js +0 -413
  163. package/build/esnext/utils/obj.utils.js.map +0 -1
  164. package/build/esnext/utils/performance.utils.d.ts +0 -136
  165. package/build/esnext/utils/performance.utils.js +0 -271
  166. package/build/esnext/utils/performance.utils.js.map +0 -1
  167. package/build/esnext/utils/request.utils.d.ts +0 -86
  168. package/build/esnext/utils/request.utils.js +0 -186
  169. package/build/esnext/utils/request.utils.js.map +0 -1
  170. package/build/esnext/utils/response.utils.d.ts +0 -163
  171. package/build/esnext/utils/response.utils.js +0 -247
  172. package/build/esnext/utils/response.utils.js.map +0 -1
  173. package/build/esnext/utils/stream.utils.d.ts +0 -88
  174. package/build/esnext/utils/stream.utils.js +0 -210
  175. package/build/esnext/utils/stream.utils.js.map +0 -1
  176. package/build/esnext/utils/string.utils.d.ts +0 -93
  177. package/build/esnext/utils/string.utils.js +0 -165
  178. package/build/esnext/utils/string.utils.js.map +0 -1
  179. package/build/esnext/utils/type.utils.d.ts +0 -90
  180. package/build/esnext/utils/type.utils.js +0 -187
  181. package/build/esnext/utils/type.utils.js.map +0 -1
  182. package/build/esnext/utils/url.utils.d.ts +0 -141
  183. package/build/esnext/utils/url.utils.js +0 -304
  184. package/build/esnext/utils/url.utils.js.map +0 -1
  185. package/build/esnext/utils/validate.utils.d.ts +0 -177
  186. package/build/esnext/utils/validate.utils.js +0 -320
  187. package/build/esnext/utils/validate.utils.js.map +0 -1
  188. package/build/src/config.d.ts +0 -122
  189. package/build/src/config.js +0 -138
  190. package/build/src/config.js.map +0 -1
  191. package/build/src/index.d.ts +0 -27
  192. package/build/src/index.js +0 -69
  193. package/build/src/index.js.map +0 -1
  194. package/build/src/servers/server.builder.d.ts +0 -508
  195. package/build/src/servers/server.builder.js +0 -661
  196. package/build/src/servers/server.builder.js.map +0 -1
  197. package/build/src/servers/server.d.ts +0 -256
  198. package/build/src/servers/server.js +0 -962
  199. package/build/src/servers/server.js.map +0 -1
  200. package/build/src/types/api-response.d.ts +0 -152
  201. package/build/src/types/api-response.js +0 -37
  202. package/build/src/types/api-response.js.map +0 -1
  203. package/build/src/types/index.d.ts +0 -125
  204. package/build/src/types/index.js +0 -26
  205. package/build/src/types/index.js.map +0 -1
  206. package/build/src/types/server.d.ts +0 -268
  207. package/build/src/types/server.js +0 -26
  208. package/build/src/types/server.js.map +0 -1
  209. package/build/src/utils/array.utils.d.ts +0 -168
  210. package/build/src/utils/array.utils.js +0 -364
  211. package/build/src/utils/array.utils.js.map +0 -1
  212. package/build/src/utils/async.utils.d.ts +0 -265
  213. package/build/src/utils/async.utils.js +0 -641
  214. package/build/src/utils/async.utils.js.map +0 -1
  215. package/build/src/utils/cache.utils.d.ts +0 -153
  216. package/build/src/utils/cache.utils.js +0 -297
  217. package/build/src/utils/cache.utils.js.map +0 -1
  218. package/build/src/utils/context-store.utils.d.ts +0 -189
  219. package/build/src/utils/context-store.utils.js +0 -296
  220. package/build/src/utils/context-store.utils.js.map +0 -1
  221. package/build/src/utils/crypto.utils.d.ts +0 -160
  222. package/build/src/utils/crypto.utils.js +0 -293
  223. package/build/src/utils/crypto.utils.js.map +0 -1
  224. package/build/src/utils/date.utils.d.ts +0 -159
  225. package/build/src/utils/date.utils.js +0 -396
  226. package/build/src/utils/date.utils.js.map +0 -1
  227. package/build/src/utils/decorators.utils.d.ts +0 -508
  228. package/build/src/utils/decorators.utils.js +0 -896
  229. package/build/src/utils/decorators.utils.js.map +0 -1
  230. package/build/src/utils/dir.utils.d.ts +0 -196
  231. package/build/src/utils/dir.utils.js +0 -501
  232. package/build/src/utils/dir.utils.js.map +0 -1
  233. package/build/src/utils/env.utils.d.ts +0 -377
  234. package/build/src/utils/env.utils.js +0 -789
  235. package/build/src/utils/env.utils.js.map +0 -1
  236. package/build/src/utils/exception.utils.d.ts +0 -230
  237. package/build/src/utils/exception.utils.js +0 -407
  238. package/build/src/utils/exception.utils.js.map +0 -1
  239. package/build/src/utils/fs.utils.d.ts +0 -164
  240. package/build/src/utils/fs.utils.js +0 -372
  241. package/build/src/utils/fs.utils.js.map +0 -1
  242. package/build/src/utils/http-status-codes.d.ts +0 -266
  243. package/build/src/utils/http-status-codes.js +0 -298
  244. package/build/src/utils/http-status-codes.js.map +0 -1
  245. package/build/src/utils/id.utils.d.ts +0 -36
  246. package/build/src/utils/id.utils.js +0 -91
  247. package/build/src/utils/id.utils.js.map +0 -1
  248. package/build/src/utils/logger.utils.d.ts +0 -160
  249. package/build/src/utils/logger.utils.js +0 -346
  250. package/build/src/utils/logger.utils.js.map +0 -1
  251. package/build/src/utils/middleware.utils.d.ts +0 -100
  252. package/build/src/utils/middleware.utils.js +0 -244
  253. package/build/src/utils/middleware.utils.js.map +0 -1
  254. package/build/src/utils/obj.utils.d.ts +0 -124
  255. package/build/src/utils/obj.utils.js +0 -429
  256. package/build/src/utils/obj.utils.js.map +0 -1
  257. package/build/src/utils/performance.utils.d.ts +0 -136
  258. package/build/src/utils/performance.utils.js +0 -278
  259. package/build/src/utils/performance.utils.js.map +0 -1
  260. package/build/src/utils/request.utils.d.ts +0 -86
  261. package/build/src/utils/request.utils.js +0 -195
  262. package/build/src/utils/request.utils.js.map +0 -1
  263. package/build/src/utils/response.utils.d.ts +0 -163
  264. package/build/src/utils/response.utils.js +0 -260
  265. package/build/src/utils/response.utils.js.map +0 -1
  266. package/build/src/utils/stream.utils.d.ts +0 -88
  267. package/build/src/utils/stream.utils.js +0 -218
  268. package/build/src/utils/stream.utils.js.map +0 -1
  269. package/build/src/utils/string.utils.d.ts +0 -93
  270. package/build/src/utils/string.utils.js +0 -179
  271. package/build/src/utils/string.utils.js.map +0 -1
  272. package/build/src/utils/type.utils.d.ts +0 -90
  273. package/build/src/utils/type.utils.js +0 -196
  274. package/build/src/utils/type.utils.js.map +0 -1
  275. package/build/src/utils/url.utils.d.ts +0 -141
  276. package/build/src/utils/url.utils.js +0 -317
  277. package/build/src/utils/url.utils.js.map +0 -1
  278. package/build/src/utils/validate.utils.d.ts +0 -177
  279. package/build/src/utils/validate.utils.js +0 -345
  280. 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