@xylabs/forget 3.6.12 → 4.0.1

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 (48) hide show
  1. package/dist/neutral/index.d.ts +13 -2
  2. package/package.json +6 -13
  3. package/xy.config.ts +12 -0
  4. package/dist/browser/forget.d.cts +0 -12
  5. package/dist/browser/forget.d.cts.map +0 -1
  6. package/dist/browser/forget.d.mts +0 -12
  7. package/dist/browser/forget.d.mts.map +0 -1
  8. package/dist/browser/forget.d.ts +0 -12
  9. package/dist/browser/forget.d.ts.map +0 -1
  10. package/dist/browser/index.cjs +0 -87
  11. package/dist/browser/index.cjs.map +0 -1
  12. package/dist/browser/index.d.cts +0 -2
  13. package/dist/browser/index.d.cts.map +0 -1
  14. package/dist/browser/index.d.mts +0 -2
  15. package/dist/browser/index.d.mts.map +0 -1
  16. package/dist/browser/index.d.ts +0 -2
  17. package/dist/browser/index.d.ts.map +0 -1
  18. package/dist/browser/index.mjs +0 -64
  19. package/dist/browser/index.mjs.map +0 -1
  20. package/dist/neutral/forget.d.cts +0 -12
  21. package/dist/neutral/forget.d.cts.map +0 -1
  22. package/dist/neutral/forget.d.mts +0 -12
  23. package/dist/neutral/forget.d.mts.map +0 -1
  24. package/dist/neutral/forget.d.ts +0 -12
  25. package/dist/neutral/forget.d.ts.map +0 -1
  26. package/dist/neutral/index.cjs +0 -87
  27. package/dist/neutral/index.cjs.map +0 -1
  28. package/dist/neutral/index.d.cts +0 -2
  29. package/dist/neutral/index.d.cts.map +0 -1
  30. package/dist/neutral/index.d.mts +0 -2
  31. package/dist/neutral/index.d.mts.map +0 -1
  32. package/dist/neutral/index.d.ts.map +0 -1
  33. package/dist/node/forget.d.cts +0 -12
  34. package/dist/node/forget.d.cts.map +0 -1
  35. package/dist/node/forget.d.mts +0 -12
  36. package/dist/node/forget.d.mts.map +0 -1
  37. package/dist/node/forget.d.ts +0 -12
  38. package/dist/node/forget.d.ts.map +0 -1
  39. package/dist/node/index.cjs +0 -93
  40. package/dist/node/index.cjs.map +0 -1
  41. package/dist/node/index.d.cts +0 -2
  42. package/dist/node/index.d.cts.map +0 -1
  43. package/dist/node/index.d.mts +0 -2
  44. package/dist/node/index.d.mts.map +0 -1
  45. package/dist/node/index.d.ts +0 -2
  46. package/dist/node/index.d.ts.map +0 -1
  47. package/dist/node/index.mjs +0 -65
  48. package/dist/node/index.mjs.map +0 -1
@@ -1,2 +1,13 @@
1
- export { forget, ForgetPromise } from './forget.ts';
2
- //# sourceMappingURL=index.d.ts.map
1
+ interface ForgetTimeoutConfig {
2
+ cancel: () => void;
3
+ delay: number;
4
+ }
5
+ declare const ForgetPromise: {
6
+ readonly active: boolean;
7
+ activeForgets: number;
8
+ awaitInactive(interval?: number, timeout?: number): Promise<number>;
9
+ forget<T>(promise: Promise<T>, config?: ForgetTimeoutConfig): void;
10
+ };
11
+ declare const forget: (promise: Promise<unknown>, timeout?: ForgetTimeoutConfig) => void;
12
+
13
+ export { ForgetPromise, forget };
package/package.json CHANGED
@@ -13,18 +13,11 @@
13
13
  "description": "Base functionality used throughout XY Labs TypeScript/JavaScript libraries",
14
14
  "exports": {
15
15
  ".": {
16
- "require": {
17
- "types": "./dist/neutral/index.d.cts",
18
- "default": "./dist/neutral/index.cjs"
19
- },
20
- "import": {
21
- "types": "./dist/neutral/index.d.ts",
22
- "default": "./dist/neutral/index.mjs"
23
- }
16
+ "types": "./dist/neutral/index.d.ts",
17
+ "default": "./dist/neutral/index.mjs"
24
18
  },
25
19
  "./package.json": "./package.json"
26
20
  },
27
- "main": "./dist/neutral/index.cjs",
28
21
  "types": "./dist/neutral/index.d.ts",
29
22
  "module": "./dist/neutral/index.mjs",
30
23
  "homepage": "https://xylabs.com",
@@ -36,11 +29,11 @@
36
29
  "esm"
37
30
  ],
38
31
  "dependencies": {
39
- "@xylabs/delay": "^3.6.12"
32
+ "@xylabs/delay": "^4.0.1"
40
33
  },
41
34
  "devDependencies": {
42
- "@xylabs/ts-scripts-yarn3": "^3.15.14",
43
- "@xylabs/tsconfig": "^3.15.14",
35
+ "@xylabs/ts-scripts-yarn3": "^4.0.0-rc.15",
36
+ "@xylabs/tsconfig": "^4.0.0-rc.15",
44
37
  "typescript": "^5.5.4"
45
38
  },
46
39
  "engines": {
@@ -54,6 +47,6 @@
54
47
  "url": "https://github.com/xylabs/sdk-js.git"
55
48
  },
56
49
  "sideEffects": false,
57
- "version": "3.6.12",
50
+ "version": "4.0.1",
58
51
  "type": "module"
59
52
  }
package/xy.config.ts ADDED
@@ -0,0 +1,12 @@
1
+ import { XyTsupConfig } from '@xylabs/ts-scripts-yarn3'
2
+ const config: XyTsupConfig = {
3
+ compile: {
4
+ browser: {},
5
+ neutral: {
6
+ src: true,
7
+ },
8
+ node: {},
9
+ },
10
+ }
11
+
12
+ export default config
@@ -1,12 +0,0 @@
1
- export interface ForgetTimeoutConfig {
2
- cancel: () => void;
3
- delay: number;
4
- }
5
- export declare const ForgetPromise: {
6
- readonly active: boolean;
7
- activeForgets: number;
8
- awaitInactive(interval?: number, timeout?: number): Promise<number>;
9
- forget<T>(promise: Promise<T>, config?: ForgetTimeoutConfig): void;
10
- };
11
- export declare const forget: (promise: Promise<unknown>, timeout?: ForgetTimeoutConfig) => void;
12
- //# sourceMappingURL=forget.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"forget.d.ts","sourceRoot":"","sources":["../../src/forget.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,IAAI,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;CACd;AAED,eAAO,MAAM,aAAa;;;+CAOsB,MAAM;WAmB7C,CAAC,WAAW,OAAO,CAAC,CAAC,CAAC,WAAW,mBAAmB;CAwC5D,CAAA;AAGD,eAAO,MAAM,MAAM,YAAa,OAAO,CAAC,OAAO,CAAC,YAAY,mBAAmB,SAE9E,CAAA"}
@@ -1,12 +0,0 @@
1
- export interface ForgetTimeoutConfig {
2
- cancel: () => void;
3
- delay: number;
4
- }
5
- export declare const ForgetPromise: {
6
- readonly active: boolean;
7
- activeForgets: number;
8
- awaitInactive(interval?: number, timeout?: number): Promise<number>;
9
- forget<T>(promise: Promise<T>, config?: ForgetTimeoutConfig): void;
10
- };
11
- export declare const forget: (promise: Promise<unknown>, timeout?: ForgetTimeoutConfig) => void;
12
- //# sourceMappingURL=forget.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"forget.d.ts","sourceRoot":"","sources":["../../src/forget.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,IAAI,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;CACd;AAED,eAAO,MAAM,aAAa;;;+CAOsB,MAAM;WAmB7C,CAAC,WAAW,OAAO,CAAC,CAAC,CAAC,WAAW,mBAAmB;CAwC5D,CAAA;AAGD,eAAO,MAAM,MAAM,YAAa,OAAO,CAAC,OAAO,CAAC,YAAY,mBAAmB,SAE9E,CAAA"}
@@ -1,12 +0,0 @@
1
- export interface ForgetTimeoutConfig {
2
- cancel: () => void;
3
- delay: number;
4
- }
5
- export declare const ForgetPromise: {
6
- readonly active: boolean;
7
- activeForgets: number;
8
- awaitInactive(interval?: number, timeout?: number): Promise<number>;
9
- forget<T>(promise: Promise<T>, config?: ForgetTimeoutConfig): void;
10
- };
11
- export declare const forget: (promise: Promise<unknown>, timeout?: ForgetTimeoutConfig) => void;
12
- //# sourceMappingURL=forget.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"forget.d.ts","sourceRoot":"","sources":["../../src/forget.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,IAAI,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;CACd;AAED,eAAO,MAAM,aAAa;;;+CAOsB,MAAM;WAmB7C,CAAC,WAAW,OAAO,CAAC,CAAC,CAAC,WAAW,mBAAmB;CAwC5D,CAAA;AAGD,eAAO,MAAM,MAAM,YAAa,OAAO,CAAC,OAAO,CAAC,YAAY,mBAAmB,SAE9E,CAAA"}
@@ -1,87 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
-
20
- // src/index.ts
21
- var src_exports = {};
22
- __export(src_exports, {
23
- ForgetPromise: () => ForgetPromise,
24
- forget: () => forget
25
- });
26
- module.exports = __toCommonJS(src_exports);
27
-
28
- // src/forget.ts
29
- var import_delay = require("@xylabs/delay");
30
- var ForgetPromise = {
31
- get active() {
32
- return this.activeForgets > 0;
33
- },
34
- activeForgets: 0,
35
- async awaitInactive(interval = 100, timeout) {
36
- let timeoutRemaining = timeout;
37
- while (this.active) {
38
- await (0, import_delay.delay)(interval);
39
- if (timeoutRemaining !== void 0) {
40
- timeoutRemaining -= interval;
41
- if (timeoutRemaining <= 0) {
42
- return this.activeForgets;
43
- }
44
- }
45
- }
46
- return 0;
47
- },
48
- /**
49
- * Used to explicitly launch an async function (or Promise) with awaiting it
50
- * @param promise The promise to forget
51
- * @param config Configuration of forget settings
52
- */
53
- forget(promise, config) {
54
- let completed = false;
55
- this.activeForgets++;
56
- const promiseWrapper = async () => {
57
- await promise.then(() => {
58
- this.activeForgets--;
59
- completed = true;
60
- }).catch(() => {
61
- this.activeForgets--;
62
- completed = true;
63
- });
64
- };
65
- const promises = [promiseWrapper()];
66
- if (config) {
67
- const timeoutFunc = async () => {
68
- await (0, import_delay.delay)(config.delay);
69
- if (!completed) {
70
- console.log(`forget promise timeout out after ${config.delay}ms [Cancelling]`);
71
- config.cancel?.();
72
- }
73
- };
74
- promises.push(timeoutFunc());
75
- }
76
- const all = Promise.race(promises);
77
- all.then(() => {
78
- return;
79
- }).catch(() => {
80
- return;
81
- });
82
- }
83
- };
84
- var forget = (promise, timeout) => {
85
- ForgetPromise.forget(promise, timeout);
86
- };
87
- //# sourceMappingURL=index.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/index.ts","../../src/forget.ts"],"sourcesContent":["export { forget, ForgetPromise } from './forget.ts'\n","import { delay } from '@xylabs/delay'\n\nexport interface ForgetTimeoutConfig {\n cancel: () => void\n delay: number\n}\n\nexport const ForgetPromise = {\n get active() {\n return this.activeForgets > 0\n },\n\n activeForgets: 0,\n\n 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 /**\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 forget<T>(promise: Promise<T>, config?: ForgetTimeoutConfig) {\n let completed = false\n this.activeForgets++\n\n const promiseWrapper = async () => {\n await promise\n .then(() => {\n this.activeForgets--\n completed = true\n })\n .catch(() => {\n this.activeForgets--\n completed = true\n })\n }\n\n const promises = [promiseWrapper()]\n\n // if there is a timeout, add it to the race\n if (config) {\n const timeoutFunc = async () => {\n await delay(config.delay)\n if (!completed) {\n console.log(`forget promise timeout out after ${config.delay}ms [Cancelling]`)\n config.cancel?.()\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 },\n}\n\n// used to explicitly launch an async function (or Promise) with awaiting it\nexport const forget = (promise: Promise<unknown>, timeout?: ForgetTimeoutConfig) => {\n ForgetPromise.forget(promise, timeout)\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,mBAAsB;AAOf,IAAM,gBAAgB;AAAA,EAC3B,IAAI,SAAS;AACX,WAAO,KAAK,gBAAgB;AAAA,EAC9B;AAAA,EAEA,eAAe;AAAA,EAEf,MAAM,cAAc,WAAW,KAAK,SAAkB;AACpD,QAAI,mBAAmB;AACvB,WAAO,KAAK,QAAQ;AAClB,gBAAM,oBAAM,QAAQ;AACpB,UAAI,qBAAqB,QAAW;AAClC,4BAAoB;AACpB,YAAI,oBAAoB,GAAG;AACzB,iBAAO,KAAK;AAAA,QACd;AAAA,MACF;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,OAAU,SAAqB,QAA8B;AAC3D,QAAI,YAAY;AAChB,SAAK;AAEL,UAAM,iBAAiB,YAAY;AACjC,YAAM,QACH,KAAK,MAAM;AACV,aAAK;AACL,oBAAY;AAAA,MACd,CAAC,EACA,MAAM,MAAM;AACX,aAAK;AACL,oBAAY;AAAA,MACd,CAAC;AAAA,IACL;AAEA,UAAM,WAAW,CAAC,eAAe,CAAC;AAGlC,QAAI,QAAQ;AACV,YAAM,cAAc,YAAY;AAC9B,kBAAM,oBAAM,OAAO,KAAK;AACxB,YAAI,CAAC,WAAW;AACd,kBAAQ,IAAI,oCAAoC,OAAO,KAAK,iBAAiB;AAC7E,iBAAO,SAAS;AAAA,QAClB;AAAA,MACF;AACA,eAAS,KAAK,YAAY,CAAC;AAAA,IAC7B;AAEA,UAAM,MAAM,QAAQ,KAAK,QAAQ;AAEjC,QACG,KAAK,MAAM;AACV;AAAA,IACF,CAAC,EACA,MAAM,MAAM;AACX;AAAA,IACF,CAAC;AAAA,EACL;AACF;AAGO,IAAM,SAAS,CAAC,SAA2B,YAAkC;AAClF,gBAAc,OAAO,SAAS,OAAO;AACvC;","names":[]}
@@ -1,2 +0,0 @@
1
- export { forget, ForgetPromise } from './forget.ts';
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA"}
@@ -1,2 +0,0 @@
1
- export { forget, ForgetPromise } from './forget.ts';
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA"}
@@ -1,2 +0,0 @@
1
- export { forget, ForgetPromise } from './forget.ts';
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA"}
@@ -1,64 +0,0 @@
1
- // src/forget.ts
2
- import { delay } from "@xylabs/delay";
3
- var ForgetPromise = {
4
- get active() {
5
- return this.activeForgets > 0;
6
- },
7
- activeForgets: 0,
8
- async awaitInactive(interval = 100, timeout) {
9
- let timeoutRemaining = timeout;
10
- while (this.active) {
11
- await delay(interval);
12
- if (timeoutRemaining !== void 0) {
13
- timeoutRemaining -= interval;
14
- if (timeoutRemaining <= 0) {
15
- return this.activeForgets;
16
- }
17
- }
18
- }
19
- return 0;
20
- },
21
- /**
22
- * Used to explicitly launch an async function (or Promise) with awaiting it
23
- * @param promise The promise to forget
24
- * @param config Configuration of forget settings
25
- */
26
- forget(promise, config) {
27
- let completed = false;
28
- this.activeForgets++;
29
- const promiseWrapper = async () => {
30
- await promise.then(() => {
31
- this.activeForgets--;
32
- completed = true;
33
- }).catch(() => {
34
- this.activeForgets--;
35
- completed = true;
36
- });
37
- };
38
- const promises = [promiseWrapper()];
39
- if (config) {
40
- const timeoutFunc = async () => {
41
- await delay(config.delay);
42
- if (!completed) {
43
- console.log(`forget promise timeout out after ${config.delay}ms [Cancelling]`);
44
- config.cancel?.();
45
- }
46
- };
47
- promises.push(timeoutFunc());
48
- }
49
- const all = Promise.race(promises);
50
- all.then(() => {
51
- return;
52
- }).catch(() => {
53
- return;
54
- });
55
- }
56
- };
57
- var forget = (promise, timeout) => {
58
- ForgetPromise.forget(promise, timeout);
59
- };
60
- export {
61
- ForgetPromise,
62
- forget
63
- };
64
- //# sourceMappingURL=index.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/forget.ts"],"sourcesContent":["import { delay } from '@xylabs/delay'\n\nexport interface ForgetTimeoutConfig {\n cancel: () => void\n delay: number\n}\n\nexport const ForgetPromise = {\n get active() {\n return this.activeForgets > 0\n },\n\n activeForgets: 0,\n\n 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 /**\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 forget<T>(promise: Promise<T>, config?: ForgetTimeoutConfig) {\n let completed = false\n this.activeForgets++\n\n const promiseWrapper = async () => {\n await promise\n .then(() => {\n this.activeForgets--\n completed = true\n })\n .catch(() => {\n this.activeForgets--\n completed = true\n })\n }\n\n const promises = [promiseWrapper()]\n\n // if there is a timeout, add it to the race\n if (config) {\n const timeoutFunc = async () => {\n await delay(config.delay)\n if (!completed) {\n console.log(`forget promise timeout out after ${config.delay}ms [Cancelling]`)\n config.cancel?.()\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 },\n}\n\n// used to explicitly launch an async function (or Promise) with awaiting it\nexport const forget = (promise: Promise<unknown>, timeout?: ForgetTimeoutConfig) => {\n ForgetPromise.forget(promise, timeout)\n}\n"],"mappings":";AAAA,SAAS,aAAa;AAOf,IAAM,gBAAgB;AAAA,EAC3B,IAAI,SAAS;AACX,WAAO,KAAK,gBAAgB;AAAA,EAC9B;AAAA,EAEA,eAAe;AAAA,EAEf,MAAM,cAAc,WAAW,KAAK,SAAkB;AACpD,QAAI,mBAAmB;AACvB,WAAO,KAAK,QAAQ;AAClB,YAAM,MAAM,QAAQ;AACpB,UAAI,qBAAqB,QAAW;AAClC,4BAAoB;AACpB,YAAI,oBAAoB,GAAG;AACzB,iBAAO,KAAK;AAAA,QACd;AAAA,MACF;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,OAAU,SAAqB,QAA8B;AAC3D,QAAI,YAAY;AAChB,SAAK;AAEL,UAAM,iBAAiB,YAAY;AACjC,YAAM,QACH,KAAK,MAAM;AACV,aAAK;AACL,oBAAY;AAAA,MACd,CAAC,EACA,MAAM,MAAM;AACX,aAAK;AACL,oBAAY;AAAA,MACd,CAAC;AAAA,IACL;AAEA,UAAM,WAAW,CAAC,eAAe,CAAC;AAGlC,QAAI,QAAQ;AACV,YAAM,cAAc,YAAY;AAC9B,cAAM,MAAM,OAAO,KAAK;AACxB,YAAI,CAAC,WAAW;AACd,kBAAQ,IAAI,oCAAoC,OAAO,KAAK,iBAAiB;AAC7E,iBAAO,SAAS;AAAA,QAClB;AAAA,MACF;AACA,eAAS,KAAK,YAAY,CAAC;AAAA,IAC7B;AAEA,UAAM,MAAM,QAAQ,KAAK,QAAQ;AAEjC,QACG,KAAK,MAAM;AACV;AAAA,IACF,CAAC,EACA,MAAM,MAAM;AACX;AAAA,IACF,CAAC;AAAA,EACL;AACF;AAGO,IAAM,SAAS,CAAC,SAA2B,YAAkC;AAClF,gBAAc,OAAO,SAAS,OAAO;AACvC;","names":[]}
@@ -1,12 +0,0 @@
1
- export interface ForgetTimeoutConfig {
2
- cancel: () => void;
3
- delay: number;
4
- }
5
- export declare const ForgetPromise: {
6
- readonly active: boolean;
7
- activeForgets: number;
8
- awaitInactive(interval?: number, timeout?: number): Promise<number>;
9
- forget<T>(promise: Promise<T>, config?: ForgetTimeoutConfig): void;
10
- };
11
- export declare const forget: (promise: Promise<unknown>, timeout?: ForgetTimeoutConfig) => void;
12
- //# sourceMappingURL=forget.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"forget.d.ts","sourceRoot":"","sources":["../../src/forget.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,IAAI,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;CACd;AAED,eAAO,MAAM,aAAa;;;+CAOsB,MAAM;WAmB7C,CAAC,WAAW,OAAO,CAAC,CAAC,CAAC,WAAW,mBAAmB;CAwC5D,CAAA;AAGD,eAAO,MAAM,MAAM,YAAa,OAAO,CAAC,OAAO,CAAC,YAAY,mBAAmB,SAE9E,CAAA"}
@@ -1,12 +0,0 @@
1
- export interface ForgetTimeoutConfig {
2
- cancel: () => void;
3
- delay: number;
4
- }
5
- export declare const ForgetPromise: {
6
- readonly active: boolean;
7
- activeForgets: number;
8
- awaitInactive(interval?: number, timeout?: number): Promise<number>;
9
- forget<T>(promise: Promise<T>, config?: ForgetTimeoutConfig): void;
10
- };
11
- export declare const forget: (promise: Promise<unknown>, timeout?: ForgetTimeoutConfig) => void;
12
- //# sourceMappingURL=forget.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"forget.d.ts","sourceRoot":"","sources":["../../src/forget.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,IAAI,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;CACd;AAED,eAAO,MAAM,aAAa;;;+CAOsB,MAAM;WAmB7C,CAAC,WAAW,OAAO,CAAC,CAAC,CAAC,WAAW,mBAAmB;CAwC5D,CAAA;AAGD,eAAO,MAAM,MAAM,YAAa,OAAO,CAAC,OAAO,CAAC,YAAY,mBAAmB,SAE9E,CAAA"}
@@ -1,12 +0,0 @@
1
- export interface ForgetTimeoutConfig {
2
- cancel: () => void;
3
- delay: number;
4
- }
5
- export declare const ForgetPromise: {
6
- readonly active: boolean;
7
- activeForgets: number;
8
- awaitInactive(interval?: number, timeout?: number): Promise<number>;
9
- forget<T>(promise: Promise<T>, config?: ForgetTimeoutConfig): void;
10
- };
11
- export declare const forget: (promise: Promise<unknown>, timeout?: ForgetTimeoutConfig) => void;
12
- //# sourceMappingURL=forget.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"forget.d.ts","sourceRoot":"","sources":["../../src/forget.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,IAAI,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;CACd;AAED,eAAO,MAAM,aAAa;;;+CAOsB,MAAM;WAmB7C,CAAC,WAAW,OAAO,CAAC,CAAC,CAAC,WAAW,mBAAmB;CAwC5D,CAAA;AAGD,eAAO,MAAM,MAAM,YAAa,OAAO,CAAC,OAAO,CAAC,YAAY,mBAAmB,SAE9E,CAAA"}
@@ -1,87 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
-
20
- // src/index.ts
21
- var src_exports = {};
22
- __export(src_exports, {
23
- ForgetPromise: () => ForgetPromise,
24
- forget: () => forget
25
- });
26
- module.exports = __toCommonJS(src_exports);
27
-
28
- // src/forget.ts
29
- var import_delay = require("@xylabs/delay");
30
- var ForgetPromise = {
31
- get active() {
32
- return this.activeForgets > 0;
33
- },
34
- activeForgets: 0,
35
- async awaitInactive(interval = 100, timeout) {
36
- let timeoutRemaining = timeout;
37
- while (this.active) {
38
- await (0, import_delay.delay)(interval);
39
- if (timeoutRemaining !== void 0) {
40
- timeoutRemaining -= interval;
41
- if (timeoutRemaining <= 0) {
42
- return this.activeForgets;
43
- }
44
- }
45
- }
46
- return 0;
47
- },
48
- /**
49
- * Used to explicitly launch an async function (or Promise) with awaiting it
50
- * @param promise The promise to forget
51
- * @param config Configuration of forget settings
52
- */
53
- forget(promise, config) {
54
- let completed = false;
55
- this.activeForgets++;
56
- const promiseWrapper = async () => {
57
- await promise.then(() => {
58
- this.activeForgets--;
59
- completed = true;
60
- }).catch(() => {
61
- this.activeForgets--;
62
- completed = true;
63
- });
64
- };
65
- const promises = [promiseWrapper()];
66
- if (config) {
67
- const timeoutFunc = async () => {
68
- await (0, import_delay.delay)(config.delay);
69
- if (!completed) {
70
- console.log(`forget promise timeout out after ${config.delay}ms [Cancelling]`);
71
- config.cancel?.();
72
- }
73
- };
74
- promises.push(timeoutFunc());
75
- }
76
- const all = Promise.race(promises);
77
- all.then(() => {
78
- return;
79
- }).catch(() => {
80
- return;
81
- });
82
- }
83
- };
84
- var forget = (promise, timeout) => {
85
- ForgetPromise.forget(promise, timeout);
86
- };
87
- //# sourceMappingURL=index.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/index.ts","../../src/forget.ts"],"sourcesContent":["export { forget, ForgetPromise } from './forget.ts'\n","import { delay } from '@xylabs/delay'\n\nexport interface ForgetTimeoutConfig {\n cancel: () => void\n delay: number\n}\n\nexport const ForgetPromise = {\n get active() {\n return this.activeForgets > 0\n },\n\n activeForgets: 0,\n\n 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 /**\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 forget<T>(promise: Promise<T>, config?: ForgetTimeoutConfig) {\n let completed = false\n this.activeForgets++\n\n const promiseWrapper = async () => {\n await promise\n .then(() => {\n this.activeForgets--\n completed = true\n })\n .catch(() => {\n this.activeForgets--\n completed = true\n })\n }\n\n const promises = [promiseWrapper()]\n\n // if there is a timeout, add it to the race\n if (config) {\n const timeoutFunc = async () => {\n await delay(config.delay)\n if (!completed) {\n console.log(`forget promise timeout out after ${config.delay}ms [Cancelling]`)\n config.cancel?.()\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 },\n}\n\n// used to explicitly launch an async function (or Promise) with awaiting it\nexport const forget = (promise: Promise<unknown>, timeout?: ForgetTimeoutConfig) => {\n ForgetPromise.forget(promise, timeout)\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,mBAAsB;AAOf,IAAM,gBAAgB;AAAA,EAC3B,IAAI,SAAS;AACX,WAAO,KAAK,gBAAgB;AAAA,EAC9B;AAAA,EAEA,eAAe;AAAA,EAEf,MAAM,cAAc,WAAW,KAAK,SAAkB;AACpD,QAAI,mBAAmB;AACvB,WAAO,KAAK,QAAQ;AAClB,gBAAM,oBAAM,QAAQ;AACpB,UAAI,qBAAqB,QAAW;AAClC,4BAAoB;AACpB,YAAI,oBAAoB,GAAG;AACzB,iBAAO,KAAK;AAAA,QACd;AAAA,MACF;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,OAAU,SAAqB,QAA8B;AAC3D,QAAI,YAAY;AAChB,SAAK;AAEL,UAAM,iBAAiB,YAAY;AACjC,YAAM,QACH,KAAK,MAAM;AACV,aAAK;AACL,oBAAY;AAAA,MACd,CAAC,EACA,MAAM,MAAM;AACX,aAAK;AACL,oBAAY;AAAA,MACd,CAAC;AAAA,IACL;AAEA,UAAM,WAAW,CAAC,eAAe,CAAC;AAGlC,QAAI,QAAQ;AACV,YAAM,cAAc,YAAY;AAC9B,kBAAM,oBAAM,OAAO,KAAK;AACxB,YAAI,CAAC,WAAW;AACd,kBAAQ,IAAI,oCAAoC,OAAO,KAAK,iBAAiB;AAC7E,iBAAO,SAAS;AAAA,QAClB;AAAA,MACF;AACA,eAAS,KAAK,YAAY,CAAC;AAAA,IAC7B;AAEA,UAAM,MAAM,QAAQ,KAAK,QAAQ;AAEjC,QACG,KAAK,MAAM;AACV;AAAA,IACF,CAAC,EACA,MAAM,MAAM;AACX;AAAA,IACF,CAAC;AAAA,EACL;AACF;AAGO,IAAM,SAAS,CAAC,SAA2B,YAAkC;AAClF,gBAAc,OAAO,SAAS,OAAO;AACvC;","names":[]}
@@ -1,2 +0,0 @@
1
- export { forget, ForgetPromise } from './forget.ts';
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA"}
@@ -1,2 +0,0 @@
1
- export { forget, ForgetPromise } from './forget.ts';
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA"}
@@ -1,12 +0,0 @@
1
- export interface ForgetTimeoutConfig {
2
- cancel: () => void;
3
- delay: number;
4
- }
5
- export declare const ForgetPromise: {
6
- readonly active: boolean;
7
- activeForgets: number;
8
- awaitInactive(interval?: number, timeout?: number): Promise<number>;
9
- forget<T>(promise: Promise<T>, config?: ForgetTimeoutConfig): void;
10
- };
11
- export declare const forget: (promise: Promise<unknown>, timeout?: ForgetTimeoutConfig) => void;
12
- //# sourceMappingURL=forget.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"forget.d.ts","sourceRoot":"","sources":["../../src/forget.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,IAAI,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;CACd;AAED,eAAO,MAAM,aAAa;;;+CAOsB,MAAM;WAmB7C,CAAC,WAAW,OAAO,CAAC,CAAC,CAAC,WAAW,mBAAmB;CAwC5D,CAAA;AAGD,eAAO,MAAM,MAAM,YAAa,OAAO,CAAC,OAAO,CAAC,YAAY,mBAAmB,SAE9E,CAAA"}
@@ -1,12 +0,0 @@
1
- export interface ForgetTimeoutConfig {
2
- cancel: () => void;
3
- delay: number;
4
- }
5
- export declare const ForgetPromise: {
6
- readonly active: boolean;
7
- activeForgets: number;
8
- awaitInactive(interval?: number, timeout?: number): Promise<number>;
9
- forget<T>(promise: Promise<T>, config?: ForgetTimeoutConfig): void;
10
- };
11
- export declare const forget: (promise: Promise<unknown>, timeout?: ForgetTimeoutConfig) => void;
12
- //# sourceMappingURL=forget.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"forget.d.ts","sourceRoot":"","sources":["../../src/forget.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,IAAI,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;CACd;AAED,eAAO,MAAM,aAAa;;;+CAOsB,MAAM;WAmB7C,CAAC,WAAW,OAAO,CAAC,CAAC,CAAC,WAAW,mBAAmB;CAwC5D,CAAA;AAGD,eAAO,MAAM,MAAM,YAAa,OAAO,CAAC,OAAO,CAAC,YAAY,mBAAmB,SAE9E,CAAA"}
@@ -1,12 +0,0 @@
1
- export interface ForgetTimeoutConfig {
2
- cancel: () => void;
3
- delay: number;
4
- }
5
- export declare const ForgetPromise: {
6
- readonly active: boolean;
7
- activeForgets: number;
8
- awaitInactive(interval?: number, timeout?: number): Promise<number>;
9
- forget<T>(promise: Promise<T>, config?: ForgetTimeoutConfig): void;
10
- };
11
- export declare const forget: (promise: Promise<unknown>, timeout?: ForgetTimeoutConfig) => void;
12
- //# sourceMappingURL=forget.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"forget.d.ts","sourceRoot":"","sources":["../../src/forget.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,IAAI,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;CACd;AAED,eAAO,MAAM,aAAa;;;+CAOsB,MAAM;WAmB7C,CAAC,WAAW,OAAO,CAAC,CAAC,CAAC,WAAW,mBAAmB;CAwC5D,CAAA;AAGD,eAAO,MAAM,MAAM,YAAa,OAAO,CAAC,OAAO,CAAC,YAAY,mBAAmB,SAE9E,CAAA"}
@@ -1,93 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
-
20
- // src/index.ts
21
- var src_exports = {};
22
- __export(src_exports, {
23
- ForgetPromise: () => ForgetPromise,
24
- forget: () => forget
25
- });
26
- module.exports = __toCommonJS(src_exports);
27
-
28
- // src/forget.ts
29
- var import_delay = require("@xylabs/delay");
30
- var ForgetPromise = {
31
- get active() {
32
- return this.activeForgets > 0;
33
- },
34
- activeForgets: 0,
35
- async awaitInactive(interval = 100, timeout) {
36
- let timeoutRemaining = timeout;
37
- while (this.active) {
38
- await (0, import_delay.delay)(interval);
39
- if (timeoutRemaining !== void 0) {
40
- timeoutRemaining -= interval;
41
- if (timeoutRemaining <= 0) {
42
- return this.activeForgets;
43
- }
44
- }
45
- }
46
- return 0;
47
- },
48
- /**
49
- * Used to explicitly launch an async function (or Promise) with awaiting it
50
- * @param promise The promise to forget
51
- * @param config Configuration of forget settings
52
- */
53
- forget(promise, config) {
54
- let completed = false;
55
- this.activeForgets++;
56
- const promiseWrapper = async () => {
57
- await promise.then(() => {
58
- this.activeForgets--;
59
- completed = true;
60
- }).catch(() => {
61
- this.activeForgets--;
62
- completed = true;
63
- });
64
- };
65
- const promises = [promiseWrapper()];
66
- if (config) {
67
- const timeoutFunc = async () => {
68
- var _a;
69
- await (0, import_delay.delay)(config.delay);
70
- if (!completed) {
71
- console.log(`forget promise timeout out after ${config.delay}ms [Cancelling]`);
72
- (_a = config.cancel) == null ? void 0 : _a.call(config);
73
- }
74
- };
75
- promises.push(timeoutFunc());
76
- }
77
- const all = Promise.race(promises);
78
- all.then(() => {
79
- return;
80
- }).catch(() => {
81
- return;
82
- });
83
- }
84
- };
85
- var forget = (promise, timeout) => {
86
- ForgetPromise.forget(promise, timeout);
87
- };
88
- // Annotate the CommonJS export names for ESM import in node:
89
- 0 && (module.exports = {
90
- ForgetPromise,
91
- forget
92
- });
93
- //# sourceMappingURL=index.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/index.ts","../../src/forget.ts"],"sourcesContent":["export { forget, ForgetPromise } from './forget.ts'\n","import { delay } from '@xylabs/delay'\n\nexport interface ForgetTimeoutConfig {\n cancel: () => void\n delay: number\n}\n\nexport const ForgetPromise = {\n get active() {\n return this.activeForgets > 0\n },\n\n activeForgets: 0,\n\n 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 /**\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 forget<T>(promise: Promise<T>, config?: ForgetTimeoutConfig) {\n let completed = false\n this.activeForgets++\n\n const promiseWrapper = async () => {\n await promise\n .then(() => {\n this.activeForgets--\n completed = true\n })\n .catch(() => {\n this.activeForgets--\n completed = true\n })\n }\n\n const promises = [promiseWrapper()]\n\n // if there is a timeout, add it to the race\n if (config) {\n const timeoutFunc = async () => {\n await delay(config.delay)\n if (!completed) {\n console.log(`forget promise timeout out after ${config.delay}ms [Cancelling]`)\n config.cancel?.()\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 },\n}\n\n// used to explicitly launch an async function (or Promise) with awaiting it\nexport const forget = (promise: Promise<unknown>, timeout?: ForgetTimeoutConfig) => {\n ForgetPromise.forget(promise, timeout)\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,mBAAsB;AAOf,IAAM,gBAAgB;AAAA,EAC3B,IAAI,SAAS;AACX,WAAO,KAAK,gBAAgB;AAAA,EAC9B;AAAA,EAEA,eAAe;AAAA,EAEf,MAAM,cAAc,WAAW,KAAK,SAAkB;AACpD,QAAI,mBAAmB;AACvB,WAAO,KAAK,QAAQ;AAClB,gBAAM,oBAAM,QAAQ;AACpB,UAAI,qBAAqB,QAAW;AAClC,4BAAoB;AACpB,YAAI,oBAAoB,GAAG;AACzB,iBAAO,KAAK;AAAA,QACd;AAAA,MACF;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,OAAU,SAAqB,QAA8B;AAC3D,QAAI,YAAY;AAChB,SAAK;AAEL,UAAM,iBAAiB,YAAY;AACjC,YAAM,QACH,KAAK,MAAM;AACV,aAAK;AACL,oBAAY;AAAA,MACd,CAAC,EACA,MAAM,MAAM;AACX,aAAK;AACL,oBAAY;AAAA,MACd,CAAC;AAAA,IACL;AAEA,UAAM,WAAW,CAAC,eAAe,CAAC;AAGlC,QAAI,QAAQ;AACV,YAAM,cAAc,YAAY;AArDtC;AAsDQ,kBAAM,oBAAM,OAAO,KAAK;AACxB,YAAI,CAAC,WAAW;AACd,kBAAQ,IAAI,oCAAoC,OAAO,KAAK,iBAAiB;AAC7E,uBAAO,WAAP;AAAA,QACF;AAAA,MACF;AACA,eAAS,KAAK,YAAY,CAAC;AAAA,IAC7B;AAEA,UAAM,MAAM,QAAQ,KAAK,QAAQ;AAEjC,QACG,KAAK,MAAM;AACV;AAAA,IACF,CAAC,EACA,MAAM,MAAM;AACX;AAAA,IACF,CAAC;AAAA,EACL;AACF;AAGO,IAAM,SAAS,CAAC,SAA2B,YAAkC;AAClF,gBAAc,OAAO,SAAS,OAAO;AACvC;","names":[]}
@@ -1,2 +0,0 @@
1
- export { forget, ForgetPromise } from './forget.ts';
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA"}
@@ -1,2 +0,0 @@
1
- export { forget, ForgetPromise } from './forget.ts';
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA"}
@@ -1,2 +0,0 @@
1
- export { forget, ForgetPromise } from './forget.ts';
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA"}
@@ -1,65 +0,0 @@
1
- // src/forget.ts
2
- import { delay } from "@xylabs/delay";
3
- var ForgetPromise = {
4
- get active() {
5
- return this.activeForgets > 0;
6
- },
7
- activeForgets: 0,
8
- async awaitInactive(interval = 100, timeout) {
9
- let timeoutRemaining = timeout;
10
- while (this.active) {
11
- await delay(interval);
12
- if (timeoutRemaining !== void 0) {
13
- timeoutRemaining -= interval;
14
- if (timeoutRemaining <= 0) {
15
- return this.activeForgets;
16
- }
17
- }
18
- }
19
- return 0;
20
- },
21
- /**
22
- * Used to explicitly launch an async function (or Promise) with awaiting it
23
- * @param promise The promise to forget
24
- * @param config Configuration of forget settings
25
- */
26
- forget(promise, config) {
27
- let completed = false;
28
- this.activeForgets++;
29
- const promiseWrapper = async () => {
30
- await promise.then(() => {
31
- this.activeForgets--;
32
- completed = true;
33
- }).catch(() => {
34
- this.activeForgets--;
35
- completed = true;
36
- });
37
- };
38
- const promises = [promiseWrapper()];
39
- if (config) {
40
- const timeoutFunc = async () => {
41
- var _a;
42
- await delay(config.delay);
43
- if (!completed) {
44
- console.log(`forget promise timeout out after ${config.delay}ms [Cancelling]`);
45
- (_a = config.cancel) == null ? void 0 : _a.call(config);
46
- }
47
- };
48
- promises.push(timeoutFunc());
49
- }
50
- const all = Promise.race(promises);
51
- all.then(() => {
52
- return;
53
- }).catch(() => {
54
- return;
55
- });
56
- }
57
- };
58
- var forget = (promise, timeout) => {
59
- ForgetPromise.forget(promise, timeout);
60
- };
61
- export {
62
- ForgetPromise,
63
- forget
64
- };
65
- //# sourceMappingURL=index.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/forget.ts"],"sourcesContent":["import { delay } from '@xylabs/delay'\n\nexport interface ForgetTimeoutConfig {\n cancel: () => void\n delay: number\n}\n\nexport const ForgetPromise = {\n get active() {\n return this.activeForgets > 0\n },\n\n activeForgets: 0,\n\n 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 /**\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 forget<T>(promise: Promise<T>, config?: ForgetTimeoutConfig) {\n let completed = false\n this.activeForgets++\n\n const promiseWrapper = async () => {\n await promise\n .then(() => {\n this.activeForgets--\n completed = true\n })\n .catch(() => {\n this.activeForgets--\n completed = true\n })\n }\n\n const promises = [promiseWrapper()]\n\n // if there is a timeout, add it to the race\n if (config) {\n const timeoutFunc = async () => {\n await delay(config.delay)\n if (!completed) {\n console.log(`forget promise timeout out after ${config.delay}ms [Cancelling]`)\n config.cancel?.()\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 },\n}\n\n// used to explicitly launch an async function (or Promise) with awaiting it\nexport const forget = (promise: Promise<unknown>, timeout?: ForgetTimeoutConfig) => {\n ForgetPromise.forget(promise, timeout)\n}\n"],"mappings":";AAAA,SAAS,aAAa;AAOf,IAAM,gBAAgB;AAAA,EAC3B,IAAI,SAAS;AACX,WAAO,KAAK,gBAAgB;AAAA,EAC9B;AAAA,EAEA,eAAe;AAAA,EAEf,MAAM,cAAc,WAAW,KAAK,SAAkB;AACpD,QAAI,mBAAmB;AACvB,WAAO,KAAK,QAAQ;AAClB,YAAM,MAAM,QAAQ;AACpB,UAAI,qBAAqB,QAAW;AAClC,4BAAoB;AACpB,YAAI,oBAAoB,GAAG;AACzB,iBAAO,KAAK;AAAA,QACd;AAAA,MACF;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,OAAU,SAAqB,QAA8B;AAC3D,QAAI,YAAY;AAChB,SAAK;AAEL,UAAM,iBAAiB,YAAY;AACjC,YAAM,QACH,KAAK,MAAM;AACV,aAAK;AACL,oBAAY;AAAA,MACd,CAAC,EACA,MAAM,MAAM;AACX,aAAK;AACL,oBAAY;AAAA,MACd,CAAC;AAAA,IACL;AAEA,UAAM,WAAW,CAAC,eAAe,CAAC;AAGlC,QAAI,QAAQ;AACV,YAAM,cAAc,YAAY;AArDtC;AAsDQ,cAAM,MAAM,OAAO,KAAK;AACxB,YAAI,CAAC,WAAW;AACd,kBAAQ,IAAI,oCAAoC,OAAO,KAAK,iBAAiB;AAC7E,uBAAO,WAAP;AAAA,QACF;AAAA,MACF;AACA,eAAS,KAAK,YAAY,CAAC;AAAA,IAC7B;AAEA,UAAM,MAAM,QAAQ,KAAK,QAAQ;AAEjC,QACG,KAAK,MAAM;AACV;AAAA,IACF,CAAC,EACA,MAAM,MAAM;AACX;AAAA,IACF,CAAC;AAAA,EACL;AACF;AAGO,IAAM,SAAS,CAAC,SAA2B,YAAkC;AAClF,gBAAc,OAAO,SAAS,OAAO;AACvC;","names":[]}