xflight 2.0.0 → 2.0.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 CHANGED
@@ -18,6 +18,10 @@
18
18
  npm install xflight
19
19
  ```
20
20
 
21
+ ## Requirements
22
+
23
+ This package requires **Node.js >= 20**.
24
+
21
25
  ## Usage
22
26
 
23
27
  ```js
@@ -0,0 +1,108 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const node_assert_1 = __importDefault(require("node:assert"));
7
+ const optional_require_1 = require("optional-require");
8
+ const getBluebirdPromiseImpl = () => (0, optional_require_1.optionalRequire)("bluebird", { default: globalThis.Promise });
9
+ const getAveazulPromiseImpl = () => (0, optional_require_1.optionalRequire)("aveazul", { default: globalThis.Promise });
10
+ class Inflight {
11
+ _count = 0;
12
+ _inflights = {};
13
+ Promise;
14
+ constructor(xPromise) {
15
+ this.Promise = xPromise || getBluebirdPromiseImpl() || getAveazulPromiseImpl();
16
+ }
17
+ promise(key, func) {
18
+ const f = this._inflights[key];
19
+ if (f) {
20
+ return f.value;
21
+ }
22
+ const remove = () => this.remove(key);
23
+ try {
24
+ const p = func();
25
+ (0, node_assert_1.default)(p && typeof p.then === "function", `xflight: func for key ${key} didn't return a promise`);
26
+ this.add(key, p).then(remove, remove);
27
+ return p;
28
+ }
29
+ catch (err) {
30
+ return this.Promise.reject(err);
31
+ }
32
+ }
33
+ add(key, value, now) {
34
+ (0, node_assert_1.default)(this._inflights[key] === undefined, `xflight: item ${key} already exist`);
35
+ this._count++;
36
+ now = now || Date.now();
37
+ this._inflights[key] = { start: now, lastXTime: now, value };
38
+ return value;
39
+ }
40
+ get(key) {
41
+ const x = this._inflights[key];
42
+ return x && x.value;
43
+ }
44
+ remove(key) {
45
+ (0, node_assert_1.default)(this._inflights[key] !== undefined, `xflight: removing non-existing item ${key}`);
46
+ (0, node_assert_1.default)(this._count > 0, `xflight: removing item ${key} but list is empty - count ${this._count}`);
47
+ this._count--;
48
+ if (this._count === 0) {
49
+ this._inflights = {};
50
+ }
51
+ else {
52
+ this._inflights[key] = undefined;
53
+ }
54
+ }
55
+ get isEmpty() {
56
+ return this._count === 0;
57
+ }
58
+ get count() {
59
+ return this._count;
60
+ }
61
+ getStartTime(key) {
62
+ const x = this._inflights[key];
63
+ return x && x.start;
64
+ }
65
+ time(key, now) {
66
+ const x = this._inflights[key];
67
+ if (x) {
68
+ return (now || Date.now()) - x.start;
69
+ }
70
+ return -1;
71
+ }
72
+ elapseTime(key, now) {
73
+ return this.time(key, now);
74
+ }
75
+ getCheckTime(key) {
76
+ const x = this._inflights[key];
77
+ return x && x.lastXTime;
78
+ }
79
+ lastCheckTime(key, now) {
80
+ const x = this._inflights[key];
81
+ if (x) {
82
+ const t = (now || Date.now()) - x.lastXTime;
83
+ return t;
84
+ }
85
+ return -1;
86
+ }
87
+ elapseCheckTime(key, now) {
88
+ return this.lastCheckTime(key, now);
89
+ }
90
+ resetCheckTime(key, now) {
91
+ if (key) {
92
+ const x = this._inflights[key];
93
+ if (x) {
94
+ x.lastXTime = now || Date.now();
95
+ }
96
+ }
97
+ else {
98
+ // If no key is provided, reset all
99
+ Object.values(this._inflights).forEach(x => {
100
+ if (x)
101
+ x.lastXTime = now || Date.now();
102
+ });
103
+ }
104
+ return this;
105
+ }
106
+ }
107
+ exports.default = Inflight;
108
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":["index.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -0,0 +1,20 @@
1
+ declare class Inflight<T = any> {
2
+ private _count;
3
+ private _inflights;
4
+ Promise: PromiseConstructor;
5
+ constructor(xPromise?: PromiseConstructor);
6
+ promise(key: string, func: () => Promise<T>): Promise<T>;
7
+ add(key: string, value: Promise<T>, now?: number): Promise<T>;
8
+ get(key: string): T | undefined;
9
+ remove(key: string): void;
10
+ get isEmpty(): boolean;
11
+ get count(): number;
12
+ getStartTime(key: string): number | undefined;
13
+ time(key: string, now?: number): number;
14
+ elapseTime(key: string, now?: number): number;
15
+ getCheckTime(key: string): number | undefined;
16
+ lastCheckTime(key: string, now?: number): number;
17
+ elapseCheckTime(key: string, now?: number): number;
18
+ resetCheckTime(key?: string, now?: number): this;
19
+ }
20
+ export default Inflight;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"root":["../src/index.ts"],"version":"5.8.3"}
@@ -0,0 +1,20 @@
1
+ declare class Inflight<T = any> {
2
+ private _count;
3
+ private _inflights;
4
+ Promise: PromiseConstructor;
5
+ constructor(xPromise?: PromiseConstructor);
6
+ promise(key: string, func: () => Promise<T>): Promise<T>;
7
+ add(key: string, value: Promise<T>, now?: number): Promise<T>;
8
+ get(key: string): T | undefined;
9
+ remove(key: string): void;
10
+ get isEmpty(): boolean;
11
+ get count(): number;
12
+ getStartTime(key: string): number | undefined;
13
+ time(key: string, now?: number): number;
14
+ elapseTime(key: string, now?: number): number;
15
+ getCheckTime(key: string): number | undefined;
16
+ lastCheckTime(key: string, now?: number): number;
17
+ elapseCheckTime(key: string, now?: number): number;
18
+ resetCheckTime(key?: string, now?: number): this;
19
+ }
20
+ export default Inflight;
@@ -0,0 +1,103 @@
1
+ import assert from "node:assert";
2
+ import { optionalRequire } from "optional-require";
3
+ const getBluebirdPromiseImpl = () => optionalRequire("bluebird", { default: globalThis.Promise });
4
+ const getAveazulPromiseImpl = () => optionalRequire("aveazul", { default: globalThis.Promise });
5
+ class Inflight {
6
+ _count = 0;
7
+ _inflights = {};
8
+ Promise;
9
+ constructor(xPromise) {
10
+ this.Promise = xPromise || getBluebirdPromiseImpl() || getAveazulPromiseImpl();
11
+ }
12
+ promise(key, func) {
13
+ const f = this._inflights[key];
14
+ if (f) {
15
+ return f.value;
16
+ }
17
+ const remove = () => this.remove(key);
18
+ try {
19
+ const p = func();
20
+ assert(p && typeof p.then === "function", `xflight: func for key ${key} didn't return a promise`);
21
+ this.add(key, p).then(remove, remove);
22
+ return p;
23
+ }
24
+ catch (err) {
25
+ return this.Promise.reject(err);
26
+ }
27
+ }
28
+ add(key, value, now) {
29
+ assert(this._inflights[key] === undefined, `xflight: item ${key} already exist`);
30
+ this._count++;
31
+ now = now || Date.now();
32
+ this._inflights[key] = { start: now, lastXTime: now, value };
33
+ return value;
34
+ }
35
+ get(key) {
36
+ const x = this._inflights[key];
37
+ return x && x.value;
38
+ }
39
+ remove(key) {
40
+ assert(this._inflights[key] !== undefined, `xflight: removing non-existing item ${key}`);
41
+ assert(this._count > 0, `xflight: removing item ${key} but list is empty - count ${this._count}`);
42
+ this._count--;
43
+ if (this._count === 0) {
44
+ this._inflights = {};
45
+ }
46
+ else {
47
+ this._inflights[key] = undefined;
48
+ }
49
+ }
50
+ get isEmpty() {
51
+ return this._count === 0;
52
+ }
53
+ get count() {
54
+ return this._count;
55
+ }
56
+ getStartTime(key) {
57
+ const x = this._inflights[key];
58
+ return x && x.start;
59
+ }
60
+ time(key, now) {
61
+ const x = this._inflights[key];
62
+ if (x) {
63
+ return (now || Date.now()) - x.start;
64
+ }
65
+ return -1;
66
+ }
67
+ elapseTime(key, now) {
68
+ return this.time(key, now);
69
+ }
70
+ getCheckTime(key) {
71
+ const x = this._inflights[key];
72
+ return x && x.lastXTime;
73
+ }
74
+ lastCheckTime(key, now) {
75
+ const x = this._inflights[key];
76
+ if (x) {
77
+ const t = (now || Date.now()) - x.lastXTime;
78
+ return t;
79
+ }
80
+ return -1;
81
+ }
82
+ elapseCheckTime(key, now) {
83
+ return this.lastCheckTime(key, now);
84
+ }
85
+ resetCheckTime(key, now) {
86
+ if (key) {
87
+ const x = this._inflights[key];
88
+ if (x) {
89
+ x.lastXTime = now || Date.now();
90
+ }
91
+ }
92
+ else {
93
+ // If no key is provided, reset all
94
+ Object.values(this._inflights).forEach(x => {
95
+ if (x)
96
+ x.lastXTime = now || Date.now();
97
+ });
98
+ }
99
+ return this;
100
+ }
101
+ }
102
+ export default Inflight;
103
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"root":["../src/index.ts"],"version":"5.8.3"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "xflight",
3
- "version": "2.0.0",
3
+ "version": "2.0.2",
4
4
  "description": "Handle inflight promise to avoid async duplication",
5
5
  "type": "module",
6
6
  "exports": {
@@ -20,7 +20,9 @@
20
20
  "url": "https://github.com/jchip/xflight.git"
21
21
  },
22
22
  "files": [
23
- "lib"
23
+ "lib",
24
+ "dist-esm",
25
+ "dist-cjs"
24
26
  ],
25
27
  "keywords": [
26
28
  "inflight",
@@ -60,5 +62,8 @@
60
62
  "functions": 100,
61
63
  "lines": 100,
62
64
  "cache": true
65
+ },
66
+ "engines": {
67
+ "node": ">=20"
63
68
  }
64
69
  }