@catbee/utils 0.0.8-rc.1 → 0.0.8-rc.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/{esnext → cjs}/config.d.ts +0 -1
- package/build/{src → cjs}/config.js +0 -1
- package/build/{esnext → cjs}/index.d.ts +0 -1
- package/build/{src → cjs}/index.js +0 -1
- package/build/{esnext → cjs}/servers/server.builder.d.ts +0 -1
- package/build/{src → cjs}/servers/server.builder.js +10 -13
- package/build/{src → cjs}/servers/server.d.ts +0 -1
- package/build/{src → cjs}/servers/server.js +83 -75
- package/build/{src → cjs}/types/api-response.d.ts +0 -1
- package/build/{src → cjs}/types/api-response.js +0 -1
- package/build/{src → cjs}/types/index.d.ts +0 -1
- package/build/{src → cjs}/types/index.js +0 -1
- package/build/{src → cjs}/types/server.d.ts +0 -1
- package/build/{src → cjs}/types/server.js +0 -1
- package/build/{src → cjs}/utils/array.utils.d.ts +0 -1
- package/build/{src → cjs}/utils/array.utils.js +0 -1
- package/build/{src → cjs}/utils/async.utils.d.ts +0 -1
- package/build/{src → cjs}/utils/async.utils.js +2 -3
- package/build/{esnext → cjs}/utils/cache.utils.d.ts +0 -1
- package/build/{src → cjs}/utils/cache.utils.js +7 -6
- package/build/{esnext → cjs}/utils/context-store.utils.d.ts +1 -2
- package/build/{src → cjs}/utils/context-store.utils.js +10 -9
- package/build/{esnext → cjs}/utils/crypto.utils.d.ts +0 -1
- package/build/{src → cjs}/utils/crypto.utils.js +5 -3
- package/build/{src → cjs}/utils/date.utils.d.ts +0 -1
- package/build/{src → cjs}/utils/date.utils.js +1 -2
- package/build/{src → cjs}/utils/decorators.utils.d.ts +30 -27
- package/build/{src → cjs}/utils/decorators.utils.js +169 -30
- package/build/{esnext → cjs}/utils/dir.utils.d.ts +0 -1
- package/build/{src → cjs}/utils/dir.utils.js +6 -7
- package/build/{esnext → cjs}/utils/env.utils.d.ts +0 -1
- package/build/{src → cjs}/utils/env.utils.js +5 -8
- package/build/{src → cjs}/utils/exception.utils.d.ts +0 -1
- package/build/{src → cjs}/utils/exception.utils.js +2 -1
- package/build/{src → cjs}/utils/fs.utils.d.ts +0 -1
- package/build/{src → cjs}/utils/fs.utils.js +12 -13
- package/build/{esnext → cjs}/utils/http-status-codes.d.ts +0 -1
- package/build/{src → cjs}/utils/http-status-codes.js +0 -1
- package/build/{esnext → cjs}/utils/id.utils.d.ts +0 -1
- package/build/{src → cjs}/utils/id.utils.js +0 -1
- package/build/{src → cjs}/utils/logger.utils.d.ts +0 -1
- package/build/{src → cjs}/utils/logger.utils.js +10 -6
- package/build/{esnext → cjs}/utils/middleware.utils.d.ts +0 -1
- package/build/{src → cjs}/utils/middleware.utils.js +16 -17
- package/build/{esnext → cjs}/utils/obj.utils.d.ts +0 -1
- package/build/{src → cjs}/utils/obj.utils.js +1 -2
- package/build/{src → cjs}/utils/performance.utils.d.ts +0 -1
- package/build/{src → cjs}/utils/performance.utils.js +6 -4
- package/build/{esnext → cjs}/utils/request.utils.d.ts +0 -1
- package/build/{src → cjs}/utils/request.utils.js +7 -3
- package/build/{esnext → cjs}/utils/response.utils.d.ts +0 -1
- package/build/{src → cjs}/utils/response.utils.js +42 -28
- package/build/{esnext → cjs}/utils/stream.utils.d.ts +0 -1
- package/build/{src → cjs}/utils/stream.utils.js +0 -1
- package/build/{esnext → cjs}/utils/string.utils.d.ts +0 -1
- package/build/{src → cjs}/utils/string.utils.js +0 -1
- package/build/{src → cjs}/utils/type.utils.d.ts +0 -1
- package/build/{src → cjs}/utils/type.utils.js +2 -3
- package/build/{src → cjs}/utils/url.utils.d.ts +0 -1
- package/build/{src → cjs}/utils/url.utils.js +8 -9
- package/build/{src → cjs}/utils/validate.utils.d.ts +0 -1
- package/build/{src → cjs}/utils/validate.utils.js +2 -3
- package/build/esm/config.d.ts +0 -1
- package/build/esm/config.js +6 -7
- package/build/esm/index.d.ts +0 -1
- package/build/esm/index.js +0 -1
- package/build/esm/servers/server.builder.d.ts +0 -1
- package/build/esm/servers/server.builder.js +99 -147
- package/build/esm/servers/server.d.ts +0 -1
- package/build/esm/servers/server.js +591 -876
- package/build/esm/types/api-response.d.ts +0 -1
- package/build/esm/types/api-response.js +0 -1
- package/build/esm/types/index.d.ts +0 -1
- package/build/esm/types/index.js +0 -1
- package/build/esm/types/server.d.ts +0 -1
- package/build/esm/types/server.js +0 -1
- package/build/esm/utils/array.utils.d.ts +0 -1
- package/build/esm/utils/array.utils.js +48 -86
- package/build/esm/utils/async.utils.d.ts +0 -1
- package/build/esm/utils/async.utils.js +247 -524
- package/build/esm/utils/cache.utils.d.ts +0 -1
- package/build/esm/utils/cache.utils.js +96 -301
- package/build/esm/utils/context-store.utils.d.ts +1 -2
- package/build/esm/utils/context-store.utils.js +62 -79
- package/build/esm/utils/crypto.utils.d.ts +0 -1
- package/build/esm/utils/crypto.utils.js +78 -175
- package/build/esm/utils/date.utils.d.ts +0 -1
- package/build/esm/utils/date.utils.js +47 -53
- package/build/esm/utils/decorators.utils.d.ts +30 -27
- package/build/esm/utils/decorators.utils.js +417 -461
- package/build/esm/utils/dir.utils.d.ts +0 -1
- package/build/esm/utils/dir.utils.js +264 -786
- package/build/esm/utils/env.utils.d.ts +0 -1
- package/build/esm/utils/env.utils.js +180 -271
- package/build/esm/utils/exception.utils.d.ts +0 -1
- package/build/esm/utils/exception.utils.js +112 -289
- package/build/esm/utils/fs.utils.d.ts +0 -1
- package/build/esm/utils/fs.utils.js +169 -401
- package/build/esm/utils/http-status-codes.d.ts +0 -1
- package/build/esm/utils/http-status-codes.js +0 -1
- package/build/esm/utils/id.utils.d.ts +0 -1
- package/build/esm/utils/id.utils.js +5 -9
- package/build/esm/utils/logger.utils.d.ts +0 -1
- package/build/esm/utils/logger.utils.js +34 -71
- package/build/esm/utils/middleware.utils.d.ts +0 -1
- package/build/esm/utils/middleware.utils.js +65 -155
- package/build/esm/utils/obj.utils.d.ts +0 -1
- package/build/esm/utils/obj.utils.js +69 -176
- package/build/esm/utils/performance.utils.d.ts +0 -1
- package/build/esm/utils/performance.utils.js +92 -195
- package/build/esm/utils/request.utils.d.ts +0 -1
- package/build/esm/utils/request.utils.js +41 -74
- package/build/esm/utils/response.utils.d.ts +0 -1
- package/build/esm/utils/response.utils.js +84 -107
- package/build/esm/utils/stream.utils.d.ts +0 -1
- package/build/esm/utils/stream.utils.js +38 -113
- package/build/esm/utils/string.utils.d.ts +0 -1
- package/build/esm/utils/string.utils.js +6 -11
- package/build/esm/utils/type.utils.d.ts +0 -1
- package/build/esm/utils/type.utils.js +8 -12
- package/build/esm/utils/url.utils.d.ts +0 -1
- package/build/esm/utils/url.utils.js +49 -127
- package/build/esm/utils/validate.utils.d.ts +0 -1
- package/build/esm/utils/validate.utils.js +23 -40
- package/package.json +288 -63
- package/build/esm/config.js.map +0 -1
- package/build/esm/index.js.map +0 -1
- package/build/esm/servers/server.builder.js.map +0 -1
- package/build/esm/servers/server.js.map +0 -1
- package/build/esm/types/api-response.js.map +0 -1
- package/build/esm/types/index.js.map +0 -1
- package/build/esm/types/server.js.map +0 -1
- package/build/esm/utils/array.utils.js.map +0 -1
- package/build/esm/utils/async.utils.js.map +0 -1
- package/build/esm/utils/cache.utils.js.map +0 -1
- package/build/esm/utils/context-store.utils.js.map +0 -1
- package/build/esm/utils/crypto.utils.js.map +0 -1
- package/build/esm/utils/date.utils.js.map +0 -1
- package/build/esm/utils/decorators.utils.js.map +0 -1
- package/build/esm/utils/dir.utils.js.map +0 -1
- package/build/esm/utils/env.utils.js.map +0 -1
- package/build/esm/utils/exception.utils.js.map +0 -1
- package/build/esm/utils/fs.utils.js.map +0 -1
- package/build/esm/utils/http-status-codes.js.map +0 -1
- package/build/esm/utils/id.utils.js.map +0 -1
- package/build/esm/utils/logger.utils.js.map +0 -1
- package/build/esm/utils/middleware.utils.js.map +0 -1
- package/build/esm/utils/obj.utils.js.map +0 -1
- package/build/esm/utils/performance.utils.js.map +0 -1
- package/build/esm/utils/request.utils.js.map +0 -1
- package/build/esm/utils/response.utils.js.map +0 -1
- package/build/esm/utils/stream.utils.js.map +0 -1
- package/build/esm/utils/string.utils.js.map +0 -1
- package/build/esm/utils/type.utils.js.map +0 -1
- package/build/esm/utils/url.utils.js.map +0 -1
- package/build/esm/utils/validate.utils.js.map +0 -1
- package/build/esnext/config.js +0 -133
- package/build/esnext/config.js.map +0 -1
- package/build/esnext/index.js +0 -50
- package/build/esnext/index.js.map +0 -1
- package/build/esnext/servers/server.builder.js +0 -657
- package/build/esnext/servers/server.builder.js.map +0 -1
- package/build/esnext/servers/server.d.ts +0 -256
- package/build/esnext/servers/server.js +0 -955
- package/build/esnext/servers/server.js.map +0 -1
- package/build/esnext/types/api-response.d.ts +0 -152
- package/build/esnext/types/api-response.js +0 -34
- package/build/esnext/types/api-response.js.map +0 -1
- package/build/esnext/types/index.d.ts +0 -125
- package/build/esnext/types/index.js +0 -25
- package/build/esnext/types/index.js.map +0 -1
- package/build/esnext/types/server.d.ts +0 -268
- package/build/esnext/types/server.js +0 -25
- package/build/esnext/types/server.js.map +0 -1
- package/build/esnext/utils/array.utils.d.ts +0 -168
- package/build/esnext/utils/array.utils.js +0 -345
- package/build/esnext/utils/array.utils.js.map +0 -1
- package/build/esnext/utils/async.utils.d.ts +0 -265
- package/build/esnext/utils/async.utils.js +0 -620
- package/build/esnext/utils/async.utils.js.map +0 -1
- package/build/esnext/utils/cache.utils.js +0 -293
- package/build/esnext/utils/cache.utils.js.map +0 -1
- package/build/esnext/utils/context-store.utils.js +0 -289
- package/build/esnext/utils/context-store.utils.js.map +0 -1
- package/build/esnext/utils/crypto.utils.js +0 -276
- package/build/esnext/utils/crypto.utils.js.map +0 -1
- package/build/esnext/utils/date.utils.d.ts +0 -159
- package/build/esnext/utils/date.utils.js +0 -384
- package/build/esnext/utils/date.utils.js.map +0 -1
- package/build/esnext/utils/decorators.utils.d.ts +0 -508
- package/build/esnext/utils/decorators.utils.js +0 -877
- package/build/esnext/utils/decorators.utils.js.map +0 -1
- package/build/esnext/utils/dir.utils.js +0 -477
- package/build/esnext/utils/dir.utils.js.map +0 -1
- package/build/esnext/utils/env.utils.js +0 -785
- package/build/esnext/utils/env.utils.js.map +0 -1
- package/build/esnext/utils/exception.utils.d.ts +0 -230
- package/build/esnext/utils/exception.utils.js +0 -381
- package/build/esnext/utils/exception.utils.js.map +0 -1
- package/build/esnext/utils/fs.utils.d.ts +0 -164
- package/build/esnext/utils/fs.utils.js +0 -349
- package/build/esnext/utils/fs.utils.js.map +0 -1
- package/build/esnext/utils/http-status-codes.js +0 -295
- package/build/esnext/utils/http-status-codes.js.map +0 -1
- package/build/esnext/utils/id.utils.js +0 -84
- package/build/esnext/utils/id.utils.js.map +0 -1
- package/build/esnext/utils/logger.utils.d.ts +0 -160
- package/build/esnext/utils/logger.utils.js +0 -300
- package/build/esnext/utils/logger.utils.js.map +0 -1
- package/build/esnext/utils/middleware.utils.js +0 -236
- package/build/esnext/utils/middleware.utils.js.map +0 -1
- package/build/esnext/utils/obj.utils.js +0 -413
- package/build/esnext/utils/obj.utils.js.map +0 -1
- package/build/esnext/utils/performance.utils.d.ts +0 -136
- package/build/esnext/utils/performance.utils.js +0 -271
- package/build/esnext/utils/performance.utils.js.map +0 -1
- package/build/esnext/utils/request.utils.js +0 -186
- package/build/esnext/utils/request.utils.js.map +0 -1
- package/build/esnext/utils/response.utils.js +0 -247
- package/build/esnext/utils/response.utils.js.map +0 -1
- package/build/esnext/utils/stream.utils.js +0 -210
- package/build/esnext/utils/stream.utils.js.map +0 -1
- package/build/esnext/utils/string.utils.js +0 -165
- package/build/esnext/utils/string.utils.js.map +0 -1
- package/build/esnext/utils/type.utils.d.ts +0 -90
- package/build/esnext/utils/type.utils.js +0 -187
- package/build/esnext/utils/type.utils.js.map +0 -1
- package/build/esnext/utils/url.utils.d.ts +0 -141
- package/build/esnext/utils/url.utils.js +0 -304
- package/build/esnext/utils/url.utils.js.map +0 -1
- package/build/esnext/utils/validate.utils.d.ts +0 -177
- package/build/esnext/utils/validate.utils.js +0 -320
- package/build/esnext/utils/validate.utils.js.map +0 -1
- package/build/src/config.d.ts +0 -122
- package/build/src/config.js.map +0 -1
- package/build/src/index.d.ts +0 -27
- package/build/src/index.js.map +0 -1
- package/build/src/servers/server.builder.d.ts +0 -508
- package/build/src/servers/server.builder.js.map +0 -1
- package/build/src/servers/server.js.map +0 -1
- package/build/src/types/api-response.js.map +0 -1
- package/build/src/types/index.js.map +0 -1
- package/build/src/types/server.js.map +0 -1
- package/build/src/utils/array.utils.js.map +0 -1
- package/build/src/utils/async.utils.js.map +0 -1
- package/build/src/utils/cache.utils.d.ts +0 -153
- package/build/src/utils/cache.utils.js.map +0 -1
- package/build/src/utils/context-store.utils.d.ts +0 -189
- package/build/src/utils/context-store.utils.js.map +0 -1
- package/build/src/utils/crypto.utils.d.ts +0 -160
- package/build/src/utils/crypto.utils.js.map +0 -1
- package/build/src/utils/date.utils.js.map +0 -1
- package/build/src/utils/decorators.utils.js.map +0 -1
- package/build/src/utils/dir.utils.d.ts +0 -196
- package/build/src/utils/dir.utils.js.map +0 -1
- package/build/src/utils/env.utils.d.ts +0 -377
- package/build/src/utils/env.utils.js.map +0 -1
- package/build/src/utils/exception.utils.js.map +0 -1
- package/build/src/utils/fs.utils.js.map +0 -1
- package/build/src/utils/http-status-codes.d.ts +0 -266
- package/build/src/utils/http-status-codes.js.map +0 -1
- package/build/src/utils/id.utils.d.ts +0 -36
- package/build/src/utils/id.utils.js.map +0 -1
- package/build/src/utils/logger.utils.js.map +0 -1
- package/build/src/utils/middleware.utils.d.ts +0 -100
- package/build/src/utils/middleware.utils.js.map +0 -1
- package/build/src/utils/obj.utils.d.ts +0 -124
- package/build/src/utils/obj.utils.js.map +0 -1
- package/build/src/utils/performance.utils.js.map +0 -1
- package/build/src/utils/request.utils.d.ts +0 -86
- package/build/src/utils/request.utils.js.map +0 -1
- package/build/src/utils/response.utils.d.ts +0 -163
- package/build/src/utils/response.utils.js.map +0 -1
- package/build/src/utils/stream.utils.d.ts +0 -88
- package/build/src/utils/stream.utils.js.map +0 -1
- package/build/src/utils/string.utils.d.ts +0 -93
- package/build/src/utils/string.utils.js.map +0 -1
- package/build/src/utils/type.utils.js.map +0 -1
- package/build/src/utils/url.utils.js.map +0 -1
- 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
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
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
|
-
|
|
132
|
-
|
|
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
|
|
62
|
+
logger.trace({ timing }, message);
|
|
136
63
|
break;
|
|
137
64
|
case 'debug':
|
|
138
|
-
logger.debug({ timing
|
|
65
|
+
logger.debug({ timing }, message);
|
|
139
66
|
break;
|
|
140
67
|
case 'info':
|
|
141
|
-
logger.info({ timing
|
|
68
|
+
logger.info({ timing }, message);
|
|
142
69
|
break;
|
|
143
70
|
case 'warn':
|
|
144
|
-
logger.warn({ timing
|
|
71
|
+
logger.warn({ timing }, message);
|
|
145
72
|
break;
|
|
146
73
|
case 'error':
|
|
147
|
-
logger.error({ timing
|
|
74
|
+
logger.error({ timing }, message);
|
|
148
75
|
break;
|
|
149
76
|
default:
|
|
150
|
-
logger.debug({ timing
|
|
77
|
+
logger.debug({ timing }, message);
|
|
151
78
|
break;
|
|
152
79
|
}
|
|
153
80
|
}
|
|
154
|
-
return { result
|
|
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(
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
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
|
-
|
|
245
|
-
|
|
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
|
|
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
|
|
169
|
+
actualDescriptor = descriptor ?? Object.getOwnPropertyDescriptor(target, propertyKey);
|
|
255
170
|
}
|
|
256
|
-
|
|
257
|
-
actualDescriptor.value = function () {
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
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(
|
|
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(
|
|
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
|
-
|
|
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
|
-
|
|
216
|
+
const cache = new TTLCache({
|
|
314
217
|
ttlMs: ttl,
|
|
315
218
|
maxSize: maxSize,
|
|
316
219
|
autoCleanupMs: autoCleanupMs
|
|
317
220
|
});
|
|
318
|
-
return function () {
|
|
319
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
350
|
-
|
|
351
|
-
|
|
247
|
+
const beforeMemory = process.memoryUsage();
|
|
248
|
+
const result = fn();
|
|
249
|
+
const afterMemory = process.memoryUsage();
|
|
352
250
|
// Calculate differences
|
|
353
|
-
|
|
354
|
-
for (
|
|
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
|
|
259
|
+
label,
|
|
362
260
|
memoryBefore: beforeMemory,
|
|
363
261
|
memoryAfter: afterMemory,
|
|
364
262
|
memoryDiff: diff
|
|
365
|
-
},
|
|
263
|
+
}, `Memory usage for ${label}`);
|
|
366
264
|
}
|
|
367
265
|
return {
|
|
368
|
-
result
|
|
266
|
+
result,
|
|
369
267
|
memoryUsage: {
|
|
370
268
|
before: beforeMemory,
|
|
371
269
|
after: afterMemory,
|
|
372
|
-
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
|
|
54
|
-
|
|
31
|
+
export const getPaginationParams = (req) => {
|
|
32
|
+
const query = req.query;
|
|
55
33
|
// Extract page & limit
|
|
56
|
-
|
|
57
|
-
|
|
34
|
+
const { page, limit } = extractPaginationParams(query, 1, 20, 100);
|
|
35
|
+
const { sortBy, sortOrder } = extractSortParams(query, []);
|
|
58
36
|
// Optional search param
|
|
59
|
-
|
|
60
|
-
return
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
146
|
-
|
|
125
|
+
const pageParam = typeof query.page === 'string' ? query.page : undefined;
|
|
126
|
+
const pageResult = parseNumberParam(pageParam, { defaultValue: defaultPage });
|
|
147
127
|
// Parse limit parameter
|
|
148
|
-
|
|
149
|
-
|
|
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
|
-
|
|
152
|
-
|
|
153
|
-
return { page
|
|
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
|
-
|
|
165
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
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
|