@anterior/brrr 0.1.259 → 0.1.260
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 +7 -3
- package/demo/cli.ts +11 -4
- package/dist/app.d.ts +21 -24
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +16 -32
- package/dist/app.js.map +1 -1
- package/dist/app.test.js +71 -57
- package/dist/app.test.js.map +1 -1
- package/dist/codec.d.ts +3 -2
- package/dist/codec.d.ts.map +1 -1
- package/dist/codec.test.d.ts +1 -1
- package/dist/codec.test.d.ts.map +1 -1
- package/dist/codec.test.js +8 -4
- package/dist/codec.test.js.map +1 -1
- package/dist/{naive-json-codec.d.ts → demo-json-codec.d.ts} +9 -5
- package/dist/demo-json-codec.d.ts.map +1 -0
- package/dist/{naive-json-codec.js → demo-json-codec.js} +14 -11
- package/dist/demo-json-codec.js.map +1 -0
- package/dist/demo-json-codec.test.d.ts +2 -0
- package/dist/demo-json-codec.test.d.ts.map +1 -0
- package/dist/demo-json-codec.test.js +11 -0
- package/dist/demo-json-codec.test.js.map +1 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/local-app.d.ts +10 -12
- package/dist/local-app.d.ts.map +1 -1
- package/dist/local-app.js +7 -9
- package/dist/local-app.js.map +1 -1
- package/package.json +1 -1
- package/dist/naive-json-codec.d.ts.map +0 -1
- package/dist/naive-json-codec.js.map +0 -1
- package/dist/naive-json-codec.test.d.ts +0 -2
- package/dist/naive-json-codec.test.d.ts.map +0 -1
- package/dist/naive-json-codec.test.js +0 -9
- package/dist/naive-json-codec.test.js.map +0 -1
package/README.md
CHANGED
|
@@ -34,7 +34,7 @@ Highlights:
|
|
|
34
34
|
```python
|
|
35
35
|
import brrr
|
|
36
36
|
|
|
37
|
-
async def fib(app:
|
|
37
|
+
async def fib(app: DemoContext, n: int, salt=None):
|
|
38
38
|
match n:
|
|
39
39
|
case 0: return 0
|
|
40
40
|
case 1: return 1
|
|
@@ -44,13 +44,13 @@ async def fib(app: brrr.ActiveWorker, n: int, salt=None):
|
|
|
44
44
|
))
|
|
45
45
|
|
|
46
46
|
|
|
47
|
-
async def fib_and_print(app:
|
|
47
|
+
async def fib_and_print(app: DemoContext, n: str):
|
|
48
48
|
f = await app.call(fib)(int(n))
|
|
49
49
|
print(f"fib({n}) = {f}", flush=True)
|
|
50
50
|
return f
|
|
51
51
|
|
|
52
52
|
|
|
53
|
-
async def hello(app:
|
|
53
|
+
async def hello(app: DemoContext, greetee: str):
|
|
54
54
|
greeting = f"Hello, {greetee}!"
|
|
55
55
|
print(greeting, flush=True)
|
|
56
56
|
return greeting
|
|
@@ -147,6 +147,10 @@ Brrr has no central scheduling agent. Workers contend for the same jobs and the
|
|
|
147
147
|
|
|
148
148
|
Workers have to specify on which topic(s) they listen, and once a worker listens on a topic it must be able to handle _every_ incoming job.
|
|
149
149
|
|
|
150
|
+
## Context
|
|
151
|
+
|
|
152
|
+
A brrr task takes user-defined "context" as its first argument. The context is created in the codec's `invokeTask` method, so you have full control over what context to inject. This is useful for, e.g. injecting dependencies like an authenticated API client.
|
|
153
|
+
|
|
150
154
|
## Copyright & License
|
|
151
155
|
|
|
152
156
|
Brrr is authored by [Anterior](https://anterior.com), based in NYC, USA.
|
package/demo/cli.ts
CHANGED
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
import {
|
|
3
3
|
ActiveWorker,
|
|
4
4
|
AppWorker,
|
|
5
|
-
|
|
5
|
+
DemoJsonCodec,
|
|
6
|
+
type DemoJsonCodecContext,
|
|
6
7
|
Server,
|
|
7
8
|
} from "../src/index.ts";
|
|
8
9
|
import { Dynamo, Redis } from "../src/backends/index.ts";
|
|
@@ -40,7 +41,10 @@ type Arg = { n: number; salt: string | null };
|
|
|
40
41
|
* Lucas number: lucas(n) = fib(n - 1) + fib(n + 1)
|
|
41
42
|
* https://en.wikipedia.org/wiki/Lucas_number
|
|
42
43
|
*/
|
|
43
|
-
async function lucas(
|
|
44
|
+
async function lucas(
|
|
45
|
+
app: DemoJsonCodecContext,
|
|
46
|
+
{ n, salt }: Arg,
|
|
47
|
+
): Promise<number> {
|
|
44
48
|
if (n < 2) {
|
|
45
49
|
return 2 - n;
|
|
46
50
|
}
|
|
@@ -51,7 +55,10 @@ async function lucas(app: ActiveWorker, { n, salt }: Arg): Promise<number> {
|
|
|
51
55
|
return a + b;
|
|
52
56
|
}
|
|
53
57
|
|
|
54
|
-
async function fib(
|
|
58
|
+
async function fib(
|
|
59
|
+
app: DemoJsonCodecContext,
|
|
60
|
+
{ n, salt }: Arg,
|
|
61
|
+
): Promise<number> {
|
|
55
62
|
if (n < 2) {
|
|
56
63
|
return n;
|
|
57
64
|
}
|
|
@@ -68,7 +75,7 @@ const server = new Server(dynamo, redis, {
|
|
|
68
75
|
},
|
|
69
76
|
});
|
|
70
77
|
|
|
71
|
-
const codec = new
|
|
78
|
+
const codec = new DemoJsonCodec();
|
|
72
79
|
|
|
73
80
|
const app = new AppWorker(codec, server, { fib, lucas });
|
|
74
81
|
|
package/dist/app.d.ts
CHANGED
|
@@ -1,35 +1,32 @@
|
|
|
1
1
|
import { type Connection, Defer, type Request, type Response } from "./connection.ts";
|
|
2
2
|
import type { Codec } from "./codec.ts";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
export type Task<C, A extends unknown[] = any[], R = any> = NoContextTask<[
|
|
4
|
+
C,
|
|
5
|
+
...A
|
|
6
|
+
], R>;
|
|
7
|
+
export type NoContextTask<A extends unknown[] = any[], R = any> = (...args: A) => R | Promise<R>;
|
|
8
|
+
export type Handlers<C> = Readonly<Record<string, Task<C, any[], any>>>;
|
|
9
|
+
export type Registry<C> = {
|
|
10
|
+
codec: Codec<C>;
|
|
11
|
+
handlers: Handlers<C>;
|
|
6
12
|
};
|
|
7
|
-
export type
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
] ? Rest : A;
|
|
11
|
-
export type NoAppTask<A extends unknown[], R> = (...args: StripLeadingActiveWorker<A>) => Promise<R>;
|
|
12
|
-
export type Handlers = Readonly<Record<string, Task>>;
|
|
13
|
-
export type TaskIdentifier<A extends unknown[], R> = ((...args: A) => R | Promise<R>) | string;
|
|
14
|
-
export declare function taskIdentifierToName(identifier: TaskIdentifier<any[], any>, handlers: Handlers): string;
|
|
15
|
-
export declare function taskFn<A extends unknown[], R>(fn: (...args: A) => R): Task<A, R>;
|
|
16
|
-
export declare class AppConsumer {
|
|
17
|
-
readonly codec: Codec;
|
|
13
|
+
export type TaskIdentifier<C, A extends unknown[], R> = Task<C, A, R> | string;
|
|
14
|
+
export declare function taskIdentifierToName(identifier: TaskIdentifier<any, any[], any>, handlers: Handlers<any>): string;
|
|
15
|
+
export declare class AppConsumer<C> {
|
|
18
16
|
readonly connection: Connection;
|
|
19
|
-
readonly
|
|
20
|
-
constructor(codec: Codec
|
|
21
|
-
schedule<A extends unknown[], R>(taskIdentifier: TaskIdentifier<A, R>, topic: string):
|
|
22
|
-
read<A extends unknown[], R>(taskIdentifier: TaskIdentifier<A, R>):
|
|
17
|
+
readonly registry: Registry<C>;
|
|
18
|
+
constructor(codec: Codec<C>, connection: Connection, handlers?: Handlers<C>);
|
|
19
|
+
schedule<A extends unknown[], R>(taskIdentifier: TaskIdentifier<C, A, R>, topic: string): (...args: A) => Promise<void>;
|
|
20
|
+
read<A extends unknown[], R>(taskIdentifier: TaskIdentifier<C, A, R>): (...args: A) => Promise<R>;
|
|
23
21
|
}
|
|
24
|
-
export declare class AppWorker extends AppConsumer {
|
|
22
|
+
export declare class AppWorker<C> extends AppConsumer<C> {
|
|
25
23
|
readonly handle: (request: Request, connection: Connection) => Promise<Response | Defer>;
|
|
26
24
|
}
|
|
27
|
-
export declare class ActiveWorker {
|
|
25
|
+
export declare class ActiveWorker<C> {
|
|
28
26
|
private readonly connection;
|
|
29
|
-
private readonly
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
call<A extends unknown[], R>(taskIdentifier: TaskIdentifier<A, R>, topic?: string | undefined): NoAppTask<A, R>;
|
|
27
|
+
private readonly registry;
|
|
28
|
+
constructor(connection: Connection, registry: Registry<C>);
|
|
29
|
+
call<A extends unknown[], R>(taskIdentifier: TaskIdentifier<C, A, R>, topic?: string | undefined): (...args: A) => Promise<R>;
|
|
33
30
|
gather<T1>(t1: T1): Promise<[Awaited<T1>]>;
|
|
34
31
|
gather<T1, T2>(t1: T1, t2: T2): Promise<[Awaited<T1>, Awaited<T2>]>;
|
|
35
32
|
gather<T1, T2, T3>(t1: T1, t2: T2, t3: T3): Promise<[Awaited<T1>, Awaited<T2>, Awaited<T3>]>;
|
package/dist/app.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,UAAU,EACf,KAAK,EAEL,KAAK,OAAO,EACZ,KAAK,QAAQ,EACd,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
|
package/dist/app.js
CHANGED
|
@@ -1,45 +1,34 @@
|
|
|
1
1
|
import { Defer, } from "./connection.js";
|
|
2
2
|
import { NotFoundError, TaskNotFoundError } from "./errors.js";
|
|
3
|
-
import { BrrrTaskSymbol } from "./symbol.js";
|
|
4
3
|
export function taskIdentifierToName(identifier, handlers) {
|
|
5
4
|
if (typeof identifier === "string") {
|
|
6
5
|
return identifier;
|
|
7
6
|
}
|
|
8
7
|
for (const [name, handler] of Object.entries(handlers)) {
|
|
9
|
-
if (handler
|
|
8
|
+
if (handler === identifier) {
|
|
10
9
|
return name;
|
|
11
10
|
}
|
|
12
11
|
}
|
|
13
12
|
throw new TaskNotFoundError(identifier.name);
|
|
14
13
|
}
|
|
15
|
-
export function taskFn(fn) {
|
|
16
|
-
const task = (_, ...args) => fn(...args);
|
|
17
|
-
return Object.defineProperty(task, BrrrTaskSymbol, {
|
|
18
|
-
value: fn,
|
|
19
|
-
writable: false,
|
|
20
|
-
configurable: false,
|
|
21
|
-
});
|
|
22
|
-
}
|
|
23
14
|
export class AppConsumer {
|
|
24
|
-
codec;
|
|
25
15
|
connection;
|
|
26
|
-
|
|
16
|
+
registry;
|
|
27
17
|
constructor(codec, connection, handlers = {}) {
|
|
28
|
-
this.codec = codec;
|
|
29
18
|
this.connection = connection;
|
|
30
|
-
this.
|
|
19
|
+
this.registry = { codec, handlers };
|
|
31
20
|
}
|
|
32
21
|
schedule(taskIdentifier, topic) {
|
|
33
|
-
const taskName = taskIdentifierToName(taskIdentifier, this.handlers);
|
|
22
|
+
const taskName = taskIdentifierToName(taskIdentifier, this.registry.handlers);
|
|
34
23
|
return async (...args) => {
|
|
35
|
-
const call = await this.codec.encodeCall(taskName, args);
|
|
24
|
+
const call = await this.registry.codec.encodeCall(taskName, args);
|
|
36
25
|
await this.connection.scheduleRaw(topic, call);
|
|
37
26
|
};
|
|
38
27
|
}
|
|
39
28
|
read(taskIdentifier) {
|
|
40
29
|
return async (...args) => {
|
|
41
|
-
const taskName = taskIdentifierToName(taskIdentifier, this.handlers);
|
|
42
|
-
const call = await this.codec.encodeCall(taskName, args);
|
|
30
|
+
const taskName = taskIdentifierToName(taskIdentifier, this.registry.handlers);
|
|
31
|
+
const call = await this.registry.codec.encodeCall(taskName, args);
|
|
43
32
|
const payload = await this.connection.memory.getValue(call.callHash);
|
|
44
33
|
if (!payload) {
|
|
45
34
|
throw new NotFoundError({
|
|
@@ -47,21 +36,18 @@ export class AppConsumer {
|
|
|
47
36
|
callHash: call.callHash,
|
|
48
37
|
});
|
|
49
38
|
}
|
|
50
|
-
return this.codec.decodeReturn(taskName, payload);
|
|
39
|
+
return this.registry.codec.decodeReturn(taskName, payload);
|
|
51
40
|
};
|
|
52
41
|
}
|
|
53
42
|
}
|
|
54
43
|
export class AppWorker extends AppConsumer {
|
|
55
44
|
handle = async (request, connection) => {
|
|
56
|
-
const handler = this.handlers[request.call.taskName];
|
|
45
|
+
const handler = this.registry.handlers[request.call.taskName];
|
|
57
46
|
if (!handler) {
|
|
58
47
|
throw new TaskNotFoundError(request.call.taskName);
|
|
59
48
|
}
|
|
60
49
|
try {
|
|
61
|
-
const
|
|
62
|
-
const payload = await this.codec.invokeTask(request.call, (...args) => {
|
|
63
|
-
return handler(activeWorker, ...args);
|
|
64
|
-
});
|
|
50
|
+
const payload = await this.registry.codec.invokeTask(request.call, handler, new ActiveWorker(connection, this.registry));
|
|
65
51
|
return { payload };
|
|
66
52
|
}
|
|
67
53
|
catch (err) {
|
|
@@ -74,22 +60,20 @@ export class AppWorker extends AppConsumer {
|
|
|
74
60
|
}
|
|
75
61
|
export class ActiveWorker {
|
|
76
62
|
connection;
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
constructor(connection, codec, handlers) {
|
|
63
|
+
registry;
|
|
64
|
+
constructor(connection, registry) {
|
|
80
65
|
this.connection = connection;
|
|
81
|
-
this.
|
|
82
|
-
this.handlers = handlers;
|
|
66
|
+
this.registry = registry;
|
|
83
67
|
}
|
|
84
68
|
call(taskIdentifier, topic) {
|
|
85
|
-
const taskName = taskIdentifierToName(taskIdentifier, this.handlers);
|
|
69
|
+
const taskName = taskIdentifierToName(taskIdentifier, this.registry.handlers);
|
|
86
70
|
return async (...args) => {
|
|
87
|
-
const call = await this.codec.encodeCall(taskName, args);
|
|
71
|
+
const call = await this.registry.codec.encodeCall(taskName, args);
|
|
88
72
|
const payload = await this.connection.memory.getValue(call.callHash);
|
|
89
73
|
if (!payload) {
|
|
90
74
|
throw new Defer({ topic, call });
|
|
91
75
|
}
|
|
92
|
-
return this.codec.decodeReturn(taskName, payload);
|
|
76
|
+
return this.registry.codec.decodeReturn(taskName, payload);
|
|
93
77
|
};
|
|
94
78
|
}
|
|
95
79
|
async gather(...promises) {
|
package/dist/app.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,GAIN,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
|
package/dist/app.test.js
CHANGED
|
@@ -1,17 +1,18 @@
|
|
|
1
1
|
import { beforeEach, suite, test } from "node:test";
|
|
2
2
|
import { strictEqual } from "node:assert";
|
|
3
|
-
import { AppConsumer, AppWorker,
|
|
3
|
+
import { ActiveWorker, AppConsumer, AppWorker, } from "./app.js";
|
|
4
4
|
import { Defer, Server, SubscriberServer, } from "./connection.js";
|
|
5
5
|
import { InMemoryCache, InMemoryEmitter, InMemoryStore, } from "./backends/in-memory.js";
|
|
6
|
-
import {
|
|
6
|
+
import { DemoJsonCodec } from "./demo-json-codec.js";
|
|
7
7
|
import { NotFoundError, SpawnLimitError } from "./errors.js";
|
|
8
8
|
import { deepStrictEqual, ok, rejects } from "node:assert/strict";
|
|
9
9
|
import { LocalApp, LocalBrrr } from "./local-app.js";
|
|
10
10
|
import { BrrrShutdownSymbol, BrrrTaskDoneEventSymbol } from "./symbol.js";
|
|
11
11
|
import { parse, stringify } from "superjson";
|
|
12
12
|
import { matrixSuite } from "./fixture.test.js";
|
|
13
|
+
import { decoder, encoder } from "./internal-codecs.js";
|
|
13
14
|
await matrixSuite(import.meta.filename, async (_, matrix) => {
|
|
14
|
-
const codec = new
|
|
15
|
+
const codec = new DemoJsonCodec();
|
|
15
16
|
const topic = matrix.topic;
|
|
16
17
|
const subtopics = {
|
|
17
18
|
t1: "t1",
|
|
@@ -23,23 +24,20 @@ await matrixSuite(import.meta.filename, async (_, matrix) => {
|
|
|
23
24
|
let emitter;
|
|
24
25
|
let server;
|
|
25
26
|
// Test tasks
|
|
26
|
-
function bar(a) {
|
|
27
|
+
function bar(_, a) {
|
|
27
28
|
return 456;
|
|
28
29
|
}
|
|
29
30
|
async function foo(app, a) {
|
|
30
31
|
return (await app.call(bar, topic)(a + 1)) + 1;
|
|
31
32
|
}
|
|
32
|
-
function one(a) {
|
|
33
|
+
function one(_, a) {
|
|
33
34
|
return a + 5;
|
|
34
35
|
}
|
|
35
36
|
async function two(app, a) {
|
|
36
37
|
const result = await app.call("one", subtopics.t1)(a + 3);
|
|
37
38
|
strictEqual(result, 15);
|
|
38
39
|
}
|
|
39
|
-
const handlers = {
|
|
40
|
-
bar: taskFn(bar),
|
|
41
|
-
foo,
|
|
42
|
-
};
|
|
40
|
+
const handlers = { bar, foo };
|
|
43
41
|
function waitFor(call, predicate) {
|
|
44
42
|
return new Promise((resolve) => {
|
|
45
43
|
emitter.onEventSymbol?.(BrrrTaskDoneEventSymbol, async ({ callHash }) => {
|
|
@@ -71,13 +69,11 @@ await matrixSuite(import.meta.filename, async (_, matrix) => {
|
|
|
71
69
|
return done;
|
|
72
70
|
});
|
|
73
71
|
await test(AppConsumer.name, async () => {
|
|
74
|
-
function foo(n) {
|
|
72
|
+
function foo(_, n) {
|
|
75
73
|
return n * n;
|
|
76
74
|
}
|
|
77
75
|
const workerServer = new SubscriberServer(store, cache, emitter);
|
|
78
|
-
const appWorker = new AppWorker(codec, workerServer, {
|
|
79
|
-
foo: taskFn(foo),
|
|
80
|
-
});
|
|
76
|
+
const appWorker = new AppWorker(codec, workerServer, { foo });
|
|
81
77
|
workerServer.listen(topic, appWorker.handle);
|
|
82
78
|
const appConsumer = new AppConsumer(codec, workerServer);
|
|
83
79
|
const call = await codec.encodeCall(foo.name, [5]);
|
|
@@ -90,17 +86,17 @@ await matrixSuite(import.meta.filename, async (_, matrix) => {
|
|
|
90
86
|
return done;
|
|
91
87
|
});
|
|
92
88
|
await test(LocalBrrr.name, async () => {
|
|
93
|
-
const brrr = new LocalBrrr(topic, handlers, codec);
|
|
89
|
+
const brrr = new LocalBrrr(topic, { handlers, codec });
|
|
94
90
|
strictEqual(await brrr.run(foo)(122), 457);
|
|
95
91
|
});
|
|
96
92
|
await suite("gather", async () => {
|
|
97
93
|
async function callNestedGather(useBrrGather = true) {
|
|
98
94
|
const calls = [];
|
|
99
|
-
function foo(a) {
|
|
95
|
+
function foo(_, a) {
|
|
100
96
|
calls.push(`foo(${a})`);
|
|
101
97
|
return a * 2;
|
|
102
98
|
}
|
|
103
|
-
function bar(a) {
|
|
99
|
+
function bar(_, a) {
|
|
104
100
|
calls.push(`bar(${a})`);
|
|
105
101
|
return a - 1;
|
|
106
102
|
}
|
|
@@ -116,10 +112,9 @@ await matrixSuite(import.meta.filename, async (_, matrix) => {
|
|
|
116
112
|
return Promise.all(xs.map((x) => notBrrrTask(app, x)));
|
|
117
113
|
}
|
|
118
114
|
const localBrrr = new LocalBrrr(topic, {
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
}, codec);
|
|
115
|
+
codec,
|
|
116
|
+
handlers: { foo, bar, top },
|
|
117
|
+
});
|
|
123
118
|
await localBrrr.run(top)([3, 4]);
|
|
124
119
|
return calls;
|
|
125
120
|
}
|
|
@@ -147,9 +142,7 @@ await matrixSuite(import.meta.filename, async (_, matrix) => {
|
|
|
147
142
|
});
|
|
148
143
|
});
|
|
149
144
|
await test("topics separate app same connection", async () => {
|
|
150
|
-
const app1 = new AppWorker(codec, server, {
|
|
151
|
-
one: taskFn(one),
|
|
152
|
-
});
|
|
145
|
+
const app1 = new AppWorker(codec, server, { one });
|
|
153
146
|
const app2 = new AppWorker(codec, server, { two });
|
|
154
147
|
const call = await codec.encodeCall("two", [7]);
|
|
155
148
|
const done = waitFor(call);
|
|
@@ -161,9 +154,7 @@ await matrixSuite(import.meta.filename, async (_, matrix) => {
|
|
|
161
154
|
await test("topics separate app separate connection", async () => {
|
|
162
155
|
const server1 = new SubscriberServer(store, cache, emitter);
|
|
163
156
|
const server2 = new SubscriberServer(store, cache, emitter);
|
|
164
|
-
const app1 = new AppWorker(codec, server1, {
|
|
165
|
-
one: taskFn(one),
|
|
166
|
-
});
|
|
157
|
+
const app1 = new AppWorker(codec, server1, { one });
|
|
167
158
|
const app2 = new AppWorker(codec, server2, { two });
|
|
168
159
|
server1.listen(subtopics.t1, app1.handle);
|
|
169
160
|
server2.listen(subtopics.t2, app2.handle);
|
|
@@ -173,10 +164,7 @@ await matrixSuite(import.meta.filename, async (_, matrix) => {
|
|
|
173
164
|
return done;
|
|
174
165
|
});
|
|
175
166
|
await test("topics same app", async () => {
|
|
176
|
-
const app = new AppWorker(codec, server, {
|
|
177
|
-
one: taskFn(one),
|
|
178
|
-
two,
|
|
179
|
-
});
|
|
167
|
+
const app = new AppWorker(codec, server, { one, two });
|
|
180
168
|
server.listen(subtopics.t1, app.handle);
|
|
181
169
|
server.listen(subtopics.t2, app.handle);
|
|
182
170
|
const call = await codec.encodeCall("two", [7]);
|
|
@@ -195,13 +183,13 @@ await matrixSuite(import.meta.filename, async (_, matrix) => {
|
|
|
195
183
|
.map(() => app.call(foo)(a - 1)));
|
|
196
184
|
return results.reduce((sum, val) => sum + val);
|
|
197
185
|
}
|
|
198
|
-
const brrr = new LocalBrrr(topic, { foo }
|
|
186
|
+
const brrr = new LocalBrrr(topic, { codec, handlers: { foo } });
|
|
199
187
|
await brrr.run(foo)(3);
|
|
200
188
|
deepStrictEqual(Object.fromEntries(calls), { 0: 1, 1: 2, 2: 2, 3: 2 });
|
|
201
189
|
});
|
|
202
190
|
await test("no debounce parent", async () => {
|
|
203
191
|
const calls = new Map();
|
|
204
|
-
function one(
|
|
192
|
+
function one(_ctx, _a) {
|
|
205
193
|
calls.set("one", (calls.get("one") || 0) + 1);
|
|
206
194
|
return 1;
|
|
207
195
|
}
|
|
@@ -211,14 +199,14 @@ await matrixSuite(import.meta.filename, async (_, matrix) => {
|
|
|
211
199
|
return results.reduce((sum, val) => sum + val);
|
|
212
200
|
}
|
|
213
201
|
const brrr = new LocalBrrr(topic, {
|
|
214
|
-
|
|
215
|
-
foo,
|
|
216
|
-
}
|
|
202
|
+
codec,
|
|
203
|
+
handlers: { one, foo },
|
|
204
|
+
});
|
|
217
205
|
await brrr.run(foo)(50);
|
|
218
206
|
deepStrictEqual(Object.fromEntries(calls), { one: 50, foo: 51 });
|
|
219
207
|
});
|
|
220
208
|
await test("app handler names", async () => {
|
|
221
|
-
function foo(a) {
|
|
209
|
+
function foo(_, a) {
|
|
222
210
|
return a * a;
|
|
223
211
|
}
|
|
224
212
|
async function bar(app, a) {
|
|
@@ -226,7 +214,7 @@ await matrixSuite(import.meta.filename, async (_, matrix) => {
|
|
|
226
214
|
(await app.call("quux/zim")(a)));
|
|
227
215
|
}
|
|
228
216
|
const worker = new AppWorker(codec, server, {
|
|
229
|
-
"quux/zim":
|
|
217
|
+
"quux/zim": foo,
|
|
230
218
|
"quux/bar": bar,
|
|
231
219
|
});
|
|
232
220
|
const localApp = new LocalApp(topic, server, worker);
|
|
@@ -286,7 +274,7 @@ await matrixSuite(import.meta.filename, async (_, matrix) => {
|
|
|
286
274
|
class MyError extends Error {
|
|
287
275
|
}
|
|
288
276
|
let errors = 5;
|
|
289
|
-
async function foo(a) {
|
|
277
|
+
async function foo(_, a) {
|
|
290
278
|
if (errors) {
|
|
291
279
|
errors--;
|
|
292
280
|
throw new MyError();
|
|
@@ -296,7 +284,7 @@ await matrixSuite(import.meta.filename, async (_, matrix) => {
|
|
|
296
284
|
}
|
|
297
285
|
const app = new AppWorker(codec, server, {
|
|
298
286
|
...handlers,
|
|
299
|
-
foo
|
|
287
|
+
foo,
|
|
300
288
|
});
|
|
301
289
|
while (true) {
|
|
302
290
|
try {
|
|
@@ -319,7 +307,7 @@ await matrixSuite(import.meta.filename, async (_, matrix) => {
|
|
|
319
307
|
class MyError extends Error {
|
|
320
308
|
}
|
|
321
309
|
let errors = 5;
|
|
322
|
-
function bar(a) {
|
|
310
|
+
function bar(_, a) {
|
|
323
311
|
if (errors) {
|
|
324
312
|
errors--;
|
|
325
313
|
throw new MyError();
|
|
@@ -332,7 +320,7 @@ await matrixSuite(import.meta.filename, async (_, matrix) => {
|
|
|
332
320
|
const app = new AppWorker(codec, server, {
|
|
333
321
|
...handlers,
|
|
334
322
|
foo,
|
|
335
|
-
bar
|
|
323
|
+
bar,
|
|
336
324
|
});
|
|
337
325
|
while (true) {
|
|
338
326
|
try {
|
|
@@ -361,16 +349,16 @@ await matrixSuite(import.meta.filename, async (_, matrix) => {
|
|
|
361
349
|
const n = await app.call(fib)(1000n);
|
|
362
350
|
deepStrictEqual(n, 43466557686937456435688527675040625802564660517371780402481729089536555417949051890403879840079255169295922593080322634775209689623239873322471161642996440906533187938298969649928516003704476137795166849228875n);
|
|
363
351
|
}
|
|
364
|
-
const codec = new
|
|
352
|
+
const codec = new DemoJsonCodec({ stringify, parse });
|
|
365
353
|
const app = new AppWorker(codec, server, { fib, top });
|
|
366
354
|
await app.schedule(top, topic)();
|
|
367
355
|
await Promise.all(new Array(10).keys().map(() => server.loop(topic, app.handle, flusher)));
|
|
368
356
|
});
|
|
369
357
|
await test("app subclass", async () => {
|
|
370
|
-
function bar(a) {
|
|
358
|
+
function bar(_, a) {
|
|
371
359
|
return a + 1;
|
|
372
360
|
}
|
|
373
|
-
function baz(a) {
|
|
361
|
+
function baz(_, a) {
|
|
374
362
|
return a + 10;
|
|
375
363
|
}
|
|
376
364
|
async function foo(app, a) {
|
|
@@ -390,11 +378,7 @@ await matrixSuite(import.meta.filename, async (_, matrix) => {
|
|
|
390
378
|
return response;
|
|
391
379
|
};
|
|
392
380
|
}
|
|
393
|
-
const app = new MyAppWorker(codec, server, {
|
|
394
|
-
foo,
|
|
395
|
-
bar: taskFn(bar),
|
|
396
|
-
baz: taskFn(baz),
|
|
397
|
-
});
|
|
381
|
+
const app = new MyAppWorker(codec, server, { foo, bar, baz });
|
|
398
382
|
await app.schedule(foo, topic)(4);
|
|
399
383
|
await server.loop(topic, app.myHandle, flusher);
|
|
400
384
|
strictEqual(await app.read(foo)(4), 14);
|
|
@@ -420,7 +404,7 @@ await matrixSuite(import.meta.filename, async (_, matrix) => {
|
|
|
420
404
|
strictEqual(n, server.spawnLimit);
|
|
421
405
|
});
|
|
422
406
|
await test("spawn limit recoverable", async () => {
|
|
423
|
-
function one(
|
|
407
|
+
function one(_ctx, _a) {
|
|
424
408
|
return 1;
|
|
425
409
|
}
|
|
426
410
|
async function foo(app, a) {
|
|
@@ -434,7 +418,7 @@ await matrixSuite(import.meta.filename, async (_, matrix) => {
|
|
|
434
418
|
});
|
|
435
419
|
const n = server.spawnLimit + 1;
|
|
436
420
|
let spawnLimitEncountered = false;
|
|
437
|
-
const app = new AppWorker(codec, server, { one
|
|
421
|
+
const app = new AppWorker(codec, server, { one, foo });
|
|
438
422
|
while (true) {
|
|
439
423
|
// reset cache
|
|
440
424
|
Object.defineProperty(cache, "cache", {
|
|
@@ -458,7 +442,7 @@ await matrixSuite(import.meta.filename, async (_, matrix) => {
|
|
|
458
442
|
});
|
|
459
443
|
await test("spawn limit breadth mapped", async () => {
|
|
460
444
|
const calls = new Map();
|
|
461
|
-
function one(
|
|
445
|
+
function one(_ctx, _a) {
|
|
462
446
|
calls.set("one", (calls.get("one") || 0) + 1);
|
|
463
447
|
return 1;
|
|
464
448
|
}
|
|
@@ -467,14 +451,14 @@ await matrixSuite(import.meta.filename, async (_, matrix) => {
|
|
|
467
451
|
const results = await app.gather(...new Array(a).keys().map((i) => app.call(one)(i)));
|
|
468
452
|
return results.reduce((sum, val) => sum + val);
|
|
469
453
|
}
|
|
470
|
-
const app = new AppWorker(codec, server, { one
|
|
454
|
+
const app = new AppWorker(codec, server, { one, foo });
|
|
471
455
|
await app.schedule(foo, topic)(server.spawnLimit + 4);
|
|
472
456
|
await rejects(server.loop(topic, app.handle, flusher), SpawnLimitError);
|
|
473
457
|
strictEqual(calls.get(foo.name), 1);
|
|
474
458
|
});
|
|
475
459
|
await test("spawn limit breadth manual", async () => {
|
|
476
460
|
const calls = new Map();
|
|
477
|
-
function one(
|
|
461
|
+
function one(_ctx, _a) {
|
|
478
462
|
calls.set("one", (calls.get("one") || 0) + 1);
|
|
479
463
|
return 1;
|
|
480
464
|
}
|
|
@@ -491,7 +475,7 @@ await matrixSuite(import.meta.filename, async (_, matrix) => {
|
|
|
491
475
|
Object.defineProperty(server, "spawnLimit", {
|
|
492
476
|
value: 100,
|
|
493
477
|
});
|
|
494
|
-
const app = new AppWorker(codec, server, { foo, one
|
|
478
|
+
const app = new AppWorker(codec, server, { foo, one });
|
|
495
479
|
await app.schedule(foo, topic)(server.spawnLimit + 3);
|
|
496
480
|
await rejects(server.loop(topic, app.handle, flusher));
|
|
497
481
|
deepStrictEqual(Object.fromEntries(calls), {
|
|
@@ -502,7 +486,7 @@ await matrixSuite(import.meta.filename, async (_, matrix) => {
|
|
|
502
486
|
await test("spawn limit cached", async () => {
|
|
503
487
|
let n = 0;
|
|
504
488
|
let final = undefined;
|
|
505
|
-
function same(a) {
|
|
489
|
+
function same(_, a) {
|
|
506
490
|
n++;
|
|
507
491
|
return a;
|
|
508
492
|
}
|
|
@@ -516,13 +500,43 @@ await matrixSuite(import.meta.filename, async (_, matrix) => {
|
|
|
516
500
|
Object.defineProperty(server, "spawnLimit", {
|
|
517
501
|
value: 100,
|
|
518
502
|
});
|
|
519
|
-
const app = new AppWorker(codec, server, { foo, same
|
|
503
|
+
const app = new AppWorker(codec, server, { foo, same });
|
|
520
504
|
await app.schedule(foo, topic)(server.spawnLimit + 5);
|
|
521
505
|
await server.loop(topic, app.handle, flusher);
|
|
522
506
|
strictEqual(n, 1);
|
|
523
507
|
strictEqual(final, server.spawnLimit + 5);
|
|
524
508
|
});
|
|
525
509
|
});
|
|
510
|
+
await test("custom context", async () => {
|
|
511
|
+
// Inject task name as a custom context.
|
|
512
|
+
class MyCodec {
|
|
513
|
+
async decodeReturn(_, payload) {
|
|
514
|
+
return decoder.decode(payload);
|
|
515
|
+
}
|
|
516
|
+
async encodeCall(taskName, _args) {
|
|
517
|
+
return { taskName, payload: new Uint8Array(), callHash: taskName };
|
|
518
|
+
}
|
|
519
|
+
async invokeTask(call, handler, _activeWorker) {
|
|
520
|
+
// @ts-expect-error type cheat for test.
|
|
521
|
+
const result = await handler(call.taskName);
|
|
522
|
+
return encoder.encode(result);
|
|
523
|
+
}
|
|
524
|
+
}
|
|
525
|
+
function foo(ctx) {
|
|
526
|
+
return ctx;
|
|
527
|
+
}
|
|
528
|
+
function bar(ctx) {
|
|
529
|
+
return ctx;
|
|
530
|
+
}
|
|
531
|
+
const codec = new MyCodec();
|
|
532
|
+
const server = new Server(store, cache, publisher);
|
|
533
|
+
const app = new AppWorker(codec, server, { foo, bar });
|
|
534
|
+
await app.schedule(foo, topic)();
|
|
535
|
+
await app.schedule(bar, topic)();
|
|
536
|
+
await server.loop(topic, app.handle, flusher);
|
|
537
|
+
strictEqual(await app.read(foo)(), "foo");
|
|
538
|
+
strictEqual(await app.read(bar)(), "bar");
|
|
539
|
+
});
|
|
526
540
|
});
|
|
527
541
|
});
|
|
528
542
|
//# sourceMappingURL=app.test.js.map
|
package/dist/app.test.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.test.js","sourceRoot":"","sources":["../src/app.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"app.test.js","sourceRoot":"","sources":["../src/app.test.ts"],"names":[],"mappings":"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"}
|
package/dist/codec.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
+
import type { ActiveWorker, Task } from "./app.ts";
|
|
1
2
|
import type { Call } from "./call.ts";
|
|
2
|
-
export interface Codec {
|
|
3
|
+
export interface Codec<C> {
|
|
3
4
|
encodeCall<A extends unknown[]>(taskName: string, args: A): Promise<Call>;
|
|
4
|
-
invokeTask<A extends unknown[], R>(call: Call, task:
|
|
5
|
+
invokeTask<A extends unknown[], R>(call: Call, task: Task<C, A, R>, activeWorker: ActiveWorker<C>): Promise<Uint8Array>;
|
|
5
6
|
decodeReturn(taskName: string, payload: Uint8Array): unknown;
|
|
6
7
|
}
|
|
7
8
|
//# sourceMappingURL=codec.d.ts.map
|
package/dist/codec.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codec.d.ts","sourceRoot":"","sources":["../src/codec.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEtC,MAAM,WAAW,KAAK;
|
|
1
|
+
{"version":3,"file":"codec.d.ts","sourceRoot":"","sources":["../src/codec.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AACnD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEtC,MAAM,WAAW,KAAK,CAAC,CAAC;IACtB,UAAU,CAAC,CAAC,SAAS,OAAO,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1E,UAAU,CAAC,CAAC,SAAS,OAAO,EAAE,EAAE,CAAC,EAC/B,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACnB,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC,GAC5B,OAAO,CAAC,UAAU,CAAC,CAAC;IAEvB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC;CAC9D"}
|
package/dist/codec.test.d.ts
CHANGED
package/dist/codec.test.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codec.test.d.ts","sourceRoot":"","sources":["../src/codec.test.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"codec.test.d.ts","sourceRoot":"","sources":["../src/codec.test.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAGxC,wBAAsB,iBAAiB,CAAC,CAAC,EACvC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EACf,cAAc,EAAE,MAAM,CAAC,iBAyFxB"}
|
package/dist/codec.test.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { suite, test } from "node:test";
|
|
2
2
|
import { deepStrictEqual, notDeepStrictEqual } from "node:assert/strict";
|
|
3
|
-
|
|
3
|
+
import { ActiveWorker } from "./app.js";
|
|
4
|
+
export async function codecContractTest(codec, contextFactory) {
|
|
4
5
|
await suite("store-contract", async () => {
|
|
5
6
|
const cases = {
|
|
6
7
|
simple: [
|
|
@@ -50,15 +51,18 @@ export async function codecContractTest(codec) {
|
|
|
50
51
|
}
|
|
51
52
|
});
|
|
52
53
|
await suite("round trip: encodeCall -> invokeTask -> decodeReturn", async () => {
|
|
53
|
-
async function identify(a) {
|
|
54
|
+
async function identify(_, a) {
|
|
54
55
|
return a;
|
|
55
56
|
}
|
|
56
57
|
for (const [name, args] of Object.entries(cases)) {
|
|
57
58
|
await test(name, async () => {
|
|
58
59
|
const call = await codec.encodeCall(identify.name, [args[0]]);
|
|
59
|
-
const
|
|
60
|
+
const context = contextFactory();
|
|
61
|
+
const result = await codec.invokeTask(call, identify,
|
|
62
|
+
// @ts-expect-error type cheat for test
|
|
63
|
+
() => null);
|
|
60
64
|
const decoded = await codec.decodeReturn(identify.name, result);
|
|
61
|
-
deepStrictEqual(decoded, await identify(args[1]));
|
|
65
|
+
deepStrictEqual(decoded, await identify(context, args[1]));
|
|
62
66
|
});
|
|
63
67
|
}
|
|
64
68
|
});
|
package/dist/codec.test.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codec.test.js","sourceRoot":"","sources":["../src/codec.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"codec.test.js","sourceRoot":"","sources":["../src/codec.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAEzE,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,KAAe,EACf,cAAuB;IAEvB,MAAM,KAAK,CAAC,gBAAgB,EAAE,KAAK,IAAI,EAAE;QACvC,MAAM,KAAK,GAA2C;YACpD,MAAM,EAAE;gBACN,CAAC,CAAC,EAAE,CAAC,CAAC;gBACN,CAAC,CAAC,EAAE,CAAC,CAAC;aACP;YACD,eAAe,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACrD,eAAe,EAAE;gBACf,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC7B,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;aAC9B;YACD,kBAAkB,EAAE;gBAClB;oBACE;wBACE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;wBACd,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;qBACf;iBACF;gBACD;oBACE;wBACE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;wBACd,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;qBACf;iBACF;aACF;YACD,gBAAgB,EAAE;gBAChB,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;gBAC1C,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;aAC3C;YACD,KAAK,EAAE;gBACL,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC;gBAC9C,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC;aAC/C;YACD,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YACjD,aAAa,EAAE;gBACb,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC;gBACpC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;aACrC;SACO,CAAC;QAEX,MAAM,KAAK,CAAC,yBAAyB,EAAE,KAAK,IAAI,EAAE;YAChD,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBACjD,MAAM,IAAI,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE;oBAC1B,eAAe;oBACf,eAAe,CAAC,GAAG,IAAI,CAAC,CAAC;oBAEzB,eAAe,CACb,MAAM,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EACtC,MAAM,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CACvC,CAAC;gBACJ,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,MAAM,KAAK,CACT,sDAAsD,EACtD,KAAK,IAAI,EAAE;YACT,KAAK,UAAU,QAAQ,CAAI,CAAI,EAAE,CAAI;gBACnC,OAAO,CAAC,CAAC;YACX,CAAC;YAED,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBACjD,MAAM,IAAI,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE;oBAC1B,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC9D,MAAM,OAAO,GAAG,cAAc,EAAE,CAAC;oBACjC,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,UAAU,CACnC,IAAI,EACJ,QAAQ;oBACR,uCAAuC;oBACvC,GAAG,EAAE,CAAC,IAAoB,CAC3B,CAAC;oBACF,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;oBAChE,eAAe,CAAC,OAAO,EAAE,MAAM,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC7D,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CACF,CAAC;QAEF,MAAM,IAAI,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;YACpE,MAAM,CAAC,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAChD,MAAM,CAAC,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAChD,MAAM,CAAC,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAChD,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACzB,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACzB,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1,29 +1,33 @@
|
|
|
1
1
|
import type { Call } from "./call.ts";
|
|
2
2
|
import type { Codec } from "./codec.ts";
|
|
3
|
+
import { ActiveWorker, type Task } from "./app.ts";
|
|
3
4
|
type Json = {
|
|
4
5
|
parse: <T = unknown>(text: string) => T;
|
|
5
6
|
stringify: (value: unknown) => string;
|
|
6
7
|
};
|
|
8
|
+
export type DemoJsonCodecContext = ActiveWorker<DemoJsonCodecContext>;
|
|
7
9
|
/**
|
|
8
|
-
*
|
|
10
|
+
* An opinionated codec for demo/testing purposes.
|
|
9
11
|
*
|
|
10
|
-
*
|
|
12
|
+
* Uses built-in `JSON` for serialization and deserialization, and expects
|
|
13
|
+
* `ActiveWorker` as a context. Can take custom JSON implementation to
|
|
14
|
+
* customize its behavior.
|
|
11
15
|
*
|
|
12
16
|
* It tries its best to ensure that the serialized data is deterministic by
|
|
13
17
|
* sorting object keys recursively before serialization, but it's not
|
|
14
18
|
* reccommended for production use; the primary purpose of this codec is
|
|
15
19
|
* executable documentation.
|
|
16
20
|
*/
|
|
17
|
-
export declare class
|
|
21
|
+
export declare class DemoJsonCodec implements Codec<DemoJsonCodecContext> {
|
|
18
22
|
static readonly algorithm = "sha256";
|
|
19
23
|
static readonly binaryToTextEncoding = "hex";
|
|
20
24
|
private readonly json;
|
|
21
25
|
constructor(json?: Json);
|
|
22
26
|
decodeReturn(_: string, payload: Uint8Array): Promise<unknown>;
|
|
23
27
|
encodeCall<A extends unknown[]>(taskName: string, args: A): Promise<Call>;
|
|
24
|
-
invokeTask<A extends unknown[], R>(call: Call,
|
|
28
|
+
invokeTask<A extends unknown[], R>(call: Call, handler: Task<DemoJsonCodecContext, A, R>, activeWorker: DemoJsonCodecContext): Promise<Uint8Array>;
|
|
25
29
|
protected hashCall<A extends unknown>(taskName: string, args: A): Promise<string>;
|
|
26
30
|
protected static sortObjectKeys<T>(unordered: T): T;
|
|
27
31
|
}
|
|
28
32
|
export {};
|
|
29
|
-
//# sourceMappingURL=
|
|
33
|
+
//# sourceMappingURL=demo-json-codec.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"demo-json-codec.d.ts","sourceRoot":"","sources":["../src/demo-json-codec.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAExC,OAAO,EAAE,YAAY,EAAE,KAAK,IAAI,EAAE,MAAM,UAAU,CAAC;AAEnD,KAAK,IAAI,GAAG;IACV,KAAK,EAAE,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC,CAAC;IACxC,SAAS,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,YAAY,CAAC,oBAAoB,CAAC,CAAC;AAEtE;;;;;;;;;;;GAWG;AACH,qBAAa,aAAc,YAAW,KAAK,CAAC,oBAAoB,CAAC;IAC/D,gBAAuB,SAAS,YAAY;IAC5C,gBAAuB,oBAAoB,SACJ;IAEvC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAO;gBAET,IAAI,GAAE,IAAW;IAIvB,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC;IAK9D,UAAU,CAAC,CAAC,SAAS,OAAO,EAAE,EACzC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,CAAC,GACN,OAAO,CAAC,IAAI,CAAC;IAQH,UAAU,CAAC,CAAC,SAAS,OAAO,EAAE,EAAE,CAAC,EAC5C,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,IAAI,CAAC,oBAAoB,EAAE,CAAC,EAAE,CAAC,CAAC,EACzC,YAAY,EAAE,oBAAoB,GACjC,OAAO,CAAC,UAAU,CAAC;cAQN,QAAQ,CAAC,CAAC,SAAS,OAAO,EACxC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,CAAC,GACN,OAAO,CAAC,MAAM,CAAC;IAOlB,SAAS,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,GAAG,CAAC;CAepD"}
|
|
@@ -1,16 +1,19 @@
|
|
|
1
1
|
import { createHash } from "node:crypto";
|
|
2
2
|
import { decoder, encoder } from "./internal-codecs.js";
|
|
3
|
+
import { ActiveWorker } from "./app.js";
|
|
3
4
|
/**
|
|
4
|
-
*
|
|
5
|
+
* An opinionated codec for demo/testing purposes.
|
|
5
6
|
*
|
|
6
|
-
*
|
|
7
|
+
* Uses built-in `JSON` for serialization and deserialization, and expects
|
|
8
|
+
* `ActiveWorker` as a context. Can take custom JSON implementation to
|
|
9
|
+
* customize its behavior.
|
|
7
10
|
*
|
|
8
11
|
* It tries its best to ensure that the serialized data is deterministic by
|
|
9
12
|
* sorting object keys recursively before serialization, but it's not
|
|
10
13
|
* reccommended for production use; the primary purpose of this codec is
|
|
11
14
|
* executable documentation.
|
|
12
15
|
*/
|
|
13
|
-
export class
|
|
16
|
+
export class DemoJsonCodec {
|
|
14
17
|
static algorithm = "sha256";
|
|
15
18
|
static binaryToTextEncoding = "hex";
|
|
16
19
|
json;
|
|
@@ -22,39 +25,39 @@ export class NaiveJsonCodec {
|
|
|
22
25
|
return this.json.parse(decoded);
|
|
23
26
|
}
|
|
24
27
|
async encodeCall(taskName, args) {
|
|
25
|
-
const sortedArgs = args.map(
|
|
28
|
+
const sortedArgs = args.map(DemoJsonCodec.sortObjectKeys);
|
|
26
29
|
const data = this.json.stringify(sortedArgs);
|
|
27
30
|
const payload = encoder.encode(data);
|
|
28
31
|
const callHash = await this.hashCall(taskName, sortedArgs);
|
|
29
32
|
return { taskName, payload, callHash };
|
|
30
33
|
}
|
|
31
|
-
async invokeTask(call,
|
|
34
|
+
async invokeTask(call, handler, activeWorker) {
|
|
32
35
|
const decoded = decoder.decode(call.payload);
|
|
33
36
|
const args = this.json.parse(decoded);
|
|
34
|
-
const result = await
|
|
37
|
+
const result = await handler(activeWorker, ...args);
|
|
35
38
|
const resultJson = this.json.stringify(result);
|
|
36
39
|
return encoder.encode(resultJson);
|
|
37
40
|
}
|
|
38
41
|
async hashCall(taskName, args) {
|
|
39
42
|
const data = this.json.stringify([taskName, args]);
|
|
40
|
-
return createHash(
|
|
43
|
+
return createHash(DemoJsonCodec.algorithm)
|
|
41
44
|
.update(data)
|
|
42
|
-
.digest(
|
|
45
|
+
.digest(DemoJsonCodec.binaryToTextEncoding);
|
|
43
46
|
}
|
|
44
47
|
static sortObjectKeys(unordered) {
|
|
45
48
|
if (!unordered || typeof unordered !== "object") {
|
|
46
49
|
return unordered;
|
|
47
50
|
}
|
|
48
51
|
if (Array.isArray(unordered)) {
|
|
49
|
-
return unordered.map(
|
|
52
|
+
return unordered.map(DemoJsonCodec.sortObjectKeys);
|
|
50
53
|
}
|
|
51
54
|
const entries = Object.keys(unordered)
|
|
52
55
|
.sort()
|
|
53
56
|
.map((key) => [
|
|
54
57
|
key,
|
|
55
|
-
|
|
58
|
+
DemoJsonCodec.sortObjectKeys(unordered[key]),
|
|
56
59
|
]);
|
|
57
60
|
return Object.fromEntries(entries);
|
|
58
61
|
}
|
|
59
62
|
}
|
|
60
|
-
//# sourceMappingURL=
|
|
63
|
+
//# sourceMappingURL=demo-json-codec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"demo-json-codec.js","sourceRoot":"","sources":["../src/demo-json-codec.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6B,UAAU,EAAE,MAAM,aAAa,CAAC;AAGpE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAa,MAAM,UAAU,CAAC;AASnD;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,aAAa;IACjB,MAAM,CAAU,SAAS,GAAG,QAAQ,CAAC;IACrC,MAAM,CAAU,oBAAoB,GACzC,KAAoC,CAAC;IAEtB,IAAI,CAAO;IAE5B,YAAmB,OAAa,IAAI;QAClC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAEM,KAAK,CAAC,YAAY,CAAC,CAAS,EAAE,OAAmB;QACtD,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACxC,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IAEM,KAAK,CAAC,UAAU,CACrB,QAAgB,EAChB,IAAO;QAEP,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;QAC1D,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAC7C,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACrC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAC3D,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;IACzC,CAAC;IAEM,KAAK,CAAC,UAAU,CACrB,IAAU,EACV,OAAyC,EACzC,YAAkC;QAElC,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAM,CAAC;QAC3C,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,YAAY,EAAE,GAAG,IAAI,CAAC,CAAC;QACpD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC/C,OAAO,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IACpC,CAAC;IAES,KAAK,CAAC,QAAQ,CACtB,QAAgB,EAChB,IAAO;QAEP,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;QACnD,OAAO,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC;aACvC,MAAM,CAAC,IAAI,CAAC;aACZ,MAAM,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC;IAChD,CAAC;IAES,MAAM,CAAC,cAAc,CAAI,SAAY;QAC7C,IAAI,CAAC,SAAS,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;YAChD,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;YAC7B,OAAO,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,cAAc,CAAM,CAAC;QAC1D,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;aACnC,IAAI,EAAE;aACN,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC;YACZ,GAAG;YACH,aAAa,CAAC,cAAc,CAAC,SAAS,CAAC,GAA6B,CAAC,CAAC;SACvE,CAAC,CAAC;QACL,OAAO,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"demo-json-codec.test.d.ts","sourceRoot":"","sources":["../src/demo-json-codec.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { suite, test } from "node:test";
|
|
2
|
+
import { DemoJsonCodec } from "./demo-json-codec.js";
|
|
3
|
+
import { codecContractTest } from "./codec.test.js";
|
|
4
|
+
await suite(import.meta.filename, async () => {
|
|
5
|
+
await test(DemoJsonCodec.name, async () => {
|
|
6
|
+
await codecContractTest(new DemoJsonCodec(),
|
|
7
|
+
// @ts-expect-error type cheat for test
|
|
8
|
+
() => null);
|
|
9
|
+
});
|
|
10
|
+
});
|
|
11
|
+
//# sourceMappingURL=demo-json-codec.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"demo-json-codec.test.js","sourceRoot":"","sources":["../src/demo-json-codec.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,aAAa,EAA6B,MAAM,sBAAsB,CAAC;AAChF,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEpD,MAAM,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;IAC3C,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE;QACxC,MAAM,iBAAiB,CACrB,IAAI,aAAa,EAAE;QACnB,uCAAuC;QACvC,GAAG,EAAE,CAAC,IAA4B,CACnC,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
export { type Task, type Handlers,
|
|
1
|
+
export { type Task, type Handlers, type Registry, AppConsumer, AppWorker, ActiveWorker, } from "./app.ts";
|
|
2
2
|
export type { Call } from "./call.ts";
|
|
3
3
|
export type { Codec } from "./codec.ts";
|
|
4
4
|
export { Server, SubscriberServer, Connection, Defer, type DeferredCall, type Response, type Request, type RequestHandler, } from "./connection.ts";
|
|
5
5
|
export type { Publisher, Subscriber } from "./emitter.ts";
|
|
6
6
|
export { LocalApp, LocalBrrr } from "./local-app.ts";
|
|
7
|
-
export {
|
|
7
|
+
export { DemoJsonCodec, type DemoJsonCodecContext } from "./demo-json-codec.ts";
|
|
8
8
|
export type { Store, Cache } from "./store.ts";
|
|
9
9
|
export { BrrrShutdownSymbol, BrrrTaskDoneEventSymbol } from "./symbol.ts";
|
|
10
10
|
export { NotFoundError, CasRetryLimitReachedError, SpawnLimitError, TaskNotFoundError, TagMismatchError, MalformedTaggedTupleError, } from "./errors.ts";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,IAAI,EACT,KAAK,QAAQ,EACb,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,IAAI,EACT,KAAK,QAAQ,EACb,KAAK,QAAQ,EACb,WAAW,EACX,SAAS,EACT,YAAY,GACb,MAAM,UAAU,CAAC;AAClB,YAAY,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACtC,YAAY,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EACL,MAAM,EACN,gBAAgB,EAChB,UAAU,EACV,KAAK,EACL,KAAK,YAAY,EACjB,KAAK,QAAQ,EACb,KAAK,OAAO,EACZ,KAAK,cAAc,GACpB,MAAM,iBAAiB,CAAC;AACzB,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,KAAK,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAChF,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAC1E,OAAO,EACL,aAAa,EACb,yBAAyB,EACzB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,yBAAyB,GAC1B,MAAM,aAAa,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { AppConsumer, AppWorker, ActiveWorker, } from "./app.js";
|
|
2
2
|
export { Server, SubscriberServer, Connection, Defer, } from "./connection.js";
|
|
3
3
|
export { LocalApp, LocalBrrr } from "./local-app.js";
|
|
4
|
-
export {
|
|
4
|
+
export { DemoJsonCodec } from "./demo-json-codec.js";
|
|
5
5
|
export { BrrrShutdownSymbol, BrrrTaskDoneEventSymbol } from "./symbol.js";
|
|
6
6
|
export { NotFoundError, CasRetryLimitReachedError, SpawnLimitError, TaskNotFoundError, TagMismatchError, MalformedTaggedTupleError, } from "./errors.js";
|
|
7
7
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,WAAW,EACX,SAAS,EACT,YAAY,GACb,MAAM,UAAU,CAAC;AAGlB,OAAO,EACL,MAAM,EACN,gBAAgB,EAChB,UAAU,EACV,KAAK,GAKN,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,aAAa,EAA6B,MAAM,sBAAsB,CAAC;AAEhF,OAAO,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAC1E,OAAO,EACL,aAAa,EACb,yBAAyB,EACzB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,yBAAyB,GAC1B,MAAM,aAAa,CAAC"}
|
package/dist/local-app.d.ts
CHANGED
|
@@ -1,21 +1,19 @@
|
|
|
1
1
|
import { SubscriberServer } from "./connection.ts";
|
|
2
|
-
import { AppWorker, type
|
|
3
|
-
|
|
4
|
-
export declare class LocalApp {
|
|
2
|
+
import { AppWorker, type NoContextTask, type TaskIdentifier, type Registry } from "./app.ts";
|
|
3
|
+
export declare class LocalApp<C> {
|
|
5
4
|
readonly topic: string;
|
|
6
5
|
readonly server: SubscriberServer;
|
|
7
|
-
readonly app: AppWorker
|
|
6
|
+
readonly app: AppWorker<C>;
|
|
8
7
|
private hasRun;
|
|
9
|
-
constructor(topic: string, server: SubscriberServer, app: AppWorker);
|
|
10
|
-
schedule<A extends unknown[], R>(handler: Parameters<typeof this.app.schedule<A, R>>[0]):
|
|
11
|
-
read<A extends unknown[], R>(...args: Parameters<typeof this.app.read<A, R>>):
|
|
8
|
+
constructor(topic: string, server: SubscriberServer, app: AppWorker<C>);
|
|
9
|
+
schedule<A extends unknown[], R>(handler: Parameters<typeof this.app.schedule<A, R>>[0]): NoContextTask<A, void>;
|
|
10
|
+
read<A extends unknown[], R>(...args: Parameters<typeof this.app.read<A, R>>): NoContextTask<A, R>;
|
|
12
11
|
run(): void;
|
|
13
12
|
}
|
|
14
|
-
export declare class LocalBrrr {
|
|
13
|
+
export declare class LocalBrrr<C> {
|
|
15
14
|
private readonly topic;
|
|
16
|
-
private readonly
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
run<A extends unknown[], R>(taskIdentifier: TaskIdentifier<A, R>): (...args: StripLeadingActiveWorker<A>) => Promise<R>;
|
|
15
|
+
private readonly registry;
|
|
16
|
+
constructor(topic: string, registry: Registry<C>);
|
|
17
|
+
run<A extends unknown[], R>(taskIdentifier: TaskIdentifier<C, A, R>): (...args: A) => Promise<R>;
|
|
20
18
|
}
|
|
21
19
|
//# sourceMappingURL=local-app.d.ts.map
|
package/dist/local-app.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local-app.d.ts","sourceRoot":"","sources":["../src/local-app.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EACL,SAAS,EACT,KAAK,
|
|
1
|
+
{"version":3,"file":"local-app.d.ts","sourceRoot":"","sources":["../src/local-app.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EACL,SAAS,EACT,KAAK,aAAa,EAElB,KAAK,cAAc,EAEnB,KAAK,QAAQ,EACd,MAAM,UAAU,CAAC;AAUlB,qBAAa,QAAQ,CAAC,CAAC;IACrB,SAAgB,KAAK,EAAE,MAAM,CAAC;IAC9B,SAAgB,MAAM,EAAE,gBAAgB,CAAC;IACzC,SAAgB,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;IAElC,OAAO,CAAC,MAAM,CAAS;gBAGrB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,gBAAgB,EACxB,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC;IAOZ,QAAQ,CAAC,CAAC,SAAS,OAAO,EAAE,EAAE,CAAC,EACpC,OAAO,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GACrD,aAAa,CAAC,CAAC,EAAE,IAAI,CAAC;IAIlB,IAAI,CAAC,CAAC,SAAS,OAAO,EAAE,EAAE,CAAC,EAChC,GAAG,IAAI,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAC9C,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC;IAIf,GAAG,IAAI,IAAI;CAOnB;AAED,qBAAa,SAAS,CAAC,CAAC;IACtB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAc;gBAEpB,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;IAKhD,GAAG,CAAC,CAAC,SAAS,OAAO,EAAE,EAAE,CAAC,EAAE,cAAc,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAe1D,GAAG,MAAM,CAAC,KAAG,OAAO,CAAC,CAAC,CAAC;CAwBxC"}
|
package/dist/local-app.js
CHANGED
|
@@ -29,25 +29,23 @@ export class LocalApp {
|
|
|
29
29
|
}
|
|
30
30
|
export class LocalBrrr {
|
|
31
31
|
topic;
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
constructor(topic, handlers, codec) {
|
|
32
|
+
registry;
|
|
33
|
+
constructor(topic, registry) {
|
|
35
34
|
this.topic = topic;
|
|
36
|
-
this.
|
|
37
|
-
this.codec = codec;
|
|
35
|
+
this.registry = registry;
|
|
38
36
|
}
|
|
39
37
|
run(taskIdentifier) {
|
|
40
38
|
const store = new InMemoryStore();
|
|
41
39
|
const cache = new InMemoryCache();
|
|
42
40
|
const emitter = new InMemoryEmitter();
|
|
43
41
|
const server = new SubscriberServer(store, cache, emitter);
|
|
44
|
-
const worker = new AppWorker(this.codec, server, this.handlers);
|
|
42
|
+
const worker = new AppWorker(this.registry.codec, server, this.registry.handlers);
|
|
45
43
|
const localApp = new LocalApp(this.topic, server, worker);
|
|
46
|
-
const taskName = taskIdentifierToName(taskIdentifier, this.handlers);
|
|
44
|
+
const taskName = taskIdentifierToName(taskIdentifier, this.registry.handlers);
|
|
47
45
|
return async (...args) => {
|
|
48
46
|
localApp.run();
|
|
49
47
|
await localApp.schedule(taskName)(...args);
|
|
50
|
-
const call = await this.codec.encodeCall(taskName, args);
|
|
48
|
+
const call = await this.registry.codec.encodeCall(taskName, args);
|
|
51
49
|
return new Promise((resolve) => {
|
|
52
50
|
emitter.onEventSymbol(BrrrTaskDoneEventSymbol, async ({ callHash }) => {
|
|
53
51
|
if (callHash === call.callHash) {
|
|
@@ -58,7 +56,7 @@ export class LocalBrrr {
|
|
|
58
56
|
callHash,
|
|
59
57
|
});
|
|
60
58
|
}
|
|
61
|
-
const result = this.codec.decodeReturn(taskName, payload);
|
|
59
|
+
const result = this.registry.codec.decodeReturn(taskName, payload);
|
|
62
60
|
resolve(result);
|
|
63
61
|
}
|
|
64
62
|
});
|
package/dist/local-app.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local-app.js","sourceRoot":"","sources":["../src/local-app.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EACL,SAAS,
|
|
1
|
+
{"version":3,"file":"local-app.js","sourceRoot":"","sources":["../src/local-app.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"naive-json-codec.d.ts","sourceRoot":"","sources":["../src/naive-json-codec.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAGxC,KAAK,IAAI,GAAG;IACV,KAAK,EAAE,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC,CAAC;IACxC,SAAS,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,CAAC;CACvC,CAAC;AAEF;;;;;;;;;GASG;AACH,qBAAa,cAAe,YAAW,KAAK;IAC1C,gBAAuB,SAAS,YAAY;IAC5C,gBAAuB,oBAAoB,SACJ;IAEvC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAO;gBAET,IAAI,GAAE,IAAW;IAIvB,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC;IAK9D,UAAU,CAAC,CAAC,SAAS,OAAO,EAAE,EACzC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,CAAC,GACN,OAAO,CAAC,IAAI,CAAC;IAQH,UAAU,CAAC,CAAC,SAAS,OAAO,EAAE,EAAE,CAAC,EAC5C,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,GAC/B,OAAO,CAAC,UAAU,CAAC;cAQN,QAAQ,CAAC,CAAC,SAAS,OAAO,EACxC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,CAAC,GACN,OAAO,CAAC,MAAM,CAAC;IAOlB,SAAS,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,GAAG,CAAC;CAepD"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"naive-json-codec.js","sourceRoot":"","sources":["../src/naive-json-codec.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6B,UAAU,EAAE,MAAM,aAAa,CAAC;AAGpE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAOxD;;;;;;;;;GASG;AACH,MAAM,OAAO,cAAc;IAClB,MAAM,CAAU,SAAS,GAAG,QAAQ,CAAC;IACrC,MAAM,CAAU,oBAAoB,GACzC,KAAoC,CAAC;IAEtB,IAAI,CAAO;IAE5B,YAAmB,OAAa,IAAI;QAClC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAEM,KAAK,CAAC,YAAY,CAAC,CAAS,EAAE,OAAmB;QACtD,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACxC,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IAEM,KAAK,CAAC,UAAU,CACrB,QAAgB,EAChB,IAAO;QAEP,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;QAC3D,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAC7C,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACrC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAC3D,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;IACzC,CAAC;IAEM,KAAK,CAAC,UAAU,CACrB,IAAU,EACV,IAAgC;QAEhC,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAM,CAAC;QAC3C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;QACnC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC/C,OAAO,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IACpC,CAAC;IAES,KAAK,CAAC,QAAQ,CACtB,QAAgB,EAChB,IAAO;QAEP,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;QACnD,OAAO,UAAU,CAAC,cAAc,CAAC,SAAS,CAAC;aACxC,MAAM,CAAC,IAAI,CAAC;aACZ,MAAM,CAAC,cAAc,CAAC,oBAAoB,CAAC,CAAC;IACjD,CAAC;IAES,MAAM,CAAC,cAAc,CAAI,SAAY;QAC7C,IAAI,CAAC,SAAS,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;YAChD,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;YAC7B,OAAO,SAAS,CAAC,GAAG,CAAC,cAAc,CAAC,cAAc,CAAM,CAAC;QAC3D,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;aACnC,IAAI,EAAE;aACN,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC;YACZ,GAAG;YACH,cAAc,CAAC,cAAc,CAAC,SAAS,CAAC,GAA6B,CAAC,CAAC;SACxE,CAAC,CAAC;QACL,OAAO,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"naive-json-codec.test.d.ts","sourceRoot":"","sources":["../src/naive-json-codec.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { suite, test } from "node:test";
|
|
2
|
-
import { NaiveJsonCodec } from "./naive-json-codec.js";
|
|
3
|
-
import { codecContractTest } from "./codec.test.js";
|
|
4
|
-
await suite(import.meta.filename, async () => {
|
|
5
|
-
await test(NaiveJsonCodec.name, async () => {
|
|
6
|
-
await codecContractTest(new NaiveJsonCodec());
|
|
7
|
-
});
|
|
8
|
-
});
|
|
9
|
-
//# sourceMappingURL=naive-json-codec.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"naive-json-codec.test.js","sourceRoot":"","sources":["../src/naive-json-codec.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEpD,MAAM,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;IAC3C,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE;QACzC,MAAM,iBAAiB,CAAC,IAAI,cAAc,EAAE,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|