@ndriadev/futurable 2.2.2 → 2.3.0
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 +6 -5
- package/dist/futurable.cjs +1 -1
- package/dist/futurable.mjs +151 -142
- package/dist/index.d.ts +5 -4
- package/dist/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/scripts/copy-resources.js +22 -3
package/README.md
CHANGED
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
- [Futurable.allSettled](#futurableallsettledvalues-t-signal-abortsignal)
|
|
50
50
|
- [Futurable.any](#futurableanyvalues-t-signal-abortsignal)
|
|
51
51
|
- [Futurable.race](#futurableracevalues-t-signal-abortsignal)
|
|
52
|
-
- [Futurable.polling](#futurablepollingvalue--futurable--interval-signal-interval-number-signal-abortsignal)
|
|
52
|
+
- [Futurable.polling](#futurablepollingvalue--futurable--interval-signal-immediate-interval-number-signal-abortsignal-immediate-boolean)
|
|
53
53
|
- [Futurable.withResolvers](#futurablewithresolverssignal-abortsignal)
|
|
54
54
|
- [ToDo](#TODO)
|
|
55
55
|
- [License](#License)
|
|
@@ -69,7 +69,6 @@ npm install futurable # or yarn add futurable or pnpm add futurable
|
|
|
69
69
|
|
|
70
70
|
```
|
|
71
71
|
|
|
72
|
-
|
|
73
72
|
# Usage
|
|
74
73
|
The library supports both ESM and CJS formats, so it can be used as follows:
|
|
75
74
|
```javascript
|
|
@@ -124,6 +123,7 @@ export default function Component() {
|
|
|
124
123
|
}
|
|
125
124
|
```
|
|
126
125
|
|
|
126
|
+
|
|
127
127
|
# API
|
|
128
128
|
The methods implemented, excluding those that are by nature static can be used:
|
|
129
129
|
- During the construction of the futurable using the ***new*** operator;
|
|
@@ -145,7 +145,7 @@ They are the following:
|
|
|
145
145
|
- [Futurable.allSettled](#futurableallsettledvalues-t-signal-abortsignal)
|
|
146
146
|
- [Futurable.any](#futurableanyvalues-t-signal-abortsignal)
|
|
147
147
|
- [Futurable.race](#futurableracevalues-t-signal-abortsignal)
|
|
148
|
-
- [Futurable.polling](#futurablepollingvalue--futurable--interval-signal-interval-number-signal-abortsignal)
|
|
148
|
+
- [Futurable.polling](#futurablepollingvalue--futurable--interval-signal-immediate-interval-number-signal-abortsignal-immediate-boolean)
|
|
149
149
|
- [Futurable.withResolvers](#futurablewithresolverssignal-abortsignal)
|
|
150
150
|
|
|
151
151
|
### constructor(executor: FuturableExecutor<T>, signal?: AbortSignal)
|
|
@@ -600,8 +600,8 @@ const f = Futurable.race([
|
|
|
600
600
|
f.cancel();
|
|
601
601
|
```
|
|
602
602
|
|
|
603
|
-
### Futurable.polling<T>(value: ()=> Futurable<T>, { interval, signal }:{interval: number, signal?: AbortSignal})
|
|
604
|
-
Creates a polling service with cancellation support and possibility to handle error.
|
|
603
|
+
### Futurable.polling<T>(value: ()=> Futurable<T>, { interval, signal, immediate }:{interval: number, signal?: AbortSignal, immediate?: boolean})
|
|
604
|
+
Creates a polling service with cancellation support and possibility to handle error. An optional param __immediate__ can be set _true_ if __fun__ must to be invoke immediatly.
|
|
605
605
|
|
|
606
606
|
*Example*
|
|
607
607
|
```javascript
|
|
@@ -630,6 +630,7 @@ const result = await promise;
|
|
|
630
630
|
resolve("resolved");
|
|
631
631
|
```
|
|
632
632
|
|
|
633
|
+
|
|
633
634
|
# ToDo
|
|
634
635
|
- Extends fetch api support to third library like axios.
|
|
635
636
|
- Implement promise cache.
|
package/dist/futurable.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var T=Object.defineProperty;var C=(
|
|
1
|
+
"use strict";var T=Object.defineProperty;var C=(u,m,t)=>m in u?T(u,m,{enumerable:!0,configurable:!0,writable:!0,value:t}):u[m]=t;var S=(u,m,t)=>(C(u,typeof m!="symbol"?m+"":m,t),t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});class l extends Promise{constructor(t,e){const c=e?null:new AbortController,n=e||c.signal,o=[],r=()=>{for(const s of o)clearTimeout(s)};let i;const a={signal:n,cancel:()=>{var s;return(s=this.controller)==null?void 0:s.abort()},onCancel:s=>{i=s},delay:(s,f)=>new l(w=>{o.push(setTimeout(()=>{w(s())},f))},n),sleep:s=>a.delay(()=>{},s),fetch:(s,f)=>new l((w,p)=>{fetch(s,{...f||{},signal:n}).then(y=>w(y)).catch(y=>{y.name!=="AbortError"&&p(y)})},n),futurizable:s=>new l((f,w)=>{s.then(f).catch(w)},n)};let d="pending";const g=new Promise((s,f)=>{if(n.aborted){r();return}else{const w=typeof n.onabort=="function"?n.onabort:()=>{};n.onabort=()=>{w(),r(),d==="pending"&&i&&i()},t(j=>{d="fulfilled",s(j)},j=>{d="rejected",f(j)},a)}});super((s,f)=>{g.then(w=>s(w)).catch(f)});S(this,"controller");S(this,"internalSignal");S(this,"idsTimeout");this.controller=c,this.internalSignal=n,this.idsTimeout=o}static get[Symbol.species](){return this}get[Symbol.toStringTag](){return"Futurable"}get signal(){return this.internalSignal}clearTimeout(){for(const t of this.idsTimeout)clearTimeout(t)}then(t,e){let c,n;const o=new l((r,i)=>{c=r,n=i},this.internalSignal);return o.controller=this.controller,super.then(r=>{var i;if((i=this.internalSignal)!=null&&i.aborted){this.clearTimeout();return}try{c(t?t(r):r)}catch(h){n(h)}},r=>{var i;if((i=this.internalSignal)!=null&&i.aborted){this.clearTimeout();return}try{e?c(e(r)):n(r)}catch(h){n(h)}}),o}catch(t){return this.then(null,t)}finally(t){return this.then(e=>(t(),e),e=>{if(t(),e instanceof Error)throw e;return e})}cancel(){var t,e;!((t=this.internalSignal)!=null&&t.aborted)&&((e=this.controller)==null||e.abort())}delay(t,e){let c,n;const o=new l((r,i)=>{c=r,n=i},this.internalSignal);return o.controller=this.controller,this.then(r=>{this.idsTimeout.push(setTimeout(()=>c(t(r)),e))},r=>{n(r)}),o}sleep(t){return this.delay(e=>e,t)}fetch(t,e){let c,n;const o=new l((r,i)=>{c=r,n=i},this.internalSignal);return o.controller=this.controller,this.then(r=>{const i=typeof t=="function"?t(r):t,h={...typeof e=="function"?e(r):e,signal:this.internalSignal};fetch(i,h).then(a=>c(a)).catch(a=>{a.name!=="AbortError"&&n(a)})}),o}onCancel(t){let e,c;const n=new l((o,r,i)=>{i.onCancel(t),e=o,c=r},this.internalSignal);return n.controller=this.controller,this.then(o=>e(o),o=>c(o)),n}futurizable(t){let e,c;const n=new l((o,r)=>{e=o,c=r},this.internalSignal);return n.controller=this.controller,this.then(o=>{(typeof t=="function"?t(o):t).then(e).catch(c)}),n}static resolve(t,e){return t?new l(c=>c(t),e):new l(c=>c(),e)}static reject(t,e){return new l((c,n)=>n(t),e)}static onCancel({cb:t,signal:e}){return new l((c,n,o)=>{o.onCancel(()=>c(t()))},e)}static delay({cb:t,timer:e,signal:c}){return new l((n,o,r)=>{r.delay(t,e).then(n,o)},c)}static sleep({timer:t,signal:e}){return l.delay({cb:()=>{},timer:t,signal:e})}static fetch(t,e){const c=(e==null?void 0:e.signal)||void 0;return e!=null&&e.signal&&delete e.signal,new l((n,o,r)=>{r.fetch(t,e).then(n)},c)}static futurizable({promise:t,signal:e}){return new l((c,n)=>{t.then(c).catch(n)},e)}static handleValues(t,e){const c=[];for(const n in t)t[n]instanceof l?c.push(t[n]):t[n]instanceof Promise?c.push(new l((o,r)=>{t[n].then(i=>o(i)).catch(r)},e)):c.push(new l(o=>o(t[n]),e));return c}static all(t,e){let c,n;const o=new l((i,h,a)=>{c=i,n=h,a.onCancel(()=>{for(const d of r)d.cancel()})},e);e||(e=o.internalSignal);const r=l.handleValues(t,e);return super.all(r).then(i=>c(i)).catch(i=>n(i)),o}static allSettled(t,e){let c;const n=new l((r,i,h)=>{c=r,h.onCancel(()=>{for(const a of o)a.cancel()})},e);e||(e=n.internalSignal);const o=l.handleValues(t,e);return super.allSettled(o).then(r=>c(r)),n}static race(t,e){let c,n;const o=new l((i,h,a)=>{c=i,n=h,a.onCancel(()=>{for(const d of r)d.cancel()})},e);e||(e=o.internalSignal);const r=l.handleValues(t,e);return super.race(r).then(i=>c(i)).catch(i=>n(i)),o}static any(t,e){let c,n;const o=new l((i,h,a)=>{c=i,n=h,a.onCancel(()=>{for(const d of r)d.cancel()})},e);e||(e=o.internalSignal);const r=l.handleValues(t,e);return super.any(r).then(i=>c(i)).catch(i=>n(i)),o}static polling(t,{interval:e,signal:c,immediate:n}){let o,r,i;n&&(o=new l((a,d,g)=>{g.onCancel(()=>{r&&r instanceof l&&r.cancel()});const s=t();(s instanceof l||s instanceof Promise)&&(r=s.then(()=>a()).catch(f=>i&&i(f)))},c));const h=setInterval(()=>{o&&o.cancel(),o=new l((a,d,g)=>{g.onCancel(()=>{r&&r instanceof l&&r.cancel()});const s=t();(s instanceof l||s instanceof Promise)&&(r=s.then(()=>a()).catch(f=>i&&i(f)))},c)},e);return{cancel:()=>{h&&clearInterval(h),o&&o.cancel()},catch:a=>{i=a}}}static withResolvers(t){let e,c,n;const o=new l((i,h,a)=>{e=i,c=h,n=a},t),r=o.cancel;return{resolve:e,reject:c,utils:n,cancel:r,promise:o}}}exports.Futurable=l;
|
package/dist/futurable.mjs
CHANGED
|
@@ -1,62 +1,62 @@
|
|
|
1
1
|
var T = Object.defineProperty;
|
|
2
|
-
var C = (g,
|
|
3
|
-
var
|
|
4
|
-
class
|
|
2
|
+
var C = (g, m, t) => m in g ? T(g, m, { enumerable: !0, configurable: !0, writable: !0, value: t }) : g[m] = t;
|
|
3
|
+
var S = (g, m, t) => (C(g, typeof m != "symbol" ? m + "" : m, t), t);
|
|
4
|
+
class s extends Promise {
|
|
5
5
|
constructor(t, e) {
|
|
6
|
-
const
|
|
7
|
-
for (const
|
|
8
|
-
clearTimeout(
|
|
6
|
+
const c = e ? null : new AbortController(), n = e || c.signal, o = [], r = () => {
|
|
7
|
+
for (const l of o)
|
|
8
|
+
clearTimeout(l);
|
|
9
9
|
};
|
|
10
|
-
let
|
|
10
|
+
let i;
|
|
11
11
|
const a = {
|
|
12
12
|
signal: n,
|
|
13
13
|
cancel: () => {
|
|
14
|
-
var
|
|
15
|
-
return (
|
|
14
|
+
var l;
|
|
15
|
+
return (l = this.controller) == null ? void 0 : l.abort();
|
|
16
16
|
},
|
|
17
|
-
onCancel: (
|
|
18
|
-
|
|
17
|
+
onCancel: (l) => {
|
|
18
|
+
i = l;
|
|
19
19
|
},
|
|
20
|
-
delay: (
|
|
20
|
+
delay: (l, f) => new s((w) => {
|
|
21
21
|
o.push(setTimeout(() => {
|
|
22
|
-
|
|
23
|
-
},
|
|
22
|
+
w(l());
|
|
23
|
+
}, f));
|
|
24
24
|
}, n),
|
|
25
|
-
sleep: (
|
|
26
|
-
},
|
|
27
|
-
fetch: (
|
|
28
|
-
fetch(
|
|
29
|
-
|
|
25
|
+
sleep: (l) => a.delay(() => {
|
|
26
|
+
}, l),
|
|
27
|
+
fetch: (l, f) => new s((w, j) => {
|
|
28
|
+
fetch(l, { ...f || {}, signal: n }).then((u) => w(u)).catch((u) => {
|
|
29
|
+
u.name !== "AbortError" && j(u);
|
|
30
30
|
});
|
|
31
31
|
}, n),
|
|
32
|
-
futurizable: (
|
|
33
|
-
|
|
32
|
+
futurizable: (l) => new s((f, w) => {
|
|
33
|
+
l.then(f).catch(w);
|
|
34
34
|
}, n)
|
|
35
35
|
};
|
|
36
|
-
let
|
|
37
|
-
const
|
|
36
|
+
let d = "pending";
|
|
37
|
+
const y = new Promise((l, f) => {
|
|
38
38
|
if (n.aborted) {
|
|
39
|
-
|
|
39
|
+
r();
|
|
40
40
|
return;
|
|
41
41
|
} else {
|
|
42
|
-
const
|
|
42
|
+
const w = typeof n.onabort == "function" ? n.onabort : () => {
|
|
43
43
|
};
|
|
44
44
|
n.onabort = () => {
|
|
45
|
-
|
|
46
|
-
}, t((
|
|
47
|
-
|
|
48
|
-
}, (
|
|
49
|
-
|
|
45
|
+
w(), r(), d === "pending" && i && i();
|
|
46
|
+
}, t((p) => {
|
|
47
|
+
d = "fulfilled", l(p);
|
|
48
|
+
}, (p) => {
|
|
49
|
+
d = "rejected", f(p);
|
|
50
50
|
}, a);
|
|
51
51
|
}
|
|
52
52
|
});
|
|
53
|
-
super((
|
|
54
|
-
|
|
53
|
+
super((l, f) => {
|
|
54
|
+
y.then((w) => l(w)).catch(f);
|
|
55
55
|
});
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
this.controller =
|
|
56
|
+
S(this, "controller");
|
|
57
|
+
S(this, "internalSignal");
|
|
58
|
+
S(this, "idsTimeout");
|
|
59
|
+
this.controller = c, this.internalSignal = n, this.idsTimeout = o;
|
|
60
60
|
}
|
|
61
61
|
static get [Symbol.species]() {
|
|
62
62
|
return this;
|
|
@@ -82,31 +82,31 @@ class i extends Promise {
|
|
|
82
82
|
* @returns {Futurable<TResult1 | TResult2>}
|
|
83
83
|
*/
|
|
84
84
|
then(t, e) {
|
|
85
|
-
let
|
|
86
|
-
const o = new
|
|
87
|
-
|
|
85
|
+
let c, n;
|
|
86
|
+
const o = new s((r, i) => {
|
|
87
|
+
c = r, n = i;
|
|
88
88
|
}, this.internalSignal);
|
|
89
|
-
return o.controller = this.controller, super.then((
|
|
90
|
-
var
|
|
91
|
-
if ((
|
|
89
|
+
return o.controller = this.controller, super.then((r) => {
|
|
90
|
+
var i;
|
|
91
|
+
if ((i = this.internalSignal) != null && i.aborted) {
|
|
92
92
|
this.clearTimeout();
|
|
93
93
|
return;
|
|
94
94
|
}
|
|
95
95
|
try {
|
|
96
|
-
|
|
97
|
-
} catch (
|
|
98
|
-
n(
|
|
96
|
+
c(t ? t(r) : r);
|
|
97
|
+
} catch (h) {
|
|
98
|
+
n(h);
|
|
99
99
|
}
|
|
100
|
-
}, (
|
|
101
|
-
var
|
|
102
|
-
if ((
|
|
100
|
+
}, (r) => {
|
|
101
|
+
var i;
|
|
102
|
+
if ((i = this.internalSignal) != null && i.aborted) {
|
|
103
103
|
this.clearTimeout();
|
|
104
104
|
return;
|
|
105
105
|
}
|
|
106
106
|
try {
|
|
107
|
-
e ?
|
|
108
|
-
} catch (
|
|
109
|
-
n(
|
|
107
|
+
e ? c(e(r)) : n(r);
|
|
108
|
+
} catch (h) {
|
|
109
|
+
n(h);
|
|
110
110
|
}
|
|
111
111
|
}), o;
|
|
112
112
|
}
|
|
@@ -147,16 +147,16 @@ class i extends Promise {
|
|
|
147
147
|
* @param {number} timer - timer to wait (in milliseconds)
|
|
148
148
|
*/
|
|
149
149
|
delay(t, e) {
|
|
150
|
-
let
|
|
151
|
-
const o = new
|
|
152
|
-
|
|
150
|
+
let c, n;
|
|
151
|
+
const o = new s((r, i) => {
|
|
152
|
+
c = r, n = i;
|
|
153
153
|
}, this.internalSignal);
|
|
154
154
|
return o.controller = this.controller, this.then(
|
|
155
|
-
(
|
|
156
|
-
this.idsTimeout.push(setTimeout(() =>
|
|
155
|
+
(r) => {
|
|
156
|
+
this.idsTimeout.push(setTimeout(() => c(t(r)), e));
|
|
157
157
|
},
|
|
158
|
-
(
|
|
159
|
-
n(
|
|
158
|
+
(r) => {
|
|
159
|
+
n(r);
|
|
160
160
|
}
|
|
161
161
|
), o;
|
|
162
162
|
}
|
|
@@ -175,13 +175,13 @@ class i extends Promise {
|
|
|
175
175
|
* @returns {Futurable<Response>}
|
|
176
176
|
*/
|
|
177
177
|
fetch(t, e) {
|
|
178
|
-
let
|
|
179
|
-
const o = new
|
|
180
|
-
|
|
178
|
+
let c, n;
|
|
179
|
+
const o = new s((r, i) => {
|
|
180
|
+
c = r, n = i;
|
|
181
181
|
}, this.internalSignal);
|
|
182
|
-
return o.controller = this.controller, this.then((
|
|
183
|
-
const
|
|
184
|
-
fetch(
|
|
182
|
+
return o.controller = this.controller, this.then((r) => {
|
|
183
|
+
const i = typeof t == "function" ? t(r) : t, h = { ...typeof e == "function" ? e(r) : e, signal: this.internalSignal };
|
|
184
|
+
fetch(i, h).then((a) => c(a)).catch((a) => {
|
|
185
185
|
a.name !== "AbortError" && n(a);
|
|
186
186
|
});
|
|
187
187
|
}), o;
|
|
@@ -192,13 +192,13 @@ class i extends Promise {
|
|
|
192
192
|
* @returns {Futurable<TResult1 | TResult2>}
|
|
193
193
|
*/
|
|
194
194
|
onCancel(t) {
|
|
195
|
-
let e,
|
|
196
|
-
const n = new
|
|
197
|
-
|
|
195
|
+
let e, c;
|
|
196
|
+
const n = new s((o, r, i) => {
|
|
197
|
+
i.onCancel(t), e = o, c = r;
|
|
198
198
|
}, this.internalSignal);
|
|
199
199
|
return n.controller = this.controller, this.then(
|
|
200
200
|
(o) => e(o),
|
|
201
|
-
(o) =>
|
|
201
|
+
(o) => c(o)
|
|
202
202
|
), n;
|
|
203
203
|
}
|
|
204
204
|
/**
|
|
@@ -207,12 +207,12 @@ class i extends Promise {
|
|
|
207
207
|
* @returns {Futurable<TResult1 | TResult2>}
|
|
208
208
|
*/
|
|
209
209
|
futurizable(t) {
|
|
210
|
-
let e,
|
|
211
|
-
const n = new
|
|
212
|
-
e = o,
|
|
210
|
+
let e, c;
|
|
211
|
+
const n = new s((o, r) => {
|
|
212
|
+
e = o, c = r;
|
|
213
213
|
}, this.internalSignal);
|
|
214
214
|
return n.controller = this.controller, this.then((o) => {
|
|
215
|
-
(typeof t == "function" ? t(o) : t).then(e).catch(
|
|
215
|
+
(typeof t == "function" ? t(o) : t).then(e).catch(c);
|
|
216
216
|
}), n;
|
|
217
217
|
}
|
|
218
218
|
/**
|
|
@@ -221,7 +221,7 @@ class i extends Promise {
|
|
|
221
221
|
* @returns {Futurable<T|void>}
|
|
222
222
|
*/
|
|
223
223
|
static resolve(t, e) {
|
|
224
|
-
return t ? new
|
|
224
|
+
return t ? new s((c) => c(t), e) : new s((c) => c(), e);
|
|
225
225
|
}
|
|
226
226
|
/**
|
|
227
227
|
* Creates a new rejected futurable for the provided reason.
|
|
@@ -230,7 +230,7 @@ class i extends Promise {
|
|
|
230
230
|
* @returns {Futurable<T>}
|
|
231
231
|
*/
|
|
232
232
|
static reject(t, e) {
|
|
233
|
-
return new
|
|
233
|
+
return new s((c, n) => n(t), e);
|
|
234
234
|
}
|
|
235
235
|
/**
|
|
236
236
|
* OnCancel static method. It accepts a callback or a object with cb property and an optional signal.
|
|
@@ -238,8 +238,8 @@ class i extends Promise {
|
|
|
238
238
|
* @returns {Futurable<T>}
|
|
239
239
|
*/
|
|
240
240
|
static onCancel({ cb: t, signal: e }) {
|
|
241
|
-
return new
|
|
242
|
-
o.onCancel(() =>
|
|
241
|
+
return new s((c, n, o) => {
|
|
242
|
+
o.onCancel(() => c(t()));
|
|
243
243
|
}, e);
|
|
244
244
|
}
|
|
245
245
|
/**
|
|
@@ -247,10 +247,10 @@ class i extends Promise {
|
|
|
247
247
|
* @param {{cb: () => T, timer: number, signal: AbortSignal|undefined}} options
|
|
248
248
|
* @returns {Futurable<T|TResult2>}
|
|
249
249
|
*/
|
|
250
|
-
static delay({ cb: t, timer: e, signal:
|
|
251
|
-
return new
|
|
252
|
-
|
|
253
|
-
},
|
|
250
|
+
static delay({ cb: t, timer: e, signal: c }) {
|
|
251
|
+
return new s((n, o, r) => {
|
|
252
|
+
r.delay(t, e).then(n, o);
|
|
253
|
+
}, c);
|
|
254
254
|
}
|
|
255
255
|
/**
|
|
256
256
|
* Sleep static method. It accepts a timer or a object with timer property and an optional signal.
|
|
@@ -258,7 +258,7 @@ class i extends Promise {
|
|
|
258
258
|
* @returns {Futurable<void>}
|
|
259
259
|
*/
|
|
260
260
|
static sleep({ timer: t, signal: e }) {
|
|
261
|
-
return
|
|
261
|
+
return s.delay({
|
|
262
262
|
cb: () => {
|
|
263
263
|
},
|
|
264
264
|
timer: t,
|
|
@@ -272,10 +272,10 @@ class i extends Promise {
|
|
|
272
272
|
* @returns {Futurable<Response>}
|
|
273
273
|
*/
|
|
274
274
|
static fetch(t, e) {
|
|
275
|
-
const
|
|
276
|
-
return e != null && e.signal && delete e.signal, new
|
|
277
|
-
|
|
278
|
-
},
|
|
275
|
+
const c = (e == null ? void 0 : e.signal) || void 0;
|
|
276
|
+
return e != null && e.signal && delete e.signal, new s((n, o, r) => {
|
|
277
|
+
r.fetch(t, e).then(n);
|
|
278
|
+
}, c);
|
|
279
279
|
}
|
|
280
280
|
/**
|
|
281
281
|
* Futurizable static method.
|
|
@@ -283,27 +283,27 @@ class i extends Promise {
|
|
|
283
283
|
* @returns {Futurable<TResult1 | TResult2>}
|
|
284
284
|
*/
|
|
285
285
|
static futurizable({ promise: t, signal: e }) {
|
|
286
|
-
return new
|
|
287
|
-
t.then(
|
|
286
|
+
return new s((c, n) => {
|
|
287
|
+
t.then(c).catch(n);
|
|
288
288
|
}, e);
|
|
289
289
|
}
|
|
290
290
|
static handleValues(t, e) {
|
|
291
|
-
const
|
|
291
|
+
const c = [];
|
|
292
292
|
for (const n in t)
|
|
293
|
-
t[n] instanceof
|
|
294
|
-
new
|
|
295
|
-
(o,
|
|
296
|
-
t[n].then((
|
|
293
|
+
t[n] instanceof s ? c.push(t[n]) : t[n] instanceof Promise ? c.push(
|
|
294
|
+
new s(
|
|
295
|
+
(o, r) => {
|
|
296
|
+
t[n].then((i) => o(i)).catch(r);
|
|
297
297
|
},
|
|
298
298
|
e
|
|
299
299
|
)
|
|
300
|
-
) :
|
|
301
|
-
new
|
|
300
|
+
) : c.push(
|
|
301
|
+
new s(
|
|
302
302
|
(o) => o(t[n]),
|
|
303
303
|
e
|
|
304
304
|
)
|
|
305
305
|
);
|
|
306
|
-
return
|
|
306
|
+
return c;
|
|
307
307
|
}
|
|
308
308
|
/**
|
|
309
309
|
* Creates a Futurable with cancellation support that is resolved with an array of results when all of the provided Futurables resolve, or rejected when any Futurable is rejected.
|
|
@@ -312,16 +312,16 @@ class i extends Promise {
|
|
|
312
312
|
* @returns {Futurable<{ -readonly [P in keyof T]: Awaited<T[P]>; }>}
|
|
313
313
|
*/
|
|
314
314
|
static all(t, e) {
|
|
315
|
-
let
|
|
316
|
-
const o = new
|
|
317
|
-
|
|
318
|
-
for (const
|
|
319
|
-
|
|
315
|
+
let c, n;
|
|
316
|
+
const o = new s((i, h, a) => {
|
|
317
|
+
c = i, n = h, a.onCancel(() => {
|
|
318
|
+
for (const d of r)
|
|
319
|
+
d.cancel();
|
|
320
320
|
});
|
|
321
321
|
}, e);
|
|
322
322
|
e || (e = o.internalSignal);
|
|
323
|
-
const
|
|
324
|
-
return super.all(
|
|
323
|
+
const r = s.handleValues(t, e);
|
|
324
|
+
return super.all(r).then((i) => c(i)).catch((i) => n(i)), o;
|
|
325
325
|
}
|
|
326
326
|
/**
|
|
327
327
|
* Creates a Futurable with cancellation support that is resolved with an array of results when all of the provided Futurables resolve or reject.
|
|
@@ -330,16 +330,16 @@ class i extends Promise {
|
|
|
330
330
|
* @returns {Futurable<{ -readonly [P in keyof T]: PromiseSettledResult<Awaited<T[P]>> }>}
|
|
331
331
|
*/
|
|
332
332
|
static allSettled(t, e) {
|
|
333
|
-
let
|
|
334
|
-
const n = new
|
|
335
|
-
|
|
333
|
+
let c;
|
|
334
|
+
const n = new s((r, i, h) => {
|
|
335
|
+
c = r, h.onCancel(() => {
|
|
336
336
|
for (const a of o)
|
|
337
337
|
a.cancel();
|
|
338
338
|
});
|
|
339
339
|
}, e);
|
|
340
340
|
e || (e = n.internalSignal);
|
|
341
|
-
const o =
|
|
342
|
-
return super.allSettled(o).then((
|
|
341
|
+
const o = s.handleValues(t, e);
|
|
342
|
+
return super.allSettled(o).then((r) => c(r)), n;
|
|
343
343
|
}
|
|
344
344
|
/**
|
|
345
345
|
* Creates a Futurable with cancellation support that is resolved or rejected when any of the provided Futurables are resolved or rejected.
|
|
@@ -348,16 +348,16 @@ class i extends Promise {
|
|
|
348
348
|
* @returns {Futurable<Awaited<T[number]>>}
|
|
349
349
|
*/
|
|
350
350
|
static race(t, e) {
|
|
351
|
-
let
|
|
352
|
-
const o = new
|
|
353
|
-
|
|
354
|
-
for (const
|
|
355
|
-
|
|
351
|
+
let c, n;
|
|
352
|
+
const o = new s((i, h, a) => {
|
|
353
|
+
c = i, n = h, a.onCancel(() => {
|
|
354
|
+
for (const d of r)
|
|
355
|
+
d.cancel();
|
|
356
356
|
});
|
|
357
357
|
}, e);
|
|
358
358
|
e || (e = o.internalSignal);
|
|
359
|
-
const
|
|
360
|
-
return super.race(
|
|
359
|
+
const r = s.handleValues(t, e);
|
|
360
|
+
return super.race(r).then((i) => c(i)).catch((i) => n(i)), o;
|
|
361
361
|
}
|
|
362
362
|
/**
|
|
363
363
|
* The any function returns a futurable with cancellation support that is fulfilled by the first given futurable to be fulfilled,
|
|
@@ -369,38 +369,47 @@ class i extends Promise {
|
|
|
369
369
|
* @returns {Futurable<Awaited<T[number]>>}
|
|
370
370
|
*/
|
|
371
371
|
static any(t, e) {
|
|
372
|
-
let
|
|
373
|
-
const o = new
|
|
374
|
-
|
|
375
|
-
for (const
|
|
376
|
-
|
|
372
|
+
let c, n;
|
|
373
|
+
const o = new s((i, h, a) => {
|
|
374
|
+
c = i, n = h, a.onCancel(() => {
|
|
375
|
+
for (const d of r)
|
|
376
|
+
d.cancel();
|
|
377
377
|
});
|
|
378
378
|
}, e);
|
|
379
379
|
e || (e = o.internalSignal);
|
|
380
|
-
const
|
|
381
|
-
return super.any(
|
|
380
|
+
const r = s.handleValues(t, e);
|
|
381
|
+
return super.any(r).then((i) => c(i)).catch((i) => n(i)), o;
|
|
382
382
|
}
|
|
383
383
|
/**
|
|
384
|
-
* Creates a polling service with cancellation support and possibility to handle error.
|
|
385
|
-
* @param {()=> Futurable<T>}
|
|
386
|
-
* @param {{interval: number, signal?: AbortSignal}} options
|
|
384
|
+
* Creates a polling service with cancellation support and possibility to handle error. An optional param __immediate__ can be set _true_ if __fun__ must to be invoke immediatly.
|
|
385
|
+
* @param {()=> Futurable<T>} fun
|
|
386
|
+
* @param {{interval: number, signal?: AbortSignal, immediate?: boolean}} options
|
|
387
387
|
* @returns {{cancel: () => void, catch: (onrejected:(reason: unknown)=>void)=>void }}
|
|
388
388
|
*/
|
|
389
|
-
static polling(t, { interval: e, signal:
|
|
390
|
-
let
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
389
|
+
static polling(t, { interval: e, signal: c, immediate: n }) {
|
|
390
|
+
let o, r, i;
|
|
391
|
+
n && (o = new s((a, d, y) => {
|
|
392
|
+
y.onCancel(() => {
|
|
393
|
+
r && r instanceof s && r.cancel();
|
|
394
|
+
});
|
|
395
|
+
const l = t();
|
|
396
|
+
(l instanceof s || l instanceof Promise) && (r = l.then(() => a()).catch((f) => i && i(f)));
|
|
397
|
+
}, c));
|
|
398
|
+
const h = setInterval(() => {
|
|
399
|
+
o && o.cancel(), o = new s((a, d, y) => {
|
|
400
|
+
y.onCancel(() => {
|
|
401
|
+
r && r instanceof s && r.cancel();
|
|
402
|
+
});
|
|
403
|
+
const l = t();
|
|
404
|
+
(l instanceof s || l instanceof Promise) && (r = l.then(() => a()).catch((f) => i && i(f)));
|
|
405
|
+
}, c);
|
|
397
406
|
}, e);
|
|
398
407
|
return {
|
|
399
408
|
cancel: () => {
|
|
400
|
-
|
|
409
|
+
h && clearInterval(h), o && o.cancel();
|
|
401
410
|
},
|
|
402
|
-
catch: (
|
|
403
|
-
|
|
411
|
+
catch: (a) => {
|
|
412
|
+
i = a;
|
|
404
413
|
}
|
|
405
414
|
};
|
|
406
415
|
}
|
|
@@ -410,19 +419,19 @@ class i extends Promise {
|
|
|
410
419
|
* @returns {{ resolve: null | FuturableResolve<T>, reject: null | FuturableReject, utils: null | FuturableUtils<T>, futurable: Futurable<T>, cancel: null | (() => void) }}
|
|
411
420
|
*/
|
|
412
421
|
static withResolvers(t) {
|
|
413
|
-
let e,
|
|
414
|
-
const o = new
|
|
415
|
-
e =
|
|
416
|
-
}, t),
|
|
422
|
+
let e, c, n;
|
|
423
|
+
const o = new s((i, h, a) => {
|
|
424
|
+
e = i, c = h, n = a;
|
|
425
|
+
}, t), r = o.cancel;
|
|
417
426
|
return {
|
|
418
427
|
resolve: e,
|
|
419
|
-
reject:
|
|
428
|
+
reject: c,
|
|
420
429
|
utils: n,
|
|
421
|
-
cancel:
|
|
430
|
+
cancel: r,
|
|
422
431
|
promise: o
|
|
423
432
|
};
|
|
424
433
|
}
|
|
425
434
|
}
|
|
426
435
|
export {
|
|
427
|
-
|
|
436
|
+
s as Futurable
|
|
428
437
|
};
|
package/dist/index.d.ts
CHANGED
|
@@ -230,14 +230,15 @@ export declare class Futurable<T> extends Promise<T> {
|
|
|
230
230
|
*/
|
|
231
231
|
static any<T extends readonly unknown[] | []>(values: T, signal?: AbortSignal): Futurable<Awaited<T[number]>>;
|
|
232
232
|
/**
|
|
233
|
-
* Creates a polling service with cancellation support and possibility to handle error.
|
|
234
|
-
* @param {()=> Futurable<T>}
|
|
235
|
-
* @param {{interval: number, signal?: AbortSignal}} options
|
|
233
|
+
* Creates a polling service with cancellation support and possibility to handle error. An optional param __immediate__ can be set _true_ if __fun__ must to be invoke immediatly.
|
|
234
|
+
* @param {()=> Futurable<T>} fun
|
|
235
|
+
* @param {{interval: number, signal?: AbortSignal, immediate?: boolean}} options
|
|
236
236
|
* @returns {{cancel: () => void, catch: (onrejected:(reason: unknown)=>void)=>void }}
|
|
237
237
|
*/
|
|
238
|
-
static polling<T>(
|
|
238
|
+
static polling<T>(fun: () => Futurable<T> | Promise<T> | T, { interval, signal, immediate }: {
|
|
239
239
|
interval: number;
|
|
240
240
|
signal?: AbortSignal;
|
|
241
|
+
immediate?: boolean;
|
|
241
242
|
}): {
|
|
242
243
|
cancel: () => void;
|
|
243
244
|
catch: (onrejected: (reason: unknown) => void) => void;
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -2,13 +2,32 @@ import { readFile, readdir, writeFile } from 'fs/promises';
|
|
|
2
2
|
import path from 'path';
|
|
3
3
|
|
|
4
4
|
const __dirname = new URL('.', import.meta.url).pathname;
|
|
5
|
+
const IMAGES_PATH = path.join(__dirname, "..", "resources", "images");
|
|
6
|
+
const SEO_PATH = path.join(__dirname, "..", "resources", "seo");
|
|
7
|
+
const DOCS_PATH = path.join(__dirname, "..", "docs");
|
|
5
8
|
|
|
6
9
|
async function copy() {
|
|
7
10
|
try {
|
|
8
|
-
const dir = await
|
|
11
|
+
const [dir, dirSeo] = await Promise.all([
|
|
12
|
+
readdir(IMAGES_PATH),
|
|
13
|
+
readdir(SEO_PATH)
|
|
14
|
+
]);
|
|
9
15
|
for (const file of dir) {
|
|
10
|
-
const asset = await readFile(path.join(
|
|
11
|
-
await writeFile(path.join(
|
|
16
|
+
const asset = await readFile(path.join(IMAGES_PATH, file));
|
|
17
|
+
await writeFile(path.join(DOCS_PATH, file), asset);
|
|
18
|
+
}
|
|
19
|
+
for (const file of dirSeo) {
|
|
20
|
+
if (file === "meta-tags.html") {
|
|
21
|
+
const asset = await readFile(path.join(SEO_PATH, file), { encoding: "utf8" });
|
|
22
|
+
let indexFile = await readFile(path.join(DOCS_PATH, "index.html"), {
|
|
23
|
+
encoding: "utf8"
|
|
24
|
+
});
|
|
25
|
+
indexFile = indexFile.split("<head>")[0] + "<head>" + asset.split("\n").filter((_, index, arr) => index !== 0 && index !== arr.length - 1).join("") + indexFile.split("<head>")[1];
|
|
26
|
+
await writeFile(path.join(DOCS_PATH, "index.html"), indexFile);
|
|
27
|
+
} else {
|
|
28
|
+
const asset = await readFile(path.join(SEO_PATH, file));
|
|
29
|
+
await writeFile(path.join(DOCS_PATH, file), asset);
|
|
30
|
+
}
|
|
12
31
|
}
|
|
13
32
|
} catch (error) {
|
|
14
33
|
console.error(error);
|