@xylabs/forget 4.13.21 → 4.13.22
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 +2 -423
- package/dist/neutral/index.d.ts +2 -0
- package/dist/neutral/index.d.ts.map +1 -0
- package/dist/neutral/index.mjs +42 -11
- package/dist/neutral/index.mjs.map +1 -1
- package/dist/node/index.d.ts +2 -0
- package/dist/node/index.d.ts.map +1 -0
- package/package.json +8 -8
- package/src/index.ts +1 -0
package/README.md
CHANGED
|
@@ -15,430 +15,9 @@
|
|
|
15
15
|
|
|
16
16
|
Base functionality used throughout XY Labs TypeScript/JavaScript libraries
|
|
17
17
|
|
|
18
|
-
##
|
|
19
|
-
|
|
20
|
-
**@xylabs/forget**
|
|
21
|
-
|
|
22
|
-
***
|
|
23
|
-
|
|
24
|
-
## Classes
|
|
25
|
-
|
|
26
|
-
- [ForgetPromise](#classes/ForgetPromise)
|
|
27
|
-
|
|
28
|
-
## Interfaces
|
|
29
|
-
|
|
30
|
-
- [ForgetNodeConfig](#interfaces/ForgetNodeConfig)
|
|
31
|
-
|
|
32
|
-
## Variables
|
|
33
|
-
|
|
34
|
-
- [defaultForgetNodeConfig](#variables/defaultForgetNodeConfig)
|
|
35
|
-
|
|
36
|
-
## Functions
|
|
37
|
-
|
|
38
|
-
- [forget](#functions/forget)
|
|
39
|
-
|
|
40
|
-
### classes
|
|
41
|
-
|
|
42
|
-
### <a id="ForgetPromise"></a>ForgetPromise
|
|
43
|
-
|
|
44
|
-
[**@xylabs/forget**](#../README)
|
|
45
|
-
|
|
46
|
-
***
|
|
47
|
-
|
|
48
|
-
## Extends
|
|
49
|
-
|
|
50
|
-
- `ForgetPromise`
|
|
51
|
-
|
|
52
|
-
## Constructors
|
|
53
|
-
|
|
54
|
-
### Constructor
|
|
55
|
-
|
|
56
|
-
```ts
|
|
57
|
-
new ForgetPromise(): ForgetPromiseNode;
|
|
58
|
-
```
|
|
59
|
-
|
|
60
|
-
### Returns
|
|
61
|
-
|
|
62
|
-
`ForgetPromiseNode`
|
|
63
|
-
|
|
64
|
-
### Inherited from
|
|
65
|
-
|
|
66
|
-
```ts
|
|
67
|
-
ForgetPromise.constructor
|
|
68
|
-
```
|
|
69
|
-
|
|
70
|
-
## Properties
|
|
71
|
-
|
|
72
|
-
### activeForgets
|
|
73
|
-
|
|
74
|
-
```ts
|
|
75
|
-
static activeForgets: number = 0;
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
### Inherited from
|
|
79
|
-
|
|
80
|
-
```ts
|
|
81
|
-
ForgetPromise.activeForgets
|
|
82
|
-
```
|
|
83
|
-
|
|
84
|
-
***
|
|
85
|
-
|
|
86
|
-
### exceptedForgets
|
|
87
|
-
|
|
88
|
-
```ts
|
|
89
|
-
static exceptedForgets: number = 0;
|
|
90
|
-
```
|
|
91
|
-
|
|
92
|
-
### Inherited from
|
|
93
|
-
|
|
94
|
-
```ts
|
|
95
|
-
ForgetPromise.exceptedForgets
|
|
96
|
-
```
|
|
97
|
-
|
|
98
|
-
***
|
|
99
|
-
|
|
100
|
-
### logger
|
|
101
|
-
|
|
102
|
-
```ts
|
|
103
|
-
static logger: Logger = console;
|
|
104
|
-
```
|
|
105
|
-
|
|
106
|
-
### Inherited from
|
|
107
|
-
|
|
108
|
-
```ts
|
|
109
|
-
ForgetPromise.logger
|
|
110
|
-
```
|
|
111
|
-
|
|
112
|
-
## Accessors
|
|
113
|
-
|
|
114
|
-
### active
|
|
115
|
-
|
|
116
|
-
### Get Signature
|
|
117
|
-
|
|
118
|
-
```ts
|
|
119
|
-
get static active(): boolean;
|
|
120
|
-
```
|
|
121
|
-
|
|
122
|
-
#### Returns
|
|
123
|
-
|
|
124
|
-
`boolean`
|
|
125
|
-
|
|
126
|
-
### Inherited from
|
|
127
|
-
|
|
128
|
-
```ts
|
|
129
|
-
ForgetPromise.active
|
|
130
|
-
```
|
|
131
|
-
|
|
132
|
-
## Methods
|
|
133
|
-
|
|
134
|
-
### awaitInactive()
|
|
135
|
-
|
|
136
|
-
```ts
|
|
137
|
-
static awaitInactive(interval, timeout?): Promise<number>;
|
|
138
|
-
```
|
|
139
|
-
|
|
140
|
-
### Parameters
|
|
141
|
-
|
|
142
|
-
#### interval
|
|
143
|
-
|
|
144
|
-
`number` = `100`
|
|
145
|
-
|
|
146
|
-
#### timeout?
|
|
147
|
-
|
|
148
|
-
`number`
|
|
149
|
-
|
|
150
|
-
### Returns
|
|
151
|
-
|
|
152
|
-
`Promise`\<`number`\>
|
|
153
|
-
|
|
154
|
-
### Inherited from
|
|
155
|
-
|
|
156
|
-
```ts
|
|
157
|
-
ForgetPromise.awaitInactive
|
|
158
|
-
```
|
|
159
|
-
|
|
160
|
-
***
|
|
161
|
-
|
|
162
|
-
### exceptionHandler()
|
|
163
|
-
|
|
164
|
-
```ts
|
|
165
|
-
static exceptionHandler(
|
|
166
|
-
error,
|
|
167
|
-
config,
|
|
168
|
-
externalStackTrace?): void;
|
|
169
|
-
```
|
|
170
|
-
|
|
171
|
-
### Parameters
|
|
172
|
-
|
|
173
|
-
#### error
|
|
174
|
-
|
|
175
|
-
`Error`
|
|
176
|
-
|
|
177
|
-
#### config
|
|
178
|
-
|
|
179
|
-
[`ForgetNodeConfig`](#../interfaces/ForgetNodeConfig)
|
|
180
|
-
|
|
181
|
-
#### externalStackTrace?
|
|
182
|
-
|
|
183
|
-
`string`
|
|
184
|
-
|
|
185
|
-
### Returns
|
|
186
|
-
|
|
187
|
-
`void`
|
|
188
|
-
|
|
189
|
-
### Overrides
|
|
190
|
-
|
|
191
|
-
```ts
|
|
192
|
-
ForgetPromise.exceptionHandler
|
|
193
|
-
```
|
|
194
|
-
|
|
195
|
-
***
|
|
196
|
-
|
|
197
|
-
### forget()
|
|
198
|
-
|
|
199
|
-
```ts
|
|
200
|
-
static forget<T>(promise, config?): void;
|
|
201
|
-
```
|
|
202
|
-
|
|
203
|
-
Used to explicitly launch an async function (or Promise) with awaiting it
|
|
204
|
-
|
|
205
|
-
### Type Parameters
|
|
206
|
-
|
|
207
|
-
#### T
|
|
208
|
-
|
|
209
|
-
`T`
|
|
210
|
-
|
|
211
|
-
### Parameters
|
|
212
|
-
|
|
213
|
-
#### promise
|
|
214
|
-
|
|
215
|
-
`Promisable`\<`T`\>
|
|
216
|
-
|
|
217
|
-
The promise to forget
|
|
218
|
-
|
|
219
|
-
#### config?
|
|
220
|
-
|
|
221
|
-
[`ForgetNodeConfig`](#../interfaces/ForgetNodeConfig)\<`T`\>
|
|
222
|
-
|
|
223
|
-
Configuration of forget settings
|
|
224
|
-
|
|
225
|
-
### Returns
|
|
226
|
-
|
|
227
|
-
`void`
|
|
228
|
-
|
|
229
|
-
### Overrides
|
|
230
|
-
|
|
231
|
-
```ts
|
|
232
|
-
ForgetPromise.forget
|
|
233
|
-
```
|
|
234
|
-
|
|
235
|
-
***
|
|
236
|
-
|
|
237
|
-
### timeoutHandler()
|
|
238
|
-
|
|
239
|
-
```ts
|
|
240
|
-
static timeoutHandler(
|
|
241
|
-
time,
|
|
242
|
-
config,
|
|
243
|
-
externalStackTrace?): void;
|
|
244
|
-
```
|
|
245
|
-
|
|
246
|
-
### Parameters
|
|
247
|
-
|
|
248
|
-
#### time
|
|
249
|
-
|
|
250
|
-
`number`
|
|
251
|
-
|
|
252
|
-
#### config
|
|
253
|
-
|
|
254
|
-
[`ForgetNodeConfig`](#../interfaces/ForgetNodeConfig)
|
|
255
|
-
|
|
256
|
-
#### externalStackTrace?
|
|
257
|
-
|
|
258
|
-
`string`
|
|
259
|
-
|
|
260
|
-
### Returns
|
|
261
|
-
|
|
262
|
-
`void`
|
|
263
|
-
|
|
264
|
-
### Overrides
|
|
265
|
-
|
|
266
|
-
```ts
|
|
267
|
-
ForgetPromise.timeoutHandler
|
|
268
|
-
```
|
|
269
|
-
|
|
270
|
-
### functions
|
|
271
|
-
|
|
272
|
-
### <a id="forget"></a>forget
|
|
273
|
-
|
|
274
|
-
[**@xylabs/forget**](#../README)
|
|
275
|
-
|
|
276
|
-
***
|
|
277
|
-
|
|
278
|
-
```ts
|
|
279
|
-
function forget<T>(promise, config?): void;
|
|
280
|
-
```
|
|
281
|
-
|
|
282
|
-
## Type Parameters
|
|
283
|
-
|
|
284
|
-
### T
|
|
285
|
-
|
|
286
|
-
`T`
|
|
287
|
-
|
|
288
|
-
## Parameters
|
|
289
|
-
|
|
290
|
-
### promise
|
|
291
|
-
|
|
292
|
-
`Promisable`\<`T`\>
|
|
293
|
-
|
|
294
|
-
### config?
|
|
295
|
-
|
|
296
|
-
[`ForgetNodeConfig`](#../interfaces/ForgetNodeConfig)\<`T`\>
|
|
297
|
-
|
|
298
|
-
## Returns
|
|
299
|
-
|
|
300
|
-
`void`
|
|
301
|
-
|
|
302
|
-
### interfaces
|
|
303
|
-
|
|
304
|
-
### <a id="ForgetNodeConfig"></a>ForgetNodeConfig
|
|
305
|
-
|
|
306
|
-
[**@xylabs/forget**](#../README)
|
|
307
|
-
|
|
308
|
-
***
|
|
309
|
-
|
|
310
|
-
## Extends
|
|
311
|
-
|
|
312
|
-
- `ForgetConfig`\<`T`\>
|
|
313
|
-
|
|
314
|
-
## Type Parameters
|
|
315
|
-
|
|
316
|
-
### T
|
|
317
|
-
|
|
318
|
-
`T` = `any`
|
|
319
|
-
|
|
320
|
-
## Properties
|
|
321
|
-
|
|
322
|
-
### name?
|
|
323
|
-
|
|
324
|
-
```ts
|
|
325
|
-
optional name: string;
|
|
326
|
-
```
|
|
327
|
-
|
|
328
|
-
### Inherited from
|
|
329
|
-
|
|
330
|
-
```ts
|
|
331
|
-
ForgetConfig.name
|
|
332
|
-
```
|
|
333
|
-
|
|
334
|
-
***
|
|
335
|
-
|
|
336
|
-
### onCancel()?
|
|
337
|
-
|
|
338
|
-
```ts
|
|
339
|
-
optional onCancel: () => void;
|
|
340
|
-
```
|
|
341
|
-
|
|
342
|
-
### Returns
|
|
343
|
-
|
|
344
|
-
`void`
|
|
345
|
-
|
|
346
|
-
### Inherited from
|
|
347
|
-
|
|
348
|
-
```ts
|
|
349
|
-
ForgetConfig.onCancel
|
|
350
|
-
```
|
|
351
|
-
|
|
352
|
-
***
|
|
353
|
-
|
|
354
|
-
### onComplete()?
|
|
355
|
-
|
|
356
|
-
```ts
|
|
357
|
-
optional onComplete: (result) => void;
|
|
358
|
-
```
|
|
359
|
-
|
|
360
|
-
### Parameters
|
|
361
|
-
|
|
362
|
-
#### result
|
|
363
|
-
|
|
364
|
-
\[`undefined` \| `T`, `undefined` \| `Error`\]
|
|
365
|
-
|
|
366
|
-
### Returns
|
|
367
|
-
|
|
368
|
-
`void`
|
|
369
|
-
|
|
370
|
-
### Inherited from
|
|
371
|
-
|
|
372
|
-
```ts
|
|
373
|
-
ForgetConfig.onComplete
|
|
374
|
-
```
|
|
375
|
-
|
|
376
|
-
***
|
|
377
|
-
|
|
378
|
-
### onException()?
|
|
379
|
-
|
|
380
|
-
```ts
|
|
381
|
-
optional onException: (error) => void;
|
|
382
|
-
```
|
|
383
|
-
|
|
384
|
-
### Parameters
|
|
385
|
-
|
|
386
|
-
#### error
|
|
387
|
-
|
|
388
|
-
`Error`
|
|
389
|
-
|
|
390
|
-
### Returns
|
|
391
|
-
|
|
392
|
-
`void`
|
|
393
|
-
|
|
394
|
-
### Inherited from
|
|
395
|
-
|
|
396
|
-
```ts
|
|
397
|
-
ForgetConfig.onException
|
|
398
|
-
```
|
|
399
|
-
|
|
400
|
-
***
|
|
401
|
-
|
|
402
|
-
### timeout?
|
|
403
|
-
|
|
404
|
-
```ts
|
|
405
|
-
optional timeout: number;
|
|
406
|
-
```
|
|
407
|
-
|
|
408
|
-
### Inherited from
|
|
409
|
-
|
|
410
|
-
```ts
|
|
411
|
-
ForgetConfig.timeout
|
|
412
|
-
```
|
|
413
|
-
|
|
414
|
-
***
|
|
415
|
-
|
|
416
|
-
### terminateOnException?
|
|
417
|
-
|
|
418
|
-
```ts
|
|
419
|
-
optional terminateOnException: boolean;
|
|
420
|
-
```
|
|
421
|
-
|
|
422
|
-
***
|
|
423
|
-
|
|
424
|
-
### terminateOnTimeout?
|
|
425
|
-
|
|
426
|
-
```ts
|
|
427
|
-
optional terminateOnTimeout: boolean;
|
|
428
|
-
```
|
|
429
|
-
|
|
430
|
-
### variables
|
|
431
|
-
|
|
432
|
-
### <a id="defaultForgetNodeConfig"></a>defaultForgetNodeConfig
|
|
433
|
-
|
|
434
|
-
[**@xylabs/forget**](#../README)
|
|
435
|
-
|
|
436
|
-
***
|
|
437
|
-
|
|
438
|
-
```ts
|
|
439
|
-
const defaultForgetNodeConfig: ForgetNodeConfig<unknown>;
|
|
440
|
-
```
|
|
18
|
+
## Reference
|
|
441
19
|
|
|
20
|
+
Reference generation failed.
|
|
442
21
|
|
|
443
22
|
Part of [sdk-js](https://www.npmjs.com/package/@xyo-network/sdk-js)
|
|
444
23
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAA"}
|
package/dist/neutral/index.mjs
CHANGED
|
@@ -1,12 +1,17 @@
|
|
|
1
|
-
// src/ForgetPromise.ts
|
|
2
|
-
import { delay } from "@xylabs/delay";
|
|
3
|
-
import { isPromise } from "@xylabs/promise";
|
|
4
|
-
import { isNumber } from "@xylabs/typeof";
|
|
5
|
-
|
|
6
1
|
// src/ForgetConfig.ts
|
|
7
2
|
var defaultForgetConfig = { timeout: 3e4 };
|
|
8
3
|
|
|
4
|
+
// src/ForgetNodeConfig.ts
|
|
5
|
+
var defaultForgetNodeConfig = {
|
|
6
|
+
...defaultForgetConfig,
|
|
7
|
+
terminateOnTimeout: false,
|
|
8
|
+
terminateOnException: false
|
|
9
|
+
};
|
|
10
|
+
|
|
9
11
|
// src/ForgetPromise.ts
|
|
12
|
+
import { delay } from "@xylabs/delay";
|
|
13
|
+
import { isPromise } from "@xylabs/promise";
|
|
14
|
+
import { isNumber } from "@xylabs/typeof";
|
|
10
15
|
var ForgetPromise = class {
|
|
11
16
|
static activeForgets = 0;
|
|
12
17
|
static exceptedForgets = 0;
|
|
@@ -97,13 +102,39 @@ var ForgetPromise = class {
|
|
|
97
102
|
}
|
|
98
103
|
};
|
|
99
104
|
|
|
100
|
-
// src/
|
|
101
|
-
var
|
|
102
|
-
|
|
105
|
+
// src/ForgetPromiseNode.ts
|
|
106
|
+
var ForgetPromiseNode = class extends ForgetPromise {
|
|
107
|
+
static exceptionHandler(error, config, externalStackTrace) {
|
|
108
|
+
super.exceptionHandler(error, config, externalStackTrace);
|
|
109
|
+
if (config?.terminateOnException === true) {
|
|
110
|
+
this.logger.error(`Attempting to terminate process [${config?.name ?? "unknown"}]...`);
|
|
111
|
+
process.exit(1);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
static forget(promise, config) {
|
|
115
|
+
const resolvedConfig = {
|
|
116
|
+
...defaultForgetNodeConfig,
|
|
117
|
+
...globalThis.xy?.forget?.config,
|
|
118
|
+
...config
|
|
119
|
+
};
|
|
120
|
+
super.forget(promise, resolvedConfig);
|
|
121
|
+
}
|
|
122
|
+
static timeoutHandler(time, config, externalStackTrace) {
|
|
123
|
+
super.timeoutHandler(time, config, externalStackTrace);
|
|
124
|
+
if (config?.terminateOnTimeout === true) {
|
|
125
|
+
this.logger.error(`Attempting to terminate process [${config?.name ?? "unknown"}]...`);
|
|
126
|
+
process.exit(2);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
};
|
|
130
|
+
|
|
131
|
+
// src/forgetNode.ts
|
|
132
|
+
var forgetNode = (promise, config) => {
|
|
133
|
+
ForgetPromiseNode.forget(promise, config);
|
|
103
134
|
};
|
|
104
135
|
export {
|
|
105
|
-
ForgetPromise,
|
|
106
|
-
|
|
107
|
-
forget
|
|
136
|
+
ForgetPromiseNode as ForgetPromise,
|
|
137
|
+
defaultForgetNodeConfig,
|
|
138
|
+
forgetNode as forget
|
|
108
139
|
};
|
|
109
140
|
//# sourceMappingURL=index.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/ForgetPromise.ts","../../src/
|
|
1
|
+
{"version":3,"sources":["../../src/ForgetConfig.ts","../../src/ForgetNodeConfig.ts","../../src/ForgetPromise.ts","../../src/ForgetPromiseNode.ts","../../src/forgetNode.ts"],"sourcesContent":["// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport interface ForgetConfig<T = any> {\n name?: string\n onCancel?: () => void\n onComplete?: (result: [T | undefined, Error | undefined]) => void\n onException?: (error: Error) => void\n timeout?: number\n}\n\nexport const defaultForgetConfig: ForgetConfig<unknown> = { timeout: 30_000 }\n","import { defaultForgetConfig, type ForgetConfig } from './ForgetConfig.ts'\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport interface ForgetNodeConfig<T = any> extends ForgetConfig<T> {\n terminateOnException?: boolean // terminate the process on an exception that happens outside of the promise being forgotten\n terminateOnTimeout?: boolean // terminate the process if the promise times out\n}\n\nexport const defaultForgetNodeConfig: ForgetNodeConfig<unknown> = {\n ...defaultForgetConfig,\n terminateOnTimeout: false,\n terminateOnException: false,\n}\n","import { delay } from '@xylabs/delay'\nimport type { Logger } from '@xylabs/logger'\nimport type { Promisable, PromiseEx } from '@xylabs/promise'\nimport { isPromise } from '@xylabs/promise'\nimport { isNumber } from '@xylabs/typeof'\n\nimport { defaultForgetConfig, type ForgetConfig } from './ForgetConfig.ts'\n\ntype PromisableFunction<T> = () => Promisable<T>\n\n// eslint-disable-next-line unicorn/no-static-only-class\nexport class ForgetPromise {\n static activeForgets = 0\n static exceptedForgets = 0\n static logger: Logger = console\n\n static get active() {\n return this.activeForgets > 0\n }\n\n static async awaitInactive(interval = 100, timeout?: number) {\n let timeoutRemaining = timeout\n while (this.active) {\n await delay(interval)\n if (timeoutRemaining !== undefined) {\n timeoutRemaining -= interval\n if (timeoutRemaining <= 0) {\n return this.activeForgets\n }\n }\n }\n return 0\n }\n\n static exceptionHandler(error: Error, { name }: ForgetConfig, externalStackTrace?: string) {\n this.logger.error(`forget promise handler excepted [${name}]: ${error.message}`, error)\n if (externalStackTrace !== undefined) {\n this.logger.warn(`External Stack trace [${name}]:`, externalStackTrace)\n }\n }\n\n /**\n * Used to explicitly launch an async function (or Promise) with awaiting it\n * @param promise The promise to forget\n * @param config Configuration of forget settings\n */\n static forget<T>(promise: Promise<T> | PromiseEx<T> | PromisableFunction<T> | T, config?: ForgetConfig<T>) {\n const externalStackTrace = (new Error('Stack')).stack\n\n // default | global | provided priorities for config (not deep merge)\n const resolvedConfig = {\n ...defaultForgetConfig, ...globalThis.xy?.forget?.config, ...config,\n }\n const resolvedPromise = typeof promise === 'function' ? (promise as PromisableFunction<T>)() : promise\n if (isPromise(resolvedPromise)) {\n try {\n let completed = false\n this.activeForgets++\n\n const promiseWrapper = async () => {\n await resolvedPromise\n .then((result: T) => {\n this.activeForgets--\n completed = true\n resolvedConfig?.onComplete?.([result, undefined])\n })\n .catch((error) => {\n this.activeForgets--\n completed = true\n this.logger.error(`forgotten promise excepted [${config?.name ?? 'unknown'}]: ${error.message}`, error)\n resolvedConfig?.onComplete?.([undefined, error])\n })\n }\n\n const promises = [promiseWrapper()]\n\n // if there is a timeout, add it to the race\n const timeout = resolvedConfig.timeout ?? defaultForgetConfig.timeout\n if (isNumber(timeout)) {\n const timeoutFunc = async () => {\n await delay(timeout)\n if (!completed) {\n resolvedConfig.onCancel?.()\n this.timeoutHandler(timeout, resolvedConfig, externalStackTrace)\n }\n }\n promises.push(timeoutFunc())\n }\n\n const all = Promise.race(promises)\n\n all\n .then(() => {\n return\n })\n .catch(() => {\n return\n })\n } catch (ex) {\n this.exceptedForgets += 1\n resolvedConfig?.onException?.(ex as Error)\n this.exceptionHandler(ex as Error, resolvedConfig, externalStackTrace)\n }\n } else {\n // we do nothing here since if it was a non-promise, it already got invoked.\n return\n }\n }\n\n static timeoutHandler(time: number, { name = 'unknown' }: ForgetConfig, externalStackTrace?: string) {\n this.logger.error(`forget promise timeout out after ${time}ms [Cancelling] [${name}]`)\n if (externalStackTrace !== undefined) {\n this.logger.warn(`External Stack trace [${name}]:`, externalStackTrace)\n }\n }\n}\n","/// <reference types=\"node\" />\n\nimport type { Promisable } from '@xylabs/promise'\n\nimport { defaultForgetNodeConfig, type ForgetNodeConfig } from './ForgetNodeConfig.ts'\nimport { ForgetPromise } from './ForgetPromise.ts'\n\nexport class ForgetPromiseNode extends ForgetPromise {\n static override exceptionHandler(error: Error, config: ForgetNodeConfig, externalStackTrace?: string) {\n // default | global | provided priorities for config (not deep merge)\n super.exceptionHandler(error, config, externalStackTrace)\n if (config?.terminateOnException === true) {\n this.logger.error(`Attempting to terminate process [${config?.name ?? 'unknown'}]...`)\n // eslint-disable-next-line unicorn/no-process-exit\n process.exit(1)\n }\n }\n\n static override forget<T>(promise: Promisable<T>, config?: ForgetNodeConfig<T>) {\n const resolvedConfig = {\n ...defaultForgetNodeConfig, ...globalThis.xy?.forget?.config, ...config,\n }\n super.forget(promise, resolvedConfig)\n }\n\n static override timeoutHandler(time: number, config: ForgetNodeConfig, externalStackTrace?: string) {\n super.timeoutHandler(time, config, externalStackTrace)\n if (config?.terminateOnTimeout === true) {\n this.logger.error(`Attempting to terminate process [${config?.name ?? 'unknown'}]...`)\n // eslint-disable-next-line unicorn/no-process-exit\n process.exit(2)\n }\n }\n}\n","import { type Promisable } from '@xylabs/promise'\n\nimport type { ForgetNodeConfig } from './ForgetNodeConfig.ts'\nimport { ForgetPromiseNode } from './ForgetPromiseNode.ts'\n\n// used to explicitly launch an async function (or Promise) with awaiting it\nexport const forgetNode = <T>(promise: Promisable<T>, config?: ForgetNodeConfig<T>) => {\n ForgetPromiseNode.forget<T>(promise, config)\n}\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xylabs/forget",
|
|
3
|
-
"version": "4.13.
|
|
3
|
+
"version": "4.13.22",
|
|
4
4
|
"description": "Base functionality used throughout XY Labs TypeScript/JavaScript libraries",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"forget",
|
|
@@ -29,11 +29,11 @@
|
|
|
29
29
|
"exports": {
|
|
30
30
|
".": {
|
|
31
31
|
"node": {
|
|
32
|
-
"types": "./dist/node/
|
|
32
|
+
"types": "./dist/node/index.d.ts",
|
|
33
33
|
"source": "./src/node/index.ts",
|
|
34
34
|
"default": "./dist/node/index.mjs"
|
|
35
35
|
},
|
|
36
|
-
"types": "./dist/node/
|
|
36
|
+
"types": "./dist/node/index.d.ts",
|
|
37
37
|
"source": "./src/node/index.ts",
|
|
38
38
|
"default": "./dist/node/index.mjs"
|
|
39
39
|
},
|
|
@@ -41,16 +41,16 @@
|
|
|
41
41
|
},
|
|
42
42
|
"module": "./dist/node/index.mjs",
|
|
43
43
|
"source": "./src/node/index.ts",
|
|
44
|
-
"types": "./dist/node/
|
|
44
|
+
"types": "./dist/node/index.d.ts",
|
|
45
45
|
"files": [
|
|
46
46
|
"dist",
|
|
47
47
|
"src"
|
|
48
48
|
],
|
|
49
49
|
"dependencies": {
|
|
50
|
-
"@xylabs/delay": "^4.13.
|
|
51
|
-
"@xylabs/logger": "^4.13.
|
|
52
|
-
"@xylabs/promise": "^4.13.
|
|
53
|
-
"@xylabs/typeof": "^4.13.
|
|
50
|
+
"@xylabs/delay": "^4.13.22",
|
|
51
|
+
"@xylabs/logger": "^4.13.22",
|
|
52
|
+
"@xylabs/promise": "^4.13.22",
|
|
53
|
+
"@xylabs/typeof": "^4.13.22"
|
|
54
54
|
},
|
|
55
55
|
"devDependencies": {
|
|
56
56
|
"@xylabs/ts-scripts-yarn3": "^7.0.0",
|
package/src/index.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './node/index.ts'
|