@livestore/adapter-node 0.4.0 → 0.5.0-dev.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/dist/.tsbuildinfo +1 -1
- package/dist/client-session/adapter.d.ts +1 -1
- package/dist/client-session/adapter.d.ts.map +1 -1
- package/dist/client-session/adapter.js +58 -39
- package/dist/client-session/adapter.js.map +1 -1
- package/dist/devtools/devtools-server.d.ts.map +1 -1
- package/dist/devtools/devtools-server.js +12 -14
- package/dist/devtools/devtools-server.js.map +1 -1
- package/dist/devtools/vite-dev-server.d.ts +7 -11
- package/dist/devtools/vite-dev-server.d.ts.map +1 -1
- package/dist/devtools/vite-dev-server.js +5 -6
- package/dist/devtools/vite-dev-server.js.map +1 -1
- package/dist/leader-thread-shared.d.ts +4 -4
- package/dist/leader-thread-shared.d.ts.map +1 -1
- package/dist/leader-thread-shared.js +13 -12
- package/dist/leader-thread-shared.js.map +1 -1
- package/dist/make-leader-worker.d.ts +4 -4
- package/dist/make-leader-worker.d.ts.map +1 -1
- package/dist/make-leader-worker.js +62 -71
- package/dist/make-leader-worker.js.map +1 -1
- package/dist/rpc-worker.d.ts +8 -0
- package/dist/rpc-worker.d.ts.map +1 -0
- package/dist/rpc-worker.js +5 -0
- package/dist/rpc-worker.js.map +1 -0
- package/dist/webchannel.d.ts +1 -1
- package/dist/webchannel.d.ts.map +1 -1
- package/dist/webchannel.js +17 -18
- package/dist/webchannel.js.map +1 -1
- package/dist/worker-schema.d.ts +248 -212
- package/dist/worker-schema.d.ts.map +1 -1
- package/dist/worker-schema.js +62 -53
- package/dist/worker-schema.js.map +1 -1
- package/package.json +22 -31
- package/src/client-session/adapter.ts +104 -77
- package/src/devtools/devtools-server.ts +33 -30
- package/src/devtools/vite-dev-server.ts +7 -9
- package/src/leader-thread-shared.ts +24 -25
- package/src/make-leader-worker.ts +163 -127
- package/src/rpc-worker.ts +28 -0
- package/src/webchannel.ts +21 -28
- package/src/worker-schema.ts +115 -149
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import './thread-polyfill.ts';
|
|
2
|
-
import type * as otel from '@opentelemetry/api';
|
|
3
2
|
import type { SyncOptions } from '@livestore/common';
|
|
4
3
|
import { LogConfig } from '@livestore/common';
|
|
5
4
|
import type { LiveStoreSchema } from '@livestore/common/schema';
|
|
6
5
|
import { Effect, Schema } from '@livestore/utils/effect';
|
|
6
|
+
import type * as otel from '@opentelemetry/api';
|
|
7
7
|
import type { TestingOverrides } from './leader-thread-shared.ts';
|
|
8
8
|
export type WorkerOptions = {
|
|
9
9
|
schema: LiveStoreSchema;
|
|
@@ -15,13 +15,13 @@ export type WorkerOptions = {
|
|
|
15
15
|
serviceName?: string;
|
|
16
16
|
};
|
|
17
17
|
testing?: TestingOverrides;
|
|
18
|
-
} & LogConfig.
|
|
18
|
+
} & LogConfig.LoggerOptions;
|
|
19
19
|
export declare const getWorkerArgs: () => {
|
|
20
20
|
readonly clientId: string;
|
|
21
21
|
readonly storeId: string;
|
|
22
22
|
readonly sessionId: string;
|
|
23
|
-
readonly extraArgs
|
|
23
|
+
readonly extraArgs?: Schema.Json | undefined;
|
|
24
24
|
};
|
|
25
25
|
export declare const makeWorker: (options: WorkerOptions) => void;
|
|
26
|
-
export declare const makeWorkerEffect: (options: WorkerOptions) => Effect.Effect<
|
|
26
|
+
export declare const makeWorkerEffect: (options: WorkerOptions) => Effect.Effect<never, import("effect/unstable/workers/WorkerError").WorkerError, never>;
|
|
27
27
|
//# sourceMappingURL=make-leader-worker.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"make-leader-worker.d.ts","sourceRoot":"","sources":["../src/make-leader-worker.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAA;AAQ7B,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"make-leader-worker.d.ts","sourceRoot":"","sources":["../src/make-leader-worker.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAA;AAQ7B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AACpD,OAAO,EAAE,SAAS,EAAgB,MAAM,mBAAmB,CAAA;AAG3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAK/D,OAAO,EACL,MAAM,EAQN,MAAM,EAGP,MAAM,yBAAyB,CAAA;AAEhC,OAAO,KAAK,KAAK,IAAI,MAAM,oBAAoB,CAAA;AAE/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AAIjE,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE,eAAe,CAAA;IACvB,IAAI,CAAC,EAAE,WAAW,CAAA;IAClB,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IACtC,WAAW,CAAC,EAAE;QACZ,MAAM,CAAC,EAAE,IAAI,CAAC,MAAM,CAAA;QACpB,8CAA8C;QAC9C,WAAW,CAAC,EAAE,MAAM,CAAA;KACrB,CAAA;IACD,OAAO,CAAC,EAAE,gBAAgB,CAAA;CAC3B,GAAG,SAAS,CAAC,aAAa,CAAA;AAE3B,eAAO,MAAM,aAAa;;;;;CAAqE,CAAA;AAE/F,eAAO,MAAM,UAAU,GAAI,SAAS,aAAa,SAEhD,CAAA;AAED,eAAO,MAAM,gBAAgB,GAAI,SAAS,aAAa,2FA6BtD,CAAA"}
|
|
@@ -9,7 +9,8 @@ import { Eventlog, LeaderThreadCtx, streamEventsWithSyncState } from '@livestore
|
|
|
9
9
|
import { LiveStoreEvent } from '@livestore/common/schema';
|
|
10
10
|
import { loadSqlite3Wasm } from '@livestore/sqlite-wasm/load-wasm';
|
|
11
11
|
import { sqliteDbFactory } from '@livestore/sqlite-wasm/node';
|
|
12
|
-
import {
|
|
12
|
+
import { isDevEnv } from '@livestore/utils';
|
|
13
|
+
import { Effect, FetchHttpClient, Layer, OtelTracer, Queue, References, RpcServer, RpcWorker, Schema, Scope, Stream, } from '@livestore/utils/effect';
|
|
13
14
|
import { PlatformNode } from '@livestore/utils/node';
|
|
14
15
|
import { makeLeaderThread } from "./leader-thread-shared.js";
|
|
15
16
|
import * as WorkerSchema from "./worker-schema.js";
|
|
@@ -19,93 +20,83 @@ export const makeWorker = (options) => {
|
|
|
19
20
|
};
|
|
20
21
|
export const makeWorkerEffect = (options) => {
|
|
21
22
|
const TracingLive = options.otelOptions?.tracer !== undefined
|
|
22
|
-
?
|
|
23
|
-
:
|
|
23
|
+
? OtelTracer.layerWithoutOtelTracer.pipe(Layer.provideMerge(Layer.succeed(OtelTracer.OtelTracer, options.otelOptions.tracer)))
|
|
24
|
+
: Layer.empty;
|
|
24
25
|
// Merge the runtime dependencies once so we can provide them together without chaining Effect.provide.
|
|
25
|
-
const runtimeLayer = Layer.mergeAll(FetchHttpClient.layer, PlatformNode.NodeFileSystem.layer, TracingLive
|
|
26
|
-
return
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
26
|
+
const runtimeLayer = Layer.mergeAll(FetchHttpClient.layer, PlatformNode.NodeFileSystem.layer, TracingLive);
|
|
27
|
+
return RpcServer.make(WorkerSchema.LeaderWorkerInnerRpcs).pipe(Effect.provide(makeWorkerRunnerInner(options)), Effect.provide(RpcServer.layerProtocolWorkerRunner), Effect.provide(PlatformNode.NodeWorkerRunner.layer), Effect.scoped, Effect.tapCauseLogPretty, Effect.annotateLogs({
|
|
28
|
+
thread: options.otelOptions?.serviceName ?? 'livestore-node-leader-thread',
|
|
29
|
+
processId: process.pid,
|
|
30
|
+
}), Effect.provide(Layer.mergeAll(options.logger ?? Layer.empty, Layer.succeed(References.MinimumLogLevel, options.logLevel ?? (isDevEnv() === true ? 'Debug' : 'Info')))), Effect.provide(runtimeLayer));
|
|
31
|
+
};
|
|
32
|
+
const makeWorkerRunnerInner = (options) => WorkerSchema.LeaderWorkerInnerRpcs.toLayer(Effect.gen(function* () {
|
|
33
|
+
const leaderThreadScope = yield* Scope.make();
|
|
34
|
+
yield* Effect.addFinalizer((exit) => Scope.close(leaderThreadScope, exit));
|
|
35
|
+
const leaderThreadContextOnce = yield* Effect.cached(Effect.gen(function* () {
|
|
36
|
+
const { storeId, clientId, storage, devtools, syncPayloadEncoded } = yield* RpcWorker.initialMessage(WorkerSchema.LeaderWorkerInnerInitialMessage.payloadSchema);
|
|
37
|
+
const sqlite3 = yield* Effect.promise(() => loadSqlite3Wasm()).pipe(Effect.withSpan('@livestore/adapter-node:leader-thread:loadSqlite3Wasm'));
|
|
38
|
+
const makeSqliteDb = yield* sqliteDbFactory({ sqlite3 });
|
|
39
|
+
const layer = yield* makeLeaderThread({
|
|
40
|
+
storeId,
|
|
41
|
+
clientId,
|
|
42
|
+
storage,
|
|
43
|
+
devtools,
|
|
44
|
+
syncOptions: options.sync,
|
|
45
|
+
schema: options.schema,
|
|
46
|
+
testing: options.testing,
|
|
47
|
+
makeSqliteDb,
|
|
48
|
+
syncPayloadEncoded,
|
|
49
|
+
syncPayloadSchema: options.syncPayloadSchema,
|
|
50
|
+
});
|
|
51
|
+
return yield* Layer.buildWithScope(layer, leaderThreadScope);
|
|
52
|
+
}).pipe(Scope.provide(leaderThreadScope), Effect.tapCauseLogPretty, UnknownError.mapToUnknownError, Effect.withSpan('@livestore/adapter-node:worker:InitialMessage'), Effect.orDie));
|
|
53
|
+
const provideLeaderThread = (effect) => Effect.gen(function* () {
|
|
54
|
+
const leaderThreadContext = yield* leaderThreadContextOnce;
|
|
55
|
+
return yield* effect.pipe(Effect.provide(leaderThreadContext));
|
|
56
|
+
});
|
|
57
|
+
return WorkerSchema.LeaderWorkerInnerRpcs.of({
|
|
58
|
+
GetRecreateSnapshot: () => Effect.gen(function* () {
|
|
59
|
+
const workerCtx = yield* LeaderThreadCtx;
|
|
60
|
+
const snapshot = workerCtx.dbState.export();
|
|
61
|
+
return { snapshot, migrationsReport: workerCtx.initialState.migrationsReport };
|
|
62
|
+
}).pipe(provideLeaderThread, Effect.withSpan('@livestore/adapter-node:worker:GetRecreateSnapshot')),
|
|
44
63
|
PullStream: ({ cursor }) => Effect.gen(function* () {
|
|
45
64
|
const { syncProcessor } = yield* LeaderThreadCtx;
|
|
46
65
|
return syncProcessor.pull({ cursor });
|
|
47
|
-
}).pipe(Stream.
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
ExportEventlog: () => Effect.andThen(LeaderThreadCtx, (_) => _.dbEventlog.export()).pipe(Effect.withSpan('@livestore/adapter-node:worker:ExportEventlog')),
|
|
59
|
-
GetLeaderHead: Effect.fn('@livestore/adapter-node:worker:GetLeaderHead')(function* () {
|
|
66
|
+
}).pipe(provideLeaderThread, Stream.unwrap),
|
|
67
|
+
PushToLeader: ({ batch }) => Effect.andThen(LeaderThreadCtx, ({ syncProcessor }) => syncProcessor.push(batch.map((event) => new LiveStoreEvent.Client.EncodedWithMeta(event)))).pipe(provideLeaderThread, Effect.uninterruptible, Effect.withSpan('@livestore/adapter-node:worker:PushToLeader')),
|
|
68
|
+
StreamEvents: (options) => LeaderThreadCtx.pipe(Effect.map(({ dbEventlog, syncProcessor }) => streamEventsWithSyncState({
|
|
69
|
+
dbEventlog,
|
|
70
|
+
syncState: syncProcessor.syncState,
|
|
71
|
+
options: options,
|
|
72
|
+
})), provideLeaderThread, Stream.unwrap, Stream.withSpan('@livestore/adapter-node:worker:StreamEvents')),
|
|
73
|
+
Export: () => LeaderThreadCtx.pipe(Effect.flatMap((_) => Effect.sync(() => _.dbState.export())), provideLeaderThread, Effect.withSpan('@livestore/adapter-node:worker:Export')),
|
|
74
|
+
ExportEventlog: () => LeaderThreadCtx.pipe(Effect.flatMap((_) => Effect.sync(() => _.dbEventlog.export())), provideLeaderThread, Effect.withSpan('@livestore/adapter-node:worker:ExportEventlog')),
|
|
75
|
+
BootStatusStream: () => LeaderThreadCtx.pipe(Effect.map((_) => Stream.fromQueue(_.bootStatusQueue)), provideLeaderThread, Stream.unwrap),
|
|
76
|
+
GetLeaderHead: () => Effect.gen(function* () {
|
|
60
77
|
const workerCtx = yield* LeaderThreadCtx;
|
|
61
78
|
return Eventlog.getClientHeadFromDb(workerCtx.dbEventlog);
|
|
62
|
-
}),
|
|
63
|
-
GetLeaderSyncState: Effect.
|
|
79
|
+
}).pipe(provideLeaderThread, Effect.withSpan('@livestore/adapter-node:worker:GetLeaderHead')),
|
|
80
|
+
GetLeaderSyncState: () => Effect.gen(function* () {
|
|
64
81
|
const workerCtx = yield* LeaderThreadCtx;
|
|
65
82
|
return yield* workerCtx.syncProcessor.syncState;
|
|
66
|
-
}),
|
|
83
|
+
}).pipe(provideLeaderThread, Effect.withSpan('@livestore/adapter-node:worker:GetLeaderSyncState')),
|
|
67
84
|
SyncStateStream: () => Effect.gen(function* () {
|
|
68
85
|
const workerCtx = yield* LeaderThreadCtx;
|
|
69
86
|
return workerCtx.syncProcessor.syncState.changes;
|
|
70
|
-
}).pipe(Stream.
|
|
71
|
-
GetNetworkStatus: Effect.
|
|
87
|
+
}).pipe(provideLeaderThread, Stream.unwrap),
|
|
88
|
+
GetNetworkStatus: () => Effect.gen(function* () {
|
|
72
89
|
const workerCtx = yield* LeaderThreadCtx;
|
|
73
90
|
return yield* workerCtx.networkStatus;
|
|
74
|
-
}),
|
|
91
|
+
}).pipe(provideLeaderThread, Effect.withSpan('@livestore/adapter-node:worker:GetNetworkStatus')),
|
|
75
92
|
NetworkStatusStream: () => Effect.gen(function* () {
|
|
76
93
|
const workerCtx = yield* LeaderThreadCtx;
|
|
77
94
|
return workerCtx.networkStatus.changes;
|
|
78
|
-
}).pipe(Stream.
|
|
79
|
-
GetRecreateSnapshot: Effect.fn('@livestore/adapter-node:worker:GetRecreateSnapshot')(function* () {
|
|
80
|
-
const workerCtx = yield* LeaderThreadCtx;
|
|
81
|
-
// const result = yield* Deferred.await(workerCtx.initialSetupDeferred)
|
|
82
|
-
// NOTE we can only return the cached snapshot once as it's transferred (i.e. disposed), so we need to set it to undefined
|
|
83
|
-
// const cachedSnapshot =
|
|
84
|
-
// result._tag === 'Recreate' ? yield* Ref.getAndSet(result.snapshotRef, undefined) : undefined
|
|
85
|
-
// return cachedSnapshot ?? workerCtx.db.export()
|
|
86
|
-
const snapshot = workerCtx.dbState.export();
|
|
87
|
-
return { snapshot, migrationsReport: workerCtx.initialState.migrationsReport };
|
|
88
|
-
}),
|
|
95
|
+
}).pipe(provideLeaderThread, Stream.unwrap),
|
|
89
96
|
Shutdown: Effect.fn('@livestore/adapter-node:worker:Shutdown')(function* () {
|
|
90
|
-
// const { db, dbEventlog } = yield* LeaderThreadCtx
|
|
91
97
|
yield* Effect.logDebug('[@livestore/adapter-node:worker] Shutdown');
|
|
92
|
-
// if (devtools.enabled) {
|
|
93
|
-
// yield* FiberSet.clear(devtools.connections)
|
|
94
|
-
// }
|
|
95
|
-
// db.close()
|
|
96
|
-
// dbEventlog.close()
|
|
97
|
-
// Buy some time for Otel to flush
|
|
98
|
-
// TODO find a cleaner way to do this
|
|
99
|
-
// yield* Effect.sleep(1000)
|
|
100
98
|
}),
|
|
101
|
-
ExtraDevtoolsMessage: ({ message }) => Effect.andThen(LeaderThreadCtx, (_) => _.extraIncomingMessagesQueue
|
|
102
|
-
})
|
|
103
|
-
|
|
104
|
-
processId: process.pid,
|
|
105
|
-
}), LogConfig.withLoggerConfig({ logger: options.logger, logLevel: options.logLevel }, { threadName: options.otelOptions?.serviceName ?? 'livestore-node-leader-thread' }),
|
|
106
|
-
// TODO bring back with Effect 4 once it's easier to work with replacing loggers.
|
|
107
|
-
// We basically only want to provide this logger if it's replacing the default logger, not if there's a custom logger already provided.
|
|
108
|
-
// Effect.provide(Logger.prettyWithThread(options.otelOptions?.serviceName ?? 'livestore-node-leader-thread')),
|
|
109
|
-
Effect.provide(runtimeLayer));
|
|
110
|
-
};
|
|
99
|
+
ExtraDevtoolsMessage: ({ message }) => Effect.andThen(LeaderThreadCtx, (_) => Queue.offer(_.extraIncomingMessagesQueue, message)).pipe(provideLeaderThread, Effect.asVoid, Effect.withSpan('@livestore/adapter-node:worker:ExtraDevtoolsMessage')),
|
|
100
|
+
});
|
|
101
|
+
}));
|
|
111
102
|
//# sourceMappingURL=make-leader-worker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"make-leader-worker.js","sourceRoot":"","sources":["../src/make-leader-worker.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAA;AAC7B,OAAO,SAAS,MAAM,gBAAgB,CAAA;AAEtC,IAAI,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,IAAI,EAAE,CAAC;IACpD,SAAS,CAAC,IAAI,EAAE,CAAA;IAChB,SAAS,CAAC,eAAe,EAAE,CAAA;AAC7B,CAAC;
|
|
1
|
+
{"version":3,"file":"make-leader-worker.js","sourceRoot":"","sources":["../src/make-leader-worker.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Effect, RpcClientError, Stream } from '@livestore/utils/effect';
|
|
2
|
+
export type WithoutRpcClientError<E> = E extends {
|
|
3
|
+
readonly _tag: infer Tag;
|
|
4
|
+
} ? 'RpcClientError' extends Tag ? never : E : E;
|
|
5
|
+
export declare const isRpcClientError: (error: unknown) => error is RpcClientError.RpcClientError;
|
|
6
|
+
export declare const dieOnRpcClientError: <A, E, R>(effect: Effect.Effect<A, E, R>) => Effect.Effect<A, WithoutRpcClientError<E>, R>;
|
|
7
|
+
export declare const dieOnRpcClientErrorStream: <A, E, R>(stream: Stream.Stream<A, E, R>) => Stream.Stream<A, WithoutRpcClientError<E>, R>;
|
|
8
|
+
//# sourceMappingURL=rpc-worker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rpc-worker.d.ts","sourceRoot":"","sources":["../src/rpc-worker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,cAAc,EAAU,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAEhF,MAAM,MAAM,qBAAqB,CAAC,CAAC,IAAI,CAAC,SAAS;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,CAAA;CAAE,GACzE,gBAAgB,SAAS,GAAG,GAC1B,KAAK,GACL,CAAC,GACH,CAAC,CAAA;AAEL,eAAO,MAAM,gBAAgB,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,cAAc,CAAC,cACzB,CAAA;AAEjD,eAAO,MAAM,mBAAmB,GAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EACzC,QAAQ,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAC7B,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC,CAGK,CAAA;AAEpD,eAAO,MAAM,yBAAyB,GAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAC/C,QAAQ,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAC7B,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC,CAOK,CAAA"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Effect, RpcClientError, Schema, Stream } from '@livestore/utils/effect';
|
|
2
|
+
export const isRpcClientError = (error) => Schema.is(RpcClientError.RpcClientError)(error);
|
|
3
|
+
export const dieOnRpcClientError = (effect) => effect.pipe(Effect.catchIf(isRpcClientError, (error) => Effect.die(error)));
|
|
4
|
+
export const dieOnRpcClientErrorStream = (stream) => stream.pipe(Stream.catchIf(isRpcClientError, (error) => Stream.die(error), (error) => Stream.fail(error)));
|
|
5
|
+
//# sourceMappingURL=rpc-worker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rpc-worker.js","sourceRoot":"","sources":["../src/rpc-worker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAQhF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,KAAc,EAA0C,EAAE,CACzF,MAAM,CAAC,EAAE,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,CAAA;AAEjD,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,MAA8B,EACiB,EAAE,CAChD,MAAwF,CAAC,IAAI,CAC5F,MAAM,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CACd,CAAA;AAEpD,MAAM,CAAC,MAAM,yBAAyB,GAAG,CACvC,MAA8B,EACiB,EAAE,CAChD,MAAwF,CAAC,IAAI,CAC5F,MAAM,CAAC,OAAO,CACZ,gBAAgB,EAChB,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAC5B,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAC9B,CAC+C,CAAA"}
|
package/dist/webchannel.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Effect, Schema, Scope, WebChannel } from '@livestore/utils/effect';
|
|
2
2
|
export declare const makeBroadcastChannel: <Msg, MsgEncoded>({ channelName, schema, }: {
|
|
3
3
|
channelName: string;
|
|
4
|
-
schema: Schema.
|
|
4
|
+
schema: Schema.Codec<Msg, MsgEncoded>;
|
|
5
5
|
}) => Effect.Effect<WebChannel.WebChannel<Msg, Msg>, never, Scope.Scope>;
|
|
6
6
|
//# sourceMappingURL=webchannel.d.ts.map
|
package/dist/webchannel.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webchannel.d.ts","sourceRoot":"","sources":["../src/webchannel.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"webchannel.d.ts","sourceRoot":"","sources":["../src/webchannel.ts"],"names":[],"mappings":"AAEA,OAAO,EAAY,MAAM,EAAe,MAAM,EAAE,KAAK,EAAU,UAAU,EAAE,MAAM,yBAAyB,CAAA;AAE1G,eAAO,MAAM,oBAAoB,GAAI,GAAG,EAAE,UAAU,EAAE,0BAGnD;IACD,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,UAAU,CAAC,CAAA;CACtC,KAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAmDlE,CAAA"}
|
package/dist/webchannel.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Deferred, Effect, Exit, Schema, Scope, Stream, WebChannel } from '@livestore/utils/effect';
|
|
1
|
+
import { Deferred, Effect, Exit, Queue, Schema, Scope, Stream, WebChannel } from '@livestore/utils/effect';
|
|
2
2
|
export const makeBroadcastChannel = ({ channelName, schema, }) => Effect.scopeWithCloseable((scope) => Effect.gen(function* () {
|
|
3
3
|
if (globalThis.BroadcastChannel === undefined) {
|
|
4
4
|
yield* Effect.logWarning('BroadcastChannel is not supported in this environment. Using a NoopChannel instead.');
|
|
@@ -7,27 +7,26 @@ export const makeBroadcastChannel = ({ channelName, schema, }) => Effect.scopeWi
|
|
|
7
7
|
// NOTE we're using `globalThis.BroadcastChannel` here because `BroadcastChannel`
|
|
8
8
|
// from `node:worker_threads` is not yet stable in Deno
|
|
9
9
|
const channel = new globalThis.BroadcastChannel(channelName);
|
|
10
|
-
yield* Effect.addFinalizer(() => Effect.try(() =>
|
|
11
|
-
const send = (message) => Effect.gen(function* () {
|
|
12
|
-
const messageEncoded = yield* Schema.encode(schema)(message);
|
|
13
|
-
channel.postMessage(messageEncoded);
|
|
14
|
-
});
|
|
15
|
-
// TODO also listen to `messageerror` in parallel
|
|
16
|
-
// const listen = Stream.fromEventListener<MessageEvent>(channel, 'message').pipe(
|
|
17
|
-
// Stream.map((_) => Schema.decodeEither(listenSchema)(_.data)),
|
|
18
|
-
// )
|
|
19
|
-
const listen = Stream.asyncPush((emit) => Effect.acquireRelease(Effect.gen(function* () {
|
|
20
|
-
channel.onmessage = (event) => {
|
|
21
|
-
return emit.single(Schema.decodeEither(schema)(event.data));
|
|
22
|
-
};
|
|
23
|
-
return channel;
|
|
24
|
-
}), (channel) => Effect.sync(() => {
|
|
10
|
+
yield* Effect.addFinalizer(() => Effect.try(() => {
|
|
25
11
|
// NOTE not all BroadcastChannel implementations have the `unref` method
|
|
26
12
|
if (typeof channel.unref === 'function') {
|
|
27
13
|
channel.unref();
|
|
28
14
|
}
|
|
29
|
-
|
|
30
|
-
|
|
15
|
+
channel.close();
|
|
16
|
+
}).pipe(Effect.ignore));
|
|
17
|
+
const send = (message) => Effect.gen(function* () {
|
|
18
|
+
const messageEncoded = yield* Schema.encodeEffect(schema)(message);
|
|
19
|
+
channel.postMessage(messageEncoded);
|
|
20
|
+
});
|
|
21
|
+
// In Effect v4, forking a consumer is not a readiness handshake. Install the message
|
|
22
|
+
// listener while constructing the channel and buffer into a scoped queue so early messages
|
|
23
|
+
// are not lost before `listen` is pulled.
|
|
24
|
+
const messageQueue = yield* Effect.acquireRelease(Queue.unbounded(), Queue.shutdown);
|
|
25
|
+
channel.onmessage = (event) => {
|
|
26
|
+
Queue.offerUnsafe(messageQueue, event.data);
|
|
27
|
+
};
|
|
28
|
+
const listen = Stream.fromQueue(messageQueue).pipe(Stream.map((data) => Schema.decodeUnknownResult(schema)(data)));
|
|
29
|
+
const closedDeferred = yield* Effect.acquireRelease(Deferred.make(), Deferred.done(Exit.void));
|
|
31
30
|
const supportsTransferables = false;
|
|
32
31
|
return {
|
|
33
32
|
[WebChannel.WebChannelSymbol]: WebChannel.WebChannelSymbol,
|
package/dist/webchannel.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webchannel.js","sourceRoot":"","sources":["../src/webchannel.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"webchannel.js","sourceRoot":"","sources":["../src/webchannel.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AAE1G,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAkB,EACpD,WAAW,EACX,MAAM,GAIP,EAAsE,EAAE,CACvE,MAAM,CAAC,kBAAkB,CAAC,CAAC,KAAK,EAAE,EAAE,CAClC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,IAAI,UAAU,CAAC,gBAAgB,KAAK,SAAS,EAAE,CAAC;QAC9C,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,qFAAqF,CAAC,CAAA;QAC/G,OAAO,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,WAAW,EAAE,CAA2C,CAAA;IACpF,CAAC;IAED,iFAAiF;IACjF,uDAAuD;IACvD,MAAM,OAAO,GAAG,IAAI,UAAU,CAAC,gBAAgB,CAAC,WAAW,CAAgC,CAAA;IAE3F,KAAK,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,CAC9B,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE;QACd,wEAAwE;QACxE,IAAI,OAAO,OAAO,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;YACxC,OAAO,CAAC,KAAK,EAAE,CAAA;QACjB,CAAC;QACD,OAAO,CAAC,KAAK,EAAE,CAAA;IACjB,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CACvB,CAAA;IAED,MAAM,IAAI,GAAG,CAAC,OAAY,EAAE,EAAE,CAC5B,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,MAAM,cAAc,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAA;QAClE,OAAO,CAAC,WAAW,CAAC,cAAc,CAAC,CAAA;IACrC,CAAC,CAAC,CAAA;IAEJ,qFAAqF;IACrF,2FAA2F;IAC3F,0CAA0C;IAC1C,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,SAAS,EAAW,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAA;IAC7F,OAAO,CAAC,SAAS,GAAG,CAAC,KAAU,EAAE,EAAE;QACjC,KAAK,CAAC,WAAW,CAAC,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;IAC7C,CAAC,CAAA;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAElH,MAAM,cAAc,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,EAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;IACpG,MAAM,qBAAqB,GAAG,KAAK,CAAA;IAEnC,OAAO;QACL,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,UAAU,CAAC,gBAAgB;QAC1D,IAAI;QACJ,MAAM;QACN,cAAc;QACd,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE;QACxC,qBAAqB;QACrB,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC;KACxC,CAAA;AACH,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,+BAA+B,WAAW,GAAG,CAAC,CAAC,CACxE,CAAA"}
|