@resonatehq/sdk 0.6.2 → 0.7.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 +24 -45
- package/dist/dev/network.d.ts +16 -0
- package/dist/dev/network.d.ts.map +1 -0
- package/dist/dev/network.js +89 -0
- package/dist/dev/network.js.map +1 -0
- package/dist/dev/server.d.ts +87 -0
- package/dist/dev/server.d.ts.map +1 -0
- package/dist/dev/server.js +891 -0
- package/dist/dev/server.js.map +1 -0
- package/dist/sim/example-1.d.ts +2 -0
- package/dist/sim/example-1.d.ts.map +1 -0
- package/dist/sim/example-1.js +94 -0
- package/dist/sim/example-1.js.map +1 -0
- package/dist/sim/example-2.d.ts +2 -0
- package/dist/sim/example-2.d.ts.map +1 -0
- package/dist/sim/example-2.js +95 -0
- package/dist/sim/example-2.js.map +1 -0
- package/dist/sim/example-3.d.ts +2 -0
- package/dist/sim/example-3.d.ts.map +1 -0
- package/dist/sim/example-3.js +95 -0
- package/dist/sim/example-3.js.map +1 -0
- package/dist/sim/main.d.ts +14 -0
- package/dist/sim/main.d.ts.map +1 -0
- package/dist/sim/main.js +206 -0
- package/dist/sim/main.js.map +1 -0
- package/dist/sim/src/server.d.ts +15 -0
- package/dist/sim/src/server.d.ts.map +1 -0
- package/dist/sim/src/server.js +85 -0
- package/dist/sim/src/server.js.map +1 -0
- package/dist/sim/src/simulator.d.ts +65 -0
- package/dist/sim/src/simulator.d.ts.map +1 -0
- package/dist/sim/src/simulator.js +235 -0
- package/dist/sim/src/simulator.js.map +1 -0
- package/dist/sim/src/worker.d.ts +22 -0
- package/dist/sim/src/worker.d.ts.map +1 -0
- package/dist/sim/src/worker.js +175 -0
- package/dist/sim/src/worker.js.map +1 -0
- package/dist/src/clock.d.ts +11 -0
- package/dist/src/clock.d.ts.map +1 -0
- package/dist/src/clock.js +17 -0
- package/dist/src/clock.js.map +1 -0
- package/dist/src/computation.d.ts +40 -0
- package/dist/src/computation.d.ts.map +1 -0
- package/dist/src/computation.js +225 -0
- package/dist/src/computation.js.map +1 -0
- package/dist/src/context.d.ts +120 -0
- package/dist/src/context.d.ts.map +1 -0
- package/dist/src/context.js +288 -0
- package/dist/src/context.js.map +1 -0
- package/dist/src/coroutine.d.ts +35 -0
- package/dist/src/coroutine.d.ts.map +1 -0
- package/dist/src/coroutine.js +251 -0
- package/dist/src/coroutine.js.map +1 -0
- package/dist/src/decorator.d.ts +14 -0
- package/dist/src/decorator.d.ts.map +1 -0
- package/dist/src/decorator.js +208 -0
- package/dist/src/decorator.js.map +1 -0
- package/dist/src/handler.d.ts +40 -0
- package/dist/src/handler.d.ts.map +1 -0
- package/dist/src/handler.js +198 -0
- package/dist/src/handler.js.map +1 -0
- package/dist/src/heartbeat.d.ts +22 -0
- package/dist/src/heartbeat.d.ts.map +1 -0
- package/dist/src/heartbeat.js +87 -0
- package/dist/src/heartbeat.js.map +1 -0
- package/dist/src/index.d.ts +8 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +25 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/network/network.d.ts +216 -0
- package/dist/src/network/network.d.ts.map +1 -0
- package/dist/{core/logger.js → src/network/network.js} +2 -1
- package/dist/src/network/network.js.map +1 -0
- package/dist/src/network/remote.d.ts +67 -0
- package/dist/src/network/remote.d.ts.map +1 -0
- package/dist/src/network/remote.js +514 -0
- package/dist/src/network/remote.js.map +1 -0
- package/dist/src/nursery.d.ts +19 -0
- package/dist/src/nursery.d.ts.map +1 -0
- package/dist/src/nursery.js +102 -0
- package/dist/src/nursery.js.map +1 -0
- package/dist/src/processor/processor.d.ts +11 -0
- package/dist/src/processor/processor.d.ts.map +1 -0
- package/dist/src/processor/processor.js +24 -0
- package/dist/src/processor/processor.js.map +1 -0
- package/dist/src/promises.d.ts +23 -0
- package/dist/src/promises.d.ts.map +1 -0
- package/dist/src/promises.js +157 -0
- package/dist/src/promises.js.map +1 -0
- package/dist/src/registry.d.ts +15 -0
- package/dist/src/registry.d.ts.map +1 -0
- package/dist/src/registry.js +26 -0
- package/dist/src/registry.js.map +1 -0
- package/dist/src/resonate-inner.d.ts +45 -0
- package/dist/src/resonate-inner.d.ts.map +1 -0
- package/dist/src/resonate-inner.js +157 -0
- package/dist/src/resonate-inner.js.map +1 -0
- package/dist/src/resonate.d.ts +92 -0
- package/dist/src/resonate.d.ts.map +1 -0
- package/dist/src/resonate.js +240 -0
- package/dist/src/resonate.js.map +1 -0
- package/dist/src/schedules.d.ts +9 -0
- package/dist/src/schedules.d.ts.map +1 -0
- package/dist/src/schedules.js +65 -0
- package/dist/src/schedules.js.map +1 -0
- package/dist/src/tasks.d.ts +9 -0
- package/dist/src/tasks.d.ts.map +1 -0
- package/dist/src/tasks.js +61 -0
- package/dist/src/tasks.js.map +1 -0
- package/dist/src/types.d.ts +86 -0
- package/dist/src/types.d.ts.map +1 -0
- package/dist/src/types.js +14 -0
- package/dist/src/types.js.map +1 -0
- package/dist/src/util.d.ts +14 -0
- package/dist/src/util.d.ts.map +1 -0
- package/dist/src/util.js +69 -0
- package/dist/src/util.js.map +1 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -0
- package/package.json +51 -52
- package/dist/core/encoder.d.ts +0 -5
- package/dist/core/encoder.d.ts.map +0 -1
- package/dist/core/encoder.js +0 -3
- package/dist/core/encoder.js.map +0 -1
- package/dist/core/encoders/base64.d.ts +0 -6
- package/dist/core/encoders/base64.d.ts.map +0 -1
- package/dist/core/encoders/base64.js +0 -13
- package/dist/core/encoders/base64.js.map +0 -1
- package/dist/core/encoders/json.d.ts +0 -6
- package/dist/core/encoders/json.d.ts.map +0 -1
- package/dist/core/encoders/json.js +0 -77
- package/dist/core/encoders/json.js.map +0 -1
- package/dist/core/errors.d.ts +0 -24
- package/dist/core/errors.d.ts.map +0 -1
- package/dist/core/errors.js +0 -42
- package/dist/core/errors.js.map +0 -1
- package/dist/core/logger.d.ts +0 -10
- package/dist/core/logger.d.ts.map +0 -1
- package/dist/core/logger.js.map +0 -1
- package/dist/core/loggers/logger.d.ts +0 -13
- package/dist/core/loggers/logger.d.ts.map +0 -1
- package/dist/core/loggers/logger.js +0 -48
- package/dist/core/loggers/logger.js.map +0 -1
- package/dist/core/options.d.ts +0 -160
- package/dist/core/options.d.ts.map +0 -1
- package/dist/core/options.js +0 -18
- package/dist/core/options.js.map +0 -1
- package/dist/core/promises/promises.d.ts +0 -210
- package/dist/core/promises/promises.d.ts.map +0 -1
- package/dist/core/promises/promises.js +0 -300
- package/dist/core/promises/promises.js.map +0 -1
- package/dist/core/promises/types.d.ts +0 -26
- package/dist/core/promises/types.d.ts.map +0 -1
- package/dist/core/promises/types.js +0 -37
- package/dist/core/promises/types.js.map +0 -1
- package/dist/core/retry.d.ts +0 -37
- package/dist/core/retry.d.ts.map +0 -1
- package/dist/core/retry.js +0 -141
- package/dist/core/retry.js.map +0 -1
- package/dist/core/schedules/schedules.d.ts +0 -22
- package/dist/core/schedules/schedules.d.ts.map +0 -1
- package/dist/core/schedules/schedules.js +0 -29
- package/dist/core/schedules/schedules.js.map +0 -1
- package/dist/core/schedules/types.d.ts +0 -19
- package/dist/core/schedules/types.d.ts.map +0 -1
- package/dist/core/schedules/types.js +0 -8
- package/dist/core/schedules/types.js.map +0 -1
- package/dist/core/storage.d.ts +0 -6
- package/dist/core/storage.d.ts.map +0 -1
- package/dist/core/storage.js +0 -3
- package/dist/core/storage.js.map +0 -1
- package/dist/core/storages/memory.d.ts +0 -8
- package/dist/core/storages/memory.d.ts.map +0 -1
- package/dist/core/storages/memory.js +0 -29
- package/dist/core/storages/memory.js.map +0 -1
- package/dist/core/storages/withTimeout.d.ts +0 -10
- package/dist/core/storages/withTimeout.d.ts.map +0 -1
- package/dist/core/storages/withTimeout.js +0 -44
- package/dist/core/storages/withTimeout.js.map +0 -1
- package/dist/core/store.d.ts +0 -142
- package/dist/core/store.d.ts.map +0 -1
- package/dist/core/store.js +0 -3
- package/dist/core/store.js.map +0 -1
- package/dist/core/stores/local.d.ts +0 -57
- package/dist/core/stores/local.d.ts.map +0 -1
- package/dist/core/stores/local.js +0 -405
- package/dist/core/stores/local.js.map +0 -1
- package/dist/core/stores/remote.d.ts +0 -51
- package/dist/core/stores/remote.d.ts.map +0 -1
- package/dist/core/stores/remote.js +0 -431
- package/dist/core/stores/remote.js.map +0 -1
- package/dist/core/utils.d.ts +0 -85
- package/dist/core/utils.d.ts.map +0 -1
- package/dist/core/utils.js +0 -121
- package/dist/core/utils.js.map +0 -1
- package/dist/index.d.ts +0 -19
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -57
- package/dist/index.js.map +0 -1
- package/dist/resonate.d.ts +0 -312
- package/dist/resonate.d.ts.map +0 -1
- package/dist/resonate.js +0 -718
- package/dist/resonate.js.map +0 -1
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.StepClock = exports.WallClock = void 0;
|
|
4
|
+
class WallClock {
|
|
5
|
+
now() {
|
|
6
|
+
return Date.now();
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
exports.WallClock = WallClock;
|
|
10
|
+
class StepClock {
|
|
11
|
+
time = 0;
|
|
12
|
+
now() {
|
|
13
|
+
return this.time++;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
exports.StepClock = StepClock;
|
|
17
|
+
//# sourceMappingURL=clock.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clock.js","sourceRoot":"","sources":["../../src/clock.ts"],"names":[],"mappings":";;;AAIA,MAAa,SAAS;IACpB,GAAG;QACD,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC;IACpB,CAAC;CACF;AAJD,8BAIC;AAED,MAAa,SAAS;IACb,IAAI,GAAG,CAAC,CAAC;IAChB,GAAG;QACD,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC;IACrB,CAAC;CACF;AALD,8BAKC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { Clock } from "./clock";
|
|
2
|
+
import type { Handler } from "./handler";
|
|
3
|
+
import type { Heartbeat } from "./heartbeat";
|
|
4
|
+
import type { CallbackRecord, DurablePromiseRecord, Network } from "./network/network";
|
|
5
|
+
import { type Processor } from "./processor/processor";
|
|
6
|
+
import type { Registry } from "./registry";
|
|
7
|
+
import type { Callback, Task } from "./types";
|
|
8
|
+
export type Status = Completed | Suspended;
|
|
9
|
+
export type Completed = {
|
|
10
|
+
kind: "completed";
|
|
11
|
+
promise: DurablePromiseRecord;
|
|
12
|
+
};
|
|
13
|
+
export type Suspended = {
|
|
14
|
+
kind: "suspended";
|
|
15
|
+
callbacks: CallbackRecord[];
|
|
16
|
+
};
|
|
17
|
+
export declare class Computation {
|
|
18
|
+
private id;
|
|
19
|
+
private pid;
|
|
20
|
+
private ttl;
|
|
21
|
+
private clock;
|
|
22
|
+
private unicast;
|
|
23
|
+
private anycast;
|
|
24
|
+
private network;
|
|
25
|
+
private handler;
|
|
26
|
+
private registry;
|
|
27
|
+
private dependencies;
|
|
28
|
+
private heartbeat;
|
|
29
|
+
private processor;
|
|
30
|
+
private seen;
|
|
31
|
+
private processing;
|
|
32
|
+
constructor(id: string, unicast: string, anycast: string, pid: string, ttl: number, clock: Clock, network: Network, handler: Handler, registry: Registry, heartbeat: Heartbeat, dependencies: Map<string, any>, processor?: Processor);
|
|
33
|
+
process(task: Task, done: Callback<Status>): void;
|
|
34
|
+
private processClaimed;
|
|
35
|
+
private processGenerator;
|
|
36
|
+
private processFunction;
|
|
37
|
+
private processLocalTodo;
|
|
38
|
+
private processRemoteTodo;
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=computation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"computation.d.ts","sourceRoot":"","sources":["../../src/computation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAGrC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EAAE,cAAc,EAAE,oBAAoB,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAEvF,OAAO,EAAkB,KAAK,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,QAAQ,EAAqB,IAAI,EAAE,MAAM,SAAS,CAAC;AAGjE,MAAM,MAAM,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC;AAE3C,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,oBAAoB,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,WAAW,CAAC;IAClB,SAAS,EAAE,cAAc,EAAE,CAAC;CAC7B,CAAC;AAEF,qBAAa,WAAW;IACtB,OAAO,CAAC,EAAE,CAAS;IACnB,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,YAAY,CAAmB;IACvC,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,SAAS,CAAY;IAE7B,OAAO,CAAC,IAAI,CAA0B;IACtC,OAAO,CAAC,UAAU,CAAS;gBAGzB,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,SAAS,EACpB,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,EAC9B,SAAS,CAAC,EAAE,SAAS;IAgBhB,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC;IAoCjD,OAAO,CAAC,cAAc;IA0DtB,OAAO,CAAC,gBAAgB;IA6BxB,OAAO,CAAC,eAAe;IAyBvB,OAAO,CAAC,gBAAgB;IAoBxB,OAAO,CAAC,iBAAiB;CAyC1B"}
|
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.Computation = void 0;
|
|
37
|
+
const context_1 = require("./context");
|
|
38
|
+
const coroutine_1 = require("./coroutine");
|
|
39
|
+
const nursery_1 = require("./nursery");
|
|
40
|
+
const processor_1 = require("./processor/processor");
|
|
41
|
+
const util = __importStar(require("./util"));
|
|
42
|
+
class Computation {
|
|
43
|
+
id;
|
|
44
|
+
pid;
|
|
45
|
+
ttl;
|
|
46
|
+
clock;
|
|
47
|
+
unicast;
|
|
48
|
+
anycast;
|
|
49
|
+
network;
|
|
50
|
+
handler;
|
|
51
|
+
registry;
|
|
52
|
+
dependencies;
|
|
53
|
+
heartbeat;
|
|
54
|
+
processor;
|
|
55
|
+
seen = new Set();
|
|
56
|
+
processing = false;
|
|
57
|
+
constructor(id, unicast, anycast, pid, ttl, clock, network, handler, registry, heartbeat, dependencies, processor) {
|
|
58
|
+
this.id = id;
|
|
59
|
+
this.unicast = unicast;
|
|
60
|
+
this.anycast = anycast;
|
|
61
|
+
this.pid = pid;
|
|
62
|
+
this.ttl = ttl;
|
|
63
|
+
this.clock = clock;
|
|
64
|
+
this.network = network;
|
|
65
|
+
this.handler = handler;
|
|
66
|
+
this.registry = registry;
|
|
67
|
+
this.heartbeat = heartbeat;
|
|
68
|
+
this.dependencies = dependencies;
|
|
69
|
+
this.processor = processor ?? new processor_1.AsyncProcessor();
|
|
70
|
+
}
|
|
71
|
+
process(task, done) {
|
|
72
|
+
// If we are already processing there is nothing to do, the
|
|
73
|
+
// caller will be notified via the promise handler
|
|
74
|
+
if (this.processing)
|
|
75
|
+
return done(true);
|
|
76
|
+
this.processing = true;
|
|
77
|
+
const doneProcessing = (err, res) => {
|
|
78
|
+
this.processing = false;
|
|
79
|
+
err ? done(err) : done(err, res);
|
|
80
|
+
};
|
|
81
|
+
switch (task.kind) {
|
|
82
|
+
case "claimed":
|
|
83
|
+
this.processClaimed(task, doneProcessing);
|
|
84
|
+
break;
|
|
85
|
+
case "unclaimed":
|
|
86
|
+
this.handler.claimTask({
|
|
87
|
+
kind: "claimTask",
|
|
88
|
+
id: task.task.id,
|
|
89
|
+
counter: task.task.counter,
|
|
90
|
+
processId: this.pid,
|
|
91
|
+
ttl: this.ttl,
|
|
92
|
+
}, (err, promise) => {
|
|
93
|
+
if (err)
|
|
94
|
+
return doneProcessing(true);
|
|
95
|
+
util.assertDefined(promise);
|
|
96
|
+
this.processClaimed({ kind: "claimed", task: task.task, rootPromise: promise }, doneProcessing);
|
|
97
|
+
});
|
|
98
|
+
break;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
processClaimed({ task, rootPromise }, done) {
|
|
102
|
+
util.assert(task.rootPromiseId === this.id, "task root promise id must match computation id");
|
|
103
|
+
const doneAndDropTaskIfErr = (err, res) => {
|
|
104
|
+
if (err) {
|
|
105
|
+
return this.network.send({ kind: "dropTask", id: task.id, counter: task.counter }, () => {
|
|
106
|
+
// ignore the drop task response, if the request failed the
|
|
107
|
+
// task will eventually expire anyways
|
|
108
|
+
done(true);
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
done(false, res);
|
|
112
|
+
};
|
|
113
|
+
if (!("func" in rootPromise.param) || !("args" in rootPromise.param)) {
|
|
114
|
+
// TODO: log something useful
|
|
115
|
+
return doneAndDropTaskIfErr(true);
|
|
116
|
+
}
|
|
117
|
+
const registered = this.registry.get(rootPromise.param.func);
|
|
118
|
+
if (!registered) {
|
|
119
|
+
// TODO: log something useful
|
|
120
|
+
return doneAndDropTaskIfErr(true);
|
|
121
|
+
}
|
|
122
|
+
const func = registered.func;
|
|
123
|
+
const args = rootPromise.param.args;
|
|
124
|
+
// start heartbeat
|
|
125
|
+
this.heartbeat.start();
|
|
126
|
+
return new nursery_1.Nursery((nursery) => {
|
|
127
|
+
const done = (err, res) => {
|
|
128
|
+
if (err) {
|
|
129
|
+
return nursery.done(err);
|
|
130
|
+
}
|
|
131
|
+
this.network.send({ kind: "completeTask", id: task.id, counter: task.counter }, (err) => {
|
|
132
|
+
nursery.done(err, res);
|
|
133
|
+
});
|
|
134
|
+
};
|
|
135
|
+
const ctx = context_1.InnerContext.root(this.id, rootPromise.timeout, this.clock, this.dependencies);
|
|
136
|
+
if (util.isGeneratorFunction(func)) {
|
|
137
|
+
this.processGenerator(nursery, ctx, func, args, done);
|
|
138
|
+
}
|
|
139
|
+
else {
|
|
140
|
+
this.processFunction(this.id, ctx, func, args, (err, promise) => {
|
|
141
|
+
if (err)
|
|
142
|
+
return done(true);
|
|
143
|
+
util.assertDefined(promise);
|
|
144
|
+
done(false, { kind: "completed", promise });
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
}, doneAndDropTaskIfErr);
|
|
148
|
+
}
|
|
149
|
+
processGenerator(nursery, ctx, func, args, done) {
|
|
150
|
+
coroutine_1.Coroutine.exec(this.id, ctx, func, args, this.handler, (err, status) => {
|
|
151
|
+
if (err)
|
|
152
|
+
return done(err);
|
|
153
|
+
util.assertDefined(status);
|
|
154
|
+
switch (status.type) {
|
|
155
|
+
case "completed":
|
|
156
|
+
done(false, { kind: "completed", promise: status.promise });
|
|
157
|
+
break;
|
|
158
|
+
case "suspended":
|
|
159
|
+
util.assert(status.todo.local.length > 0 || status.todo.remote.length > 0, "must be at least one todo");
|
|
160
|
+
if (status.todo.local.length > 0) {
|
|
161
|
+
this.processLocalTodo(nursery, status.todo.local, done);
|
|
162
|
+
}
|
|
163
|
+
else if (status.todo.remote.length > 0) {
|
|
164
|
+
this.processRemoteTodo(nursery, status.todo.remote, done);
|
|
165
|
+
}
|
|
166
|
+
break;
|
|
167
|
+
}
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
processFunction(id, ctx, func, args, done) {
|
|
171
|
+
this.processor.process(id, async () => await func(ctx, ...args), (res) => this.handler.completePromise({
|
|
172
|
+
kind: "completePromise",
|
|
173
|
+
id: id,
|
|
174
|
+
state: res.success ? "resolved" : "rejected",
|
|
175
|
+
value: res.success ? res.value : res.error,
|
|
176
|
+
iKey: id,
|
|
177
|
+
strict: false,
|
|
178
|
+
}, done));
|
|
179
|
+
}
|
|
180
|
+
processLocalTodo(nursery, todo, done) {
|
|
181
|
+
for (const { id, ctx, func, args } of todo) {
|
|
182
|
+
if (this.seen.has(id)) {
|
|
183
|
+
continue;
|
|
184
|
+
}
|
|
185
|
+
this.seen.add(id);
|
|
186
|
+
nursery.hold((next) => {
|
|
187
|
+
this.processFunction(id, ctx, func, args, (err) => {
|
|
188
|
+
if (err)
|
|
189
|
+
return done(err);
|
|
190
|
+
next();
|
|
191
|
+
});
|
|
192
|
+
});
|
|
193
|
+
}
|
|
194
|
+
// once all local todos are submitted we can call continue
|
|
195
|
+
return nursery.cont();
|
|
196
|
+
}
|
|
197
|
+
processRemoteTodo(nursery, todo, done) {
|
|
198
|
+
nursery.all(todo, ({ id, timeout }, done) => this.handler.createCallback({
|
|
199
|
+
kind: "createCallback",
|
|
200
|
+
id: id,
|
|
201
|
+
rootPromiseId: this.id,
|
|
202
|
+
timeout: timeout,
|
|
203
|
+
recv: this.anycast,
|
|
204
|
+
}, done), (err, results) => {
|
|
205
|
+
if (err)
|
|
206
|
+
return done(err);
|
|
207
|
+
util.assertDefined(results);
|
|
208
|
+
const callbacks = [];
|
|
209
|
+
for (const res of results) {
|
|
210
|
+
switch (res.kind) {
|
|
211
|
+
case "promise":
|
|
212
|
+
nursery.hold((next) => next());
|
|
213
|
+
return nursery.cont();
|
|
214
|
+
case "callback":
|
|
215
|
+
callbacks.push(res.callback);
|
|
216
|
+
break;
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
// once all callbacks are created we can call done
|
|
220
|
+
return done(false, { kind: "suspended", callbacks });
|
|
221
|
+
});
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
exports.Computation = Computation;
|
|
225
|
+
//# sourceMappingURL=computation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"computation.js","sourceRoot":"","sources":["../../src/computation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import type { Clock } from "./clock";
|
|
2
|
+
import type { CreatePromiseReq } from "./network/network";
|
|
3
|
+
import { type Func, type Options, type ParamsWithOptions, RESONATE_OPTIONS, type Result, type Return } from "./types";
|
|
4
|
+
export type Yieldable = LFI<any> | LFC<any> | RFI<any> | RFC<any> | Future<any>;
|
|
5
|
+
export declare class LFI<T> implements Iterable<LFI<T>> {
|
|
6
|
+
func: Func;
|
|
7
|
+
args: any[];
|
|
8
|
+
createReq: CreatePromiseReq;
|
|
9
|
+
constructor(func: Func, args: any[], createReq: CreatePromiseReq);
|
|
10
|
+
[Symbol.iterator](): Generator<LFI<T>, Future<T>, any>;
|
|
11
|
+
}
|
|
12
|
+
export declare class LFC<T> implements Iterable<LFC<T>> {
|
|
13
|
+
func: Func;
|
|
14
|
+
args: any[];
|
|
15
|
+
createReq: CreatePromiseReq;
|
|
16
|
+
constructor(func: Func, args: any[], createReq: CreatePromiseReq);
|
|
17
|
+
[Symbol.iterator](): Generator<LFC<T>, T, any>;
|
|
18
|
+
}
|
|
19
|
+
export declare class RFI<T> implements Iterable<RFI<T>> {
|
|
20
|
+
createReq: CreatePromiseReq;
|
|
21
|
+
mode: "attached" | "detached";
|
|
22
|
+
constructor(createReq: CreatePromiseReq, mode?: "attached" | "detached");
|
|
23
|
+
[Symbol.iterator](): Generator<RFI<T>, Future<T>, any>;
|
|
24
|
+
}
|
|
25
|
+
export declare class RFC<T> implements Iterable<RFC<T>> {
|
|
26
|
+
createReq: CreatePromiseReq;
|
|
27
|
+
mode: "attached";
|
|
28
|
+
constructor(createReq: CreatePromiseReq);
|
|
29
|
+
[Symbol.iterator](): Generator<RFC<T>, T, any>;
|
|
30
|
+
}
|
|
31
|
+
export declare class Future<T> implements Iterable<Future<T>> {
|
|
32
|
+
id: string;
|
|
33
|
+
private readonly value?;
|
|
34
|
+
readonly state: "pending" | "completed";
|
|
35
|
+
private mode;
|
|
36
|
+
constructor(id: string, state: "pending" | "completed", value?: Result<T>, mode?: "attached" | "detached");
|
|
37
|
+
getValue(): T;
|
|
38
|
+
[Symbol.iterator](): Generator<Future<T>, T, undefined>;
|
|
39
|
+
}
|
|
40
|
+
export interface Context {
|
|
41
|
+
readonly id: string;
|
|
42
|
+
readonly timeout: number;
|
|
43
|
+
lfi<F extends Func>(func: F, ...args: ParamsWithOptions<F>): LFI<Return<F>>;
|
|
44
|
+
lfc<F extends Func>(func: F, ...args: ParamsWithOptions<F>): LFC<Return<F>>;
|
|
45
|
+
rfi<F extends Func>(func: F, ...args: ParamsWithOptions<F>): RFI<Return<F>>;
|
|
46
|
+
rfi<T>(func: string, ...args: any[]): RFI<T>;
|
|
47
|
+
rfi(func: Func | string, ...args: any[]): RFI<any>;
|
|
48
|
+
rfc<F extends Func>(func: F, ...args: ParamsWithOptions<F>): RFC<Return<F>>;
|
|
49
|
+
rfc<T>(func: string, ...args: any[]): RFC<T>;
|
|
50
|
+
rfc(func: Func | string, ...args: any[]): RFC<any>;
|
|
51
|
+
beginRun<F extends Func>(func: F, ...args: ParamsWithOptions<F>): LFI<Return<F>>;
|
|
52
|
+
run<F extends Func>(func: F, ...args: ParamsWithOptions<F>): LFC<Return<F>>;
|
|
53
|
+
beginRpc<F extends Func>(func: F, ...args: ParamsWithOptions<F>): RFI<Return<F>>;
|
|
54
|
+
beginRpc<T>(func: string, ...args: any[]): RFI<T>;
|
|
55
|
+
beginRpc(func: Func | string, ...args: any[]): RFI<any>;
|
|
56
|
+
rpc<F extends Func>(func: F, ...args: ParamsWithOptions<F>): RFC<Return<F>>;
|
|
57
|
+
rpc<T>(func: string, ...args: any[]): RFC<T>;
|
|
58
|
+
rpc(func: Func | string, ...args: any[]): RFC<any>;
|
|
59
|
+
sleep(ms: number): RFC<void>;
|
|
60
|
+
promise<T>({ id, timeout, data, tags, }: {
|
|
61
|
+
id?: string;
|
|
62
|
+
timeout?: number;
|
|
63
|
+
data?: any;
|
|
64
|
+
tags?: Record<string, string>;
|
|
65
|
+
}): RFI<T>;
|
|
66
|
+
detached<F extends Func>(func: F, ...args: ParamsWithOptions<F>): RFI<Return<F>>;
|
|
67
|
+
detached<T>(func: string, ...args: any[]): RFI<T>;
|
|
68
|
+
detached(func: Func | string, ...args: any[]): RFI<any>;
|
|
69
|
+
getDependency(key: string): any | undefined;
|
|
70
|
+
options(opts: Partial<Options>): Options & {
|
|
71
|
+
[RESONATE_OPTIONS]: true;
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
export declare class InnerContext implements Context {
|
|
75
|
+
readonly id: string;
|
|
76
|
+
readonly timeout: number;
|
|
77
|
+
private rId;
|
|
78
|
+
private pId;
|
|
79
|
+
private clock;
|
|
80
|
+
private dependencies;
|
|
81
|
+
private seq;
|
|
82
|
+
run: <F extends Func>(func: F, ...args: ParamsWithOptions<F>) => LFC<Return<F>>;
|
|
83
|
+
rpc: {
|
|
84
|
+
<F extends Func>(func: F, ...args: ParamsWithOptions<F>): RFC<Return<F>>;
|
|
85
|
+
<T>(func: string, ...args: any[]): RFC<T>;
|
|
86
|
+
};
|
|
87
|
+
beginRun: <F extends Func>(func: F, ...args: ParamsWithOptions<F>) => LFI<Return<F>>;
|
|
88
|
+
beginRpc: {
|
|
89
|
+
<F extends Func>(func: F, ...args: ParamsWithOptions<F>): RFI<Return<F>>;
|
|
90
|
+
<T>(func: string, ...args: any[]): RFI<T>;
|
|
91
|
+
};
|
|
92
|
+
private constructor();
|
|
93
|
+
static root(id: string, timeout: number, clock: Clock, dependencies: Map<string, any>): InnerContext;
|
|
94
|
+
child(id: string, timeout: number): InnerContext;
|
|
95
|
+
lfi<F extends Func>(func: F, ...args: ParamsWithOptions<F>): LFI<Return<F>>;
|
|
96
|
+
lfc<F extends Func>(func: F, ...args: ParamsWithOptions<F>): LFC<Return<F>>;
|
|
97
|
+
rfi<F extends Func>(func: F, ...args: ParamsWithOptions<F>): RFI<Return<F>>;
|
|
98
|
+
rfi<T>(func: string, ...args: any[]): RFI<T>;
|
|
99
|
+
rfc<F extends Func>(func: F, ...args: ParamsWithOptions<F>): RFC<Return<F>>;
|
|
100
|
+
rfc<T>(func: string, ...args: any[]): RFC<T>;
|
|
101
|
+
promise<T>({ id, timeout, data, tags, }: {
|
|
102
|
+
id?: string;
|
|
103
|
+
timeout?: number;
|
|
104
|
+
data?: any;
|
|
105
|
+
tags?: Record<string, string>;
|
|
106
|
+
}): RFI<T>;
|
|
107
|
+
sleep(ms: number): RFC<void>;
|
|
108
|
+
detached<F extends Func>(func: F, ...args: ParamsWithOptions<F>): RFI<Return<F>>;
|
|
109
|
+
detached<T>(func: string, ...args: any[]): RFI<T>;
|
|
110
|
+
getDependency(key: string): any | undefined;
|
|
111
|
+
options(opts?: Partial<Options>): Options & {
|
|
112
|
+
[RESONATE_OPTIONS]: true;
|
|
113
|
+
};
|
|
114
|
+
localCreateReq(opts: Options): CreatePromiseReq;
|
|
115
|
+
remoteCreateReq(func: string, args: any[], opts: Options, maxTimeout?: number): CreatePromiseReq;
|
|
116
|
+
latentCreateOpts(id?: string, timeout?: number, data?: any, tags?: Record<string, string>): CreatePromiseReq;
|
|
117
|
+
sleepCreateOpts(opts: Options): CreatePromiseReq;
|
|
118
|
+
seqid(): string;
|
|
119
|
+
}
|
|
120
|
+
//# sourceMappingURL=context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/context.ts"],"names":[],"mappings":"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"}
|