@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.
- package/README.md +25 -1
- 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 +0 -1
- 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 +201 -5
- package/build/esm/utils/decorators.utils.js +632 -285
- 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 +3 -33
- 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.d.ts +0 -122
- package/build/esnext/config.js +0 -133
- package/build/esnext/config.js.map +0 -1
- package/build/esnext/index.d.ts +0 -27
- package/build/esnext/index.js +0 -50
- package/build/esnext/index.js.map +0 -1
- package/build/esnext/servers/server.builder.d.ts +0 -508
- 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.d.ts +0 -153
- 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.d.ts +0 -189
- 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.d.ts +0 -160
- 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 -315
- package/build/esnext/utils/decorators.utils.js +0 -504
- package/build/esnext/utils/decorators.utils.js.map +0 -1
- package/build/esnext/utils/dir.utils.d.ts +0 -196
- 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.d.ts +0 -377
- 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.d.ts +0 -266
- 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.d.ts +0 -36
- 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.d.ts +0 -100
- 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.d.ts +0 -124
- 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.d.ts +0 -86
- 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.d.ts +0 -163
- 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.d.ts +0 -88
- 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.d.ts +0 -93
- 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 +0 -138
- package/build/src/config.js.map +0 -1
- package/build/src/index.d.ts +0 -27
- package/build/src/index.js +0 -69
- 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 +0 -661
- package/build/src/servers/server.builder.js.map +0 -1
- package/build/src/servers/server.d.ts +0 -256
- package/build/src/servers/server.js +0 -962
- package/build/src/servers/server.js.map +0 -1
- package/build/src/types/api-response.d.ts +0 -152
- package/build/src/types/api-response.js +0 -37
- package/build/src/types/api-response.js.map +0 -1
- package/build/src/types/index.d.ts +0 -125
- package/build/src/types/index.js +0 -26
- package/build/src/types/index.js.map +0 -1
- package/build/src/types/server.d.ts +0 -268
- package/build/src/types/server.js +0 -26
- package/build/src/types/server.js.map +0 -1
- package/build/src/utils/array.utils.d.ts +0 -168
- package/build/src/utils/array.utils.js +0 -364
- package/build/src/utils/array.utils.js.map +0 -1
- package/build/src/utils/async.utils.d.ts +0 -265
- package/build/src/utils/async.utils.js +0 -641
- 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 +0 -297
- 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 +0 -296
- 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 +0 -293
- package/build/src/utils/crypto.utils.js.map +0 -1
- package/build/src/utils/date.utils.d.ts +0 -159
- package/build/src/utils/date.utils.js +0 -396
- package/build/src/utils/date.utils.js.map +0 -1
- package/build/src/utils/decorators.utils.d.ts +0 -315
- package/build/src/utils/decorators.utils.js +0 -516
- 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 +0 -501
- 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 +0 -789
- package/build/src/utils/env.utils.js.map +0 -1
- package/build/src/utils/exception.utils.d.ts +0 -230
- package/build/src/utils/exception.utils.js +0 -407
- package/build/src/utils/exception.utils.js.map +0 -1
- package/build/src/utils/fs.utils.d.ts +0 -164
- package/build/src/utils/fs.utils.js +0 -372
- 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 +0 -298
- 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 +0 -91
- package/build/src/utils/id.utils.js.map +0 -1
- package/build/src/utils/logger.utils.d.ts +0 -160
- package/build/src/utils/logger.utils.js +0 -346
- 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 +0 -244
- 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 +0 -429
- package/build/src/utils/obj.utils.js.map +0 -1
- package/build/src/utils/performance.utils.d.ts +0 -136
- package/build/src/utils/performance.utils.js +0 -278
- 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 +0 -195
- 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 +0 -260
- 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 +0 -218
- 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 +0 -179
- package/build/src/utils/string.utils.js.map +0 -1
- package/build/src/utils/type.utils.d.ts +0 -90
- package/build/src/utils/type.utils.js +0 -196
- package/build/src/utils/type.utils.js.map +0 -1
- package/build/src/utils/url.utils.d.ts +0 -141
- package/build/src/utils/url.utils.js +0 -317
- package/build/src/utils/url.utils.js.map +0 -1
- package/build/src/utils/validate.utils.d.ts +0 -177
- package/build/src/utils/validate.utils.js +0 -345
- package/build/src/utils/validate.utils.js.map +0 -1
|
@@ -21,23 +21,12 @@
|
|
|
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
24
|
import { AsyncLocalStorage } from 'async_hooks';
|
|
36
25
|
/**
|
|
37
26
|
* Predefined symbols used as keys in AsyncLocalStorage.
|
|
38
27
|
* Add new symbols here to avoid duplication.
|
|
39
28
|
*/
|
|
40
|
-
export
|
|
29
|
+
export const StoreKeys = {
|
|
41
30
|
LOGGER: Symbol('LOGGER'),
|
|
42
31
|
REQUEST_ID: Symbol('REQUEST_ID'),
|
|
43
32
|
USER: Symbol('USER'),
|
|
@@ -81,17 +70,20 @@ export function getFromContext(key) {
|
|
|
81
70
|
* });
|
|
82
71
|
* ```
|
|
83
72
|
*/
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
73
|
+
export class ContextStore {
|
|
74
|
+
/**
|
|
75
|
+
* The underlying AsyncLocalStorage instance for context.
|
|
76
|
+
* @private
|
|
77
|
+
*/
|
|
78
|
+
static storage = new AsyncLocalStorage();
|
|
87
79
|
/**
|
|
88
80
|
* Returns the raw AsyncLocalStorage instance for advanced access.
|
|
89
81
|
*
|
|
90
82
|
* @returns {AsyncLocalStorage<Store>} The AsyncLocalStorage instance.
|
|
91
83
|
*/
|
|
92
|
-
|
|
84
|
+
static getInstance() {
|
|
93
85
|
return this.storage;
|
|
94
|
-
}
|
|
86
|
+
}
|
|
95
87
|
/**
|
|
96
88
|
* Retrieves a value from the async context store by symbol key.
|
|
97
89
|
*
|
|
@@ -99,10 +91,10 @@ var ContextStore = /** @class */ (function () {
|
|
|
99
91
|
* @param {symbol} key - Unique symbol used as the store key.
|
|
100
92
|
* @returns {T | undefined} The value found (typed) or undefined if not present.
|
|
101
93
|
*/
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
return store
|
|
105
|
-
}
|
|
94
|
+
static get(key) {
|
|
95
|
+
const store = this.storage.getStore();
|
|
96
|
+
return store?.[key];
|
|
97
|
+
}
|
|
106
98
|
/**
|
|
107
99
|
* Sets a value in the current context store by symbol key.
|
|
108
100
|
*
|
|
@@ -111,21 +103,21 @@ var ContextStore = /** @class */ (function () {
|
|
|
111
103
|
* @param {T} value - Value to set in context.
|
|
112
104
|
* @throws {Error} If called outside an active context (not within a .run call or in the wrong async boundaries).
|
|
113
105
|
*/
|
|
114
|
-
|
|
115
|
-
|
|
106
|
+
static set(key, value) {
|
|
107
|
+
const store = this.storage.getStore();
|
|
116
108
|
if (!store) {
|
|
117
|
-
throw new Error(
|
|
109
|
+
throw new Error(`Failed to set ${String(key)}: AsyncLocalStorage store is not initialized.`);
|
|
118
110
|
}
|
|
119
111
|
store[key] = value;
|
|
120
|
-
}
|
|
112
|
+
}
|
|
121
113
|
/**
|
|
122
114
|
* Retrieves the entire context store object for the current async context.
|
|
123
115
|
*
|
|
124
116
|
* @returns {Store | undefined} The current store object or undefined if called outside a context.
|
|
125
117
|
*/
|
|
126
|
-
|
|
118
|
+
static getAll() {
|
|
127
119
|
return this.storage.getStore();
|
|
128
|
-
}
|
|
120
|
+
}
|
|
129
121
|
/**
|
|
130
122
|
* Initializes a new async context and executes a callback within it.
|
|
131
123
|
* This must be called at the beginning of a request or logical async flow.
|
|
@@ -135,19 +127,19 @@ var ContextStore = /** @class */ (function () {
|
|
|
135
127
|
* @param {() => T} callback - The function to run within the new context.
|
|
136
128
|
* @returns {T} The result of the callback function.
|
|
137
129
|
*/
|
|
138
|
-
|
|
130
|
+
static run(store, callback) {
|
|
139
131
|
return this.storage.run(store, callback);
|
|
140
|
-
}
|
|
132
|
+
}
|
|
141
133
|
/**
|
|
142
134
|
* Checks if a key exists in the current context store.
|
|
143
135
|
*
|
|
144
136
|
* @param {symbol} key - The symbol key to check.
|
|
145
137
|
* @returns {boolean} True if the key exists, false otherwise.
|
|
146
138
|
*/
|
|
147
|
-
|
|
148
|
-
|
|
139
|
+
static has(key) {
|
|
140
|
+
const store = this.storage.getStore();
|
|
149
141
|
return store !== undefined && key in store;
|
|
150
|
-
}
|
|
142
|
+
}
|
|
151
143
|
/**
|
|
152
144
|
* Removes a value from the current context store by symbol key.
|
|
153
145
|
*
|
|
@@ -155,28 +147,28 @@ var ContextStore = /** @class */ (function () {
|
|
|
155
147
|
* @returns {boolean} True if the key was deleted, false if the key wasn't found or no active context.
|
|
156
148
|
* @throws {Error} If called outside an active context.
|
|
157
149
|
*/
|
|
158
|
-
|
|
159
|
-
|
|
150
|
+
static delete(key) {
|
|
151
|
+
const store = this.storage.getStore();
|
|
160
152
|
if (!store) {
|
|
161
|
-
throw new Error(
|
|
153
|
+
throw new Error(`Failed to delete ${String(key)}: AsyncLocalStorage store is not initialized.`);
|
|
162
154
|
}
|
|
163
155
|
return delete store[key];
|
|
164
|
-
}
|
|
156
|
+
}
|
|
165
157
|
/**
|
|
166
158
|
* Updates multiple values in the current context store at once.
|
|
167
159
|
*
|
|
168
160
|
* @param {Partial<Record<symbol, unknown>>} values - Object containing symbol keys and values to update.
|
|
169
161
|
* @throws {Error} If called outside an active context.
|
|
170
162
|
*/
|
|
171
|
-
|
|
172
|
-
|
|
163
|
+
static patch(values) {
|
|
164
|
+
const store = this.storage.getStore();
|
|
173
165
|
if (!store) {
|
|
174
166
|
throw new Error('Failed to patch: AsyncLocalStorage store is not initialized.');
|
|
175
167
|
}
|
|
176
|
-
Object.getOwnPropertySymbols(values).forEach(
|
|
168
|
+
Object.getOwnPropertySymbols(values).forEach(key => {
|
|
177
169
|
store[key] = values[key];
|
|
178
170
|
});
|
|
179
|
-
}
|
|
171
|
+
}
|
|
180
172
|
/**
|
|
181
173
|
* Executes a callback with a temporary store value that only exists during execution.
|
|
182
174
|
* Original store is restored after callback completes.
|
|
@@ -188,14 +180,14 @@ var ContextStore = /** @class */ (function () {
|
|
|
188
180
|
* @returns {T} The result of the callback function.
|
|
189
181
|
* @throws {Error} If called outside an active context.
|
|
190
182
|
*/
|
|
191
|
-
|
|
192
|
-
|
|
183
|
+
static withValue(key, value, callback) {
|
|
184
|
+
const store = this.storage.getStore();
|
|
193
185
|
if (!store) {
|
|
194
|
-
throw new Error(
|
|
186
|
+
throw new Error(`Failed to set temporary value: AsyncLocalStorage store is not initialized.`);
|
|
195
187
|
}
|
|
196
188
|
// Save original value
|
|
197
|
-
|
|
198
|
-
|
|
189
|
+
const hasOriginal = key in store;
|
|
190
|
+
const originalValue = store[key];
|
|
199
191
|
// Set temporary value
|
|
200
192
|
store[key] = value;
|
|
201
193
|
try {
|
|
@@ -211,7 +203,7 @@ var ContextStore = /** @class */ (function () {
|
|
|
211
203
|
delete store[key];
|
|
212
204
|
}
|
|
213
205
|
}
|
|
214
|
-
}
|
|
206
|
+
}
|
|
215
207
|
/**
|
|
216
208
|
* Creates a new context that inherits values from the current context.
|
|
217
209
|
*
|
|
@@ -220,51 +212,45 @@ var ContextStore = /** @class */ (function () {
|
|
|
220
212
|
* @param {() => T} callback - The function to execute in the new context.
|
|
221
213
|
* @returns {T} The result of the callback function.
|
|
222
214
|
*/
|
|
223
|
-
|
|
224
|
-
|
|
215
|
+
static extend(newValues, callback) {
|
|
216
|
+
const currentStore = this.storage.getStore() || {};
|
|
225
217
|
// Create new store with current values plus new ones
|
|
226
|
-
|
|
218
|
+
const newStore = { ...currentStore };
|
|
227
219
|
// Add new values
|
|
228
|
-
Object.getOwnPropertySymbols(newValues).forEach(
|
|
220
|
+
Object.getOwnPropertySymbols(newValues).forEach(key => {
|
|
229
221
|
newStore[key] = newValues[key];
|
|
230
222
|
});
|
|
231
223
|
// Run with extended store
|
|
232
224
|
return this.storage.run(newStore, callback);
|
|
233
|
-
}
|
|
225
|
+
}
|
|
234
226
|
/**
|
|
235
227
|
* Creates Express middleware that initializes a context for each request.
|
|
236
228
|
*
|
|
237
229
|
* @param {(req: any) => Partial<Record<symbol, unknown>>} initialValuesFactory - Function that returns initial context values.
|
|
238
230
|
* @returns Express middleware function.
|
|
239
231
|
*/
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
var initialValues = initialValuesFactory(req);
|
|
232
|
+
static createExpressMiddleware(initialValuesFactory = () => ({})) {
|
|
233
|
+
return (req, res, next) => {
|
|
234
|
+
const initialValues = initialValuesFactory(req);
|
|
244
235
|
ContextStore.run(initialValues, next);
|
|
245
236
|
};
|
|
246
|
-
}
|
|
247
|
-
|
|
248
|
-
* The underlying AsyncLocalStorage instance for context.
|
|
249
|
-
* @private
|
|
250
|
-
*/
|
|
251
|
-
ContextStore.storage = new AsyncLocalStorage();
|
|
252
|
-
return ContextStore;
|
|
253
|
-
}());
|
|
254
|
-
export { ContextStore };
|
|
237
|
+
}
|
|
238
|
+
}
|
|
255
239
|
/**
|
|
256
240
|
* Type-safe wrapper for accessing and modifying context values with specific types.
|
|
257
241
|
*
|
|
258
242
|
* @typeParam T - The value type.
|
|
259
243
|
*/
|
|
260
|
-
|
|
244
|
+
export class TypedContextKey {
|
|
245
|
+
symbol;
|
|
246
|
+
defaultValue;
|
|
261
247
|
/**
|
|
262
248
|
* Creates a new typed context key.
|
|
263
249
|
*
|
|
264
250
|
* @param symbol - The unique symbol for this key
|
|
265
251
|
* @param defaultValue - Optional default value if key is not found
|
|
266
252
|
*/
|
|
267
|
-
|
|
253
|
+
constructor(symbol, defaultValue) {
|
|
268
254
|
this.symbol = symbol;
|
|
269
255
|
this.defaultValue = defaultValue;
|
|
270
256
|
}
|
|
@@ -273,35 +259,32 @@ var TypedContextKey = /** @class */ (function () {
|
|
|
273
259
|
*
|
|
274
260
|
* @returns The value or defaultValue if not found
|
|
275
261
|
*/
|
|
276
|
-
|
|
277
|
-
|
|
262
|
+
get() {
|
|
263
|
+
const value = ContextStore.get(this.symbol);
|
|
278
264
|
return value !== undefined ? value : this.defaultValue;
|
|
279
|
-
}
|
|
265
|
+
}
|
|
280
266
|
/**
|
|
281
267
|
* Sets the value for this key.
|
|
282
268
|
*
|
|
283
269
|
* @param value The value to set
|
|
284
270
|
*/
|
|
285
|
-
|
|
271
|
+
set(value) {
|
|
286
272
|
ContextStore.set(this.symbol, value);
|
|
287
|
-
}
|
|
273
|
+
}
|
|
288
274
|
/**
|
|
289
275
|
* Checks if this key exists in the context.
|
|
290
276
|
*
|
|
291
277
|
* @returns True if the key exists
|
|
292
278
|
*/
|
|
293
|
-
|
|
279
|
+
exists() {
|
|
294
280
|
return ContextStore.has(this.symbol);
|
|
295
|
-
}
|
|
281
|
+
}
|
|
296
282
|
/**
|
|
297
283
|
* Deletes this key from the context.
|
|
298
284
|
*
|
|
299
285
|
* @returns True if the key was deleted
|
|
300
286
|
*/
|
|
301
|
-
|
|
287
|
+
delete() {
|
|
302
288
|
return ContextStore.delete(this.symbol);
|
|
303
|
-
}
|
|
304
|
-
|
|
305
|
-
}());
|
|
306
|
-
export { TypedContextKey };
|
|
307
|
-
//# sourceMappingURL=context-store.utils.js.map
|
|
289
|
+
}
|
|
290
|
+
}
|
|
@@ -157,4 +157,3 @@ export declare function createSignedToken(payload: Record<string, any>, secret:
|
|
|
157
157
|
* @returns {object | null} Decoded payload if valid, null if invalid
|
|
158
158
|
*/
|
|
159
159
|
export declare function verifySignedToken(token: string, secret: string): Record<string, any> | null;
|
|
160
|
-
//# sourceMappingURL=crypto.utils.d.ts.map
|