1 | "use strict";
|
2 | var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
3 | if (kind === "m") throw new TypeError("Private method is not writable");
|
4 | if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
5 | if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
6 | return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
7 | };
|
8 | var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
9 | if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
10 | if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
11 | return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
12 | };
|
13 | var _Task_task, _Task_promise, _Task_state, _TaskPromise_task, _TaskPromise_mapFn, _TaskPromise_mappedPromise, _a;
|
14 | Object.defineProperty(exports, "__esModule", { value: true });
|
15 | exports.TaskPromise = void 0;
|
16 |
|
17 | const resolvable_promise_1 = require("@worker-tools/resolvable-promise");
|
18 | const ts_functional_pipe_1 = require("ts-functional-pipe");
|
19 | const id = (_) => _;
|
20 | class Task {
|
21 | constructor(task) {
|
22 | _Task_task.set(this, void 0);
|
23 | _Task_promise.set(this, void 0);
|
24 | _Task_state.set(this, 'idle');
|
25 | __classPrivateFieldSet(this, _Task_task, task, "f");
|
26 | __classPrivateFieldSet(this, _Task_promise, new resolvable_promise_1.ResolvablePromise(), "f");
|
27 | }
|
28 | execute() {
|
29 | if (__classPrivateFieldGet(this, _Task_state, "f") === 'idle') {
|
30 | __classPrivateFieldSet(this, _Task_state, 'pending', "f");
|
31 | __classPrivateFieldGet(this, _Task_promise, "f").resolve(__classPrivateFieldGet(this, _Task_task, "f").call(this));
|
32 | __classPrivateFieldGet(this, _Task_promise, "f").then(() => { __classPrivateFieldSet(this, _Task_state, 'fulfilled', "f"); }, () => { __classPrivateFieldSet(this, _Task_state, 'rejected', "f"); });
|
33 | }
|
34 | }
|
35 | get state() { return __classPrivateFieldGet(this, _Task_state, "f"); }
|
36 | get promise() { return __classPrivateFieldGet(this, _Task_promise, "f"); }
|
37 | }
|
38 | _Task_task = new WeakMap(), _Task_promise = new WeakMap(), _Task_state = new WeakMap();
|
39 | const lock = Symbol('key');
|
40 |
|
41 |
|
42 |
|
43 |
|
44 | class TaskPromise {
|
45 | constructor(key, task, mapFn, thisArg) {
|
46 | _TaskPromise_task.set(this, void 0);
|
47 | _TaskPromise_mapFn.set(this, void 0);
|
48 | _TaskPromise_mappedPromise.set(this, void 0);
|
49 | Object.defineProperty(this, _a, {
|
50 | enumerable: true,
|
51 | configurable: true,
|
52 | writable: true,
|
53 | value: 'TaskPromise'
|
54 | });
|
55 | if (key !== lock)
|
56 | throw Error('Illegal constructor');
|
57 | __classPrivateFieldSet(this, _TaskPromise_task, task, "f");
|
58 | __classPrivateFieldSet(this, _TaskPromise_mapFn, mapFn, "f");
|
59 | __classPrivateFieldSet(this, _TaskPromise_mappedPromise, __classPrivateFieldGet(this, _TaskPromise_task, "f").promise.then(mapFn && (x => mapFn.call(thisArg, x, 0, this))), "f");
|
60 | }
|
61 | static from(task) {
|
62 | return new TaskPromise(lock, new Task(task));
|
63 | }
|
64 | get state() {
|
65 | return __classPrivateFieldGet(this, _TaskPromise_task, "f").state;
|
66 | }
|
67 | |
68 |
|
69 |
|
70 |
|
71 | then(onfulfilled, onrejected) {
|
72 | __classPrivateFieldGet(this, _TaskPromise_task, "f").execute();
|
73 | return __classPrivateFieldGet(this, _TaskPromise_mappedPromise, "f").then(onfulfilled, onrejected);
|
74 | }
|
75 | |
76 |
|
77 |
|
78 |
|
79 | map(mapFn, thisArg) {
|
80 | var _b;
|
81 |
|
82 | return new TaskPromise(lock, __classPrivateFieldGet(this, _TaskPromise_task, "f"), (0, ts_functional_pipe_1.pipe)((_b = __classPrivateFieldGet(this, _TaskPromise_mapFn, "f")) !== null && _b !== void 0 ? _b : id, mapFn !== null && mapFn !== void 0 ? mapFn : id), thisArg);
|
83 | }
|
84 | catch(onrejected) {
|
85 |
|
86 | return __classPrivateFieldGet(this, _TaskPromise_mappedPromise, "f").catch(onrejected);
|
87 | }
|
88 | finally(onfinally) {
|
89 |
|
90 | return __classPrivateFieldGet(this, _TaskPromise_mappedPromise, "f").finally(onfinally);
|
91 | }
|
92 | }
|
93 | exports.TaskPromise = TaskPromise;
|
94 | _TaskPromise_task = new WeakMap(), _TaskPromise_mapFn = new WeakMap(), _TaskPromise_mappedPromise = new WeakMap(), _a = Symbol.toStringTag;
|
95 |
|
\ | No newline at end of file |