@livestore/adapter-node 0.0.0-snapshot-abe9ae4963ab9d3948906a6642c39bc33295e9f6 → 0.0.0-snapshot-1e670bae5105bde781e82aa2a8ee4f2dfc2446f0
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/index.d.ts.map +1 -1
- package/dist/client-session/index.js +8 -15
- package/dist/client-session/index.js.map +1 -1
- package/dist/devtools/devtools-server.d.ts.map +1 -1
- package/dist/devtools/devtools-server.js +24 -14
- package/dist/devtools/devtools-server.js.map +1 -1
- package/dist/devtools/mod.d.ts +1 -1
- package/dist/devtools/mod.d.ts.map +1 -1
- package/dist/devtools/vite-dev-server.d.ts +22 -2
- package/dist/devtools/vite-dev-server.d.ts.map +1 -1
- package/dist/devtools/vite-dev-server.js +12 -58
- package/dist/devtools/vite-dev-server.js.map +1 -1
- package/dist/in-memory/index.d.ts.map +1 -1
- package/dist/in-memory/index.js +9 -5
- package/dist/in-memory/index.js.map +1 -1
- package/dist/make-leader-worker.d.ts +1 -1
- package/dist/make-leader-worker.d.ts.map +1 -1
- package/dist/make-leader-worker.js +7 -2
- package/dist/make-leader-worker.js.map +1 -1
- package/dist/shutdown-channel.d.ts +1 -5
- package/dist/shutdown-channel.d.ts.map +1 -1
- package/dist/webchannel.d.ts.map +1 -1
- package/dist/webchannel.js +3 -3
- package/dist/webchannel.js.map +1 -1
- package/dist/worker-schema.d.ts +2 -2
- package/dist/worker-schema.d.ts.map +1 -1
- package/dist/worker-schema.js +2 -4
- package/dist/worker-schema.js.map +1 -1
- package/package.json +8 -8
- package/src/client-session/index.ts +21 -22
- package/src/devtools/devtools-server.ts +28 -16
- package/src/devtools/mod.ts +1 -1
- package/src/devtools/vite-dev-server.ts +30 -60
- package/src/in-memory/index.ts +22 -4
- package/src/make-leader-worker.ts +10 -3
- package/src/webchannel.ts +11 -8
- package/src/worker-schema.ts +2 -4
- package/src/devtools/types.d.ts +0 -33
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client-session/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,OAAO,EAMR,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client-session/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,OAAO,EAMR,MAAM,mBAAmB,CAAA;AAqB1B,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,SAAS,EAAE,GAAG,CAAA;IACd,6CAA6C;IAC7C,UAAU,EAAE,MAAM,CAAA;IAClB,wCAAwC;IACxC,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,yDAAyD;IACzD,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE;QACT;;;;WAIG;QACH,IAAI,EAAE,MAAM,CAAA;KACb,CAAA;CACF;AAED,eAAO,MAAM,eAAe,mFAMzB,kBAAkB,KAAG,OAkFA,CAAA"}
|
|
@@ -4,8 +4,9 @@ import { Devtools, UnexpectedError } from '@livestore/common';
|
|
|
4
4
|
import { makeNodeDevtoolsChannel } from '@livestore/devtools-node-common/web-channel';
|
|
5
5
|
import { loadSqlite3Wasm } from '@livestore/sqlite-wasm/load-wasm';
|
|
6
6
|
import { sqliteDbFactory } from '@livestore/sqlite-wasm/node';
|
|
7
|
-
import {
|
|
7
|
+
import { Cause, Effect, Fiber, ParseResult, Schema, Stream, SubscriptionRef, Worker, WorkerError, } from '@livestore/utils/effect';
|
|
8
8
|
import { PlatformNode } from '@livestore/utils/node';
|
|
9
|
+
import { makeShutdownChannel } from '../shutdown-channel.js';
|
|
9
10
|
import * as WorkerSchema from '../worker-schema.js';
|
|
10
11
|
export const makeNodeAdapter = ({ workerUrl, schemaPath, baseDirectory, devtools: devtoolsOptions = { port: 4242 }, clientId = hostname(), }) => (({ storeId, devtoolsEnabled, shutdown, connectDevtoolsToStore }) => Effect.gen(function* () {
|
|
11
12
|
// TODO make this dynamic and actually support multiple sessions
|
|
@@ -19,6 +20,8 @@ export const makeNodeAdapter = ({ workerUrl, schemaPath, baseDirectory, devtools
|
|
|
19
20
|
// } else {
|
|
20
21
|
// yield* Effect.logWarning('Failed to load database file', fileData.left)
|
|
21
22
|
// }
|
|
23
|
+
const shutdownChannel = yield* makeShutdownChannel(storeId);
|
|
24
|
+
yield* shutdownChannel.listen.pipe(Stream.flatten(), Stream.tap((error) => Effect.sync(() => shutdown(Cause.fail(error)))), Stream.runDrain, Effect.interruptible, Effect.tapCauseLogPretty, Effect.forkScoped);
|
|
22
25
|
const syncInMemoryDb = yield* makeSqliteDb({ _tag: 'in-memory' }).pipe(Effect.orDie);
|
|
23
26
|
// TODO actually implement this multi-session support
|
|
24
27
|
const lockStatus = yield* SubscriptionRef.make('has-lock');
|
|
@@ -77,7 +80,7 @@ const makeLeaderThread = ({ shutdown, storeId, clientId, sessionId, workerUrl, b
|
|
|
77
80
|
devtools: { enabled: devtoolsEnabled, port: devtoolsOptions.port },
|
|
78
81
|
schemaPath,
|
|
79
82
|
}),
|
|
80
|
-
}).pipe(Effect.provide(PlatformNode.NodeWorker.layer(() => nodeWorker)), UnexpectedError.mapToUnexpectedError, Effect.tapErrorCause(shutdown), Effect.withSpan('@livestore/adapter-node:adapter:setupLeaderThread'), Effect.tapCauseLogPretty, Effect.forkScoped);
|
|
83
|
+
}).pipe(Effect.provide(PlatformNode.NodeWorker.layer(() => nodeWorker)), UnexpectedError.mapToUnexpectedError, Effect.tapErrorCause((cause) => Effect.sync(() => shutdown(cause))), Effect.withSpan('@livestore/adapter-node:adapter:setupLeaderThread'), Effect.tapCauseLogPretty, Effect.forkScoped);
|
|
81
84
|
yield* Effect.addFinalizer(() => Effect.gen(function* () {
|
|
82
85
|
// We first try to gracefully shutdown the leader worker and then forcefully terminate it
|
|
83
86
|
yield* Effect.raceFirst(runInWorker(new WorkerSchema.LeaderWorkerInner.Shutdown()).pipe(Effect.andThen(() => nodeWorker.terminate())), Effect.sync(() => {
|
|
@@ -107,24 +110,14 @@ const makeLeaderThread = ({ shutdown, storeId, clientId, sessionId, workerUrl, b
|
|
|
107
110
|
timestampMs: Date.now(),
|
|
108
111
|
latchClosed: false,
|
|
109
112
|
});
|
|
110
|
-
const pushQueue = yield* BucketQueue.make();
|
|
111
|
-
yield* Effect.gen(function* () {
|
|
112
|
-
const batch = yield* BucketQueue.takeBetween(pushQueue, 1, 100);
|
|
113
|
-
yield* runInWorker(new WorkerSchema.LeaderWorkerInner.PushToLeader({ batch })).pipe(Effect.withSpan('@livestore/adapter-node:client-session:pushToLeader', {
|
|
114
|
-
attributes: { batchSize: batch.length },
|
|
115
|
-
}),
|
|
116
|
-
// We can ignore the error here because the ClientSessionSyncProcessor will retry after rebasing
|
|
117
|
-
Effect.ignoreLogged);
|
|
118
|
-
}).pipe(Effect.forever, Effect.interruptible, Effect.tapCauseLogPretty, Effect.forkScoped);
|
|
119
113
|
const bootResult = yield* runInWorker(new WorkerSchema.LeaderWorkerInner.GetRecreateSnapshot()).pipe(Effect.timeout(10_000), UnexpectedError.mapToUnexpectedError, Effect.withSpan('@livestore/adapter-node:client-session:export'));
|
|
120
114
|
const leaderThread = {
|
|
121
115
|
networkStatus,
|
|
122
116
|
mutations: {
|
|
123
117
|
pull: runInWorkerStream(new WorkerSchema.LeaderWorkerInner.PullStream({ cursor: initialLeaderHead })).pipe(Stream.orDie),
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
push: (batch) => BucketQueue.offerAll(pushQueue, batch),
|
|
118
|
+
push: (batch) => runInWorker(new WorkerSchema.LeaderWorkerInner.PushToLeader({ batch })).pipe(Effect.withSpan('@livestore/adapter-node:client-session:pushToLeader', {
|
|
119
|
+
attributes: { batchSize: batch.length },
|
|
120
|
+
})),
|
|
128
121
|
},
|
|
129
122
|
initialState: {
|
|
130
123
|
leaderHead: initialLeaderHead,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client-session/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAClC,OAAO,KAAK,EAAE,MAAM,qBAAqB,CAAA;AAUzC,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client-session/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"devtools-server.d.ts","sourceRoot":"","sources":["../../src/devtools/devtools-server.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"devtools-server.d.ts","sourceRoot":"","sources":["../../src/devtools/devtools-server.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAEnD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAA;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAKhD;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,wDAM7B;IACD,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;CACb,KAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,eAAe,EAAE,KAAK,CAAC,KAAK,CAuE8B,CAAA"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import http from 'node:http';
|
|
2
2
|
import path from 'node:path';
|
|
3
3
|
import { UnexpectedError } from '@livestore/common';
|
|
4
|
+
import { LS_DEV } from '@livestore/utils';
|
|
4
5
|
import { Effect } from '@livestore/utils/effect';
|
|
5
6
|
import { makeWebSocketServer } from '@livestore/webmesh/websocket-server';
|
|
6
7
|
import { makeViteServer } from './vite-dev-server.js';
|
|
@@ -10,9 +11,19 @@ import { makeViteServer } from './vite-dev-server.js';
|
|
|
10
11
|
* - the Devtools Protocol via WebSocket Webmesh
|
|
11
12
|
*/
|
|
12
13
|
export const startDevtoolsServer = ({ schemaPath, storeId, clientId, sessionId, port, }) => Effect.gen(function* () {
|
|
13
|
-
const httpServer = http.createServer()
|
|
14
|
+
const httpServer = yield* Effect.sync(() => http.createServer()).pipe(Effect.acquireRelease((httpServer) => Effect.async((cb) => {
|
|
15
|
+
httpServer.removeAllListeners();
|
|
16
|
+
httpServer.closeAllConnections();
|
|
17
|
+
httpServer.close((err) => {
|
|
18
|
+
if (err) {
|
|
19
|
+
cb(Effect.fail(UnexpectedError.make({ cause: err })));
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
cb(Effect.succeed(undefined));
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
}).pipe(Effect.orDie)));
|
|
14
26
|
const webSocketServer = yield* makeWebSocketServer({ relayNodeName: 'ws' });
|
|
15
|
-
yield* Effect.addFinalizer(() => Effect.sync(() => httpServer.close()));
|
|
16
27
|
// Handle upgrade manually
|
|
17
28
|
httpServer.on('upgrade', (request, socket, head) => {
|
|
18
29
|
webSocketServer.handleUpgrade(request, socket, head, (ws) => {
|
|
@@ -23,34 +34,33 @@ export const startDevtoolsServer = ({ schemaPath, storeId, clientId, sessionId,
|
|
|
23
34
|
httpServer.on('error', (err) => {
|
|
24
35
|
cb(UnexpectedError.make({ cause: err }));
|
|
25
36
|
});
|
|
26
|
-
httpServer.listen(port, () => {
|
|
37
|
+
httpServer.listen(port, '0.0.0.0', () => {
|
|
27
38
|
cb(Effect.succeed(undefined));
|
|
28
39
|
});
|
|
29
40
|
});
|
|
30
41
|
yield* startServer(port);
|
|
31
|
-
yield* Effect.logDebug(`[@livestore/adapter-node:devtools] LiveStore devtools are available at http://localhost:${port}/
|
|
42
|
+
yield* Effect.logDebug(`[@livestore/adapter-node:devtools] LiveStore devtools are available at http://localhost:${port}/_livestore`);
|
|
32
43
|
const viteServer = yield* makeViteServer({
|
|
33
44
|
mode: { _tag: 'node', storeId, clientId, sessionId, url: `ws://localhost:${port}` },
|
|
34
45
|
schemaPath: path.resolve(process.cwd(), schemaPath),
|
|
35
46
|
viteConfig: (viteConfig) => {
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
viteConfig.optimizeDeps.force = true;
|
|
47
|
+
if (LS_DEV) {
|
|
48
|
+
viteConfig.server ??= {};
|
|
49
|
+
viteConfig.server.fs ??= {};
|
|
50
|
+
viteConfig.server.fs.strict = true;
|
|
51
|
+
viteConfig.optimizeDeps ??= {};
|
|
52
|
+
viteConfig.optimizeDeps.force = true;
|
|
53
|
+
}
|
|
44
54
|
return viteConfig;
|
|
45
55
|
},
|
|
46
56
|
});
|
|
47
57
|
yield* Effect.addFinalizer(() => Effect.promise(() => viteServer.close()));
|
|
48
58
|
httpServer.on('request', (req, res) => {
|
|
49
59
|
if (req.url === '/' || req.url === '') {
|
|
50
|
-
res.writeHead(302, { Location: '/
|
|
60
|
+
res.writeHead(302, { Location: '/_livestore' });
|
|
51
61
|
res.end();
|
|
52
62
|
}
|
|
53
|
-
else if (req.url?.startsWith('/
|
|
63
|
+
else if (req.url?.startsWith('/_livestore')) {
|
|
54
64
|
return viteServer.middlewares(req, res);
|
|
55
65
|
}
|
|
56
66
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"devtools-server.js","sourceRoot":"","sources":["../../src/devtools/devtools-server.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,IAAI,MAAM,WAAW,CAAA;AAE5B,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"devtools-server.js","sourceRoot":"","sources":["../../src/devtools/devtools-server.ts"],"names":[],"mappings":"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"}
|
package/dist/devtools/mod.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../src/devtools/mod.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../src/devtools/mod.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,YAAY,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA"}
|
|
@@ -1,7 +1,27 @@
|
|
|
1
|
+
import type { Devtools } from '@livestore/common';
|
|
1
2
|
import { UnexpectedError } from '@livestore/common';
|
|
2
3
|
import { Effect } from '@livestore/utils/effect';
|
|
3
4
|
import * as Vite from 'vite';
|
|
4
|
-
|
|
5
|
-
|
|
5
|
+
export type ViteDevtoolsOptions = {
|
|
6
|
+
viteConfig?: (config: Vite.UserConfig) => Vite.UserConfig;
|
|
7
|
+
/**
|
|
8
|
+
* Path to the file exporting the LiveStore schema as `export const schema = ...`
|
|
9
|
+
* File path must be relative to the project root and will be imported via Vite.
|
|
10
|
+
*
|
|
11
|
+
* Example: `./src/schema.ts`
|
|
12
|
+
*/
|
|
13
|
+
schemaPath: string;
|
|
14
|
+
/**
|
|
15
|
+
* The mode of the devtools server.
|
|
16
|
+
*
|
|
17
|
+
* @default 'node'
|
|
18
|
+
*/
|
|
19
|
+
mode: Extract<Devtools.DevtoolsMode, {
|
|
20
|
+
_tag: 'node';
|
|
21
|
+
} | {
|
|
22
|
+
_tag: 'expo';
|
|
23
|
+
}>;
|
|
24
|
+
};
|
|
25
|
+
export declare const makeViteServer: (options: ViteDevtoolsOptions) => Effect.Effect<Vite.ViteDevServer, UnexpectedError>;
|
|
6
26
|
export declare const getFreePort: Effect.Effect<number, UnexpectedError, never>;
|
|
7
27
|
//# sourceMappingURL=vite-dev-server.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vite-dev-server.d.ts","sourceRoot":"","sources":["../../src/devtools/vite-dev-server.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"vite-dev-server.d.ts","sourceRoot":"","sources":["../../src/devtools/vite-dev-server.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAEnD,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAChD,OAAO,KAAK,IAAI,MAAM,MAAM,CAAA;AAE5B,MAAM,MAAM,mBAAmB,GAAG;IAChC,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,UAAU,CAAA;IACzD;;;;;OAKG;IACH,UAAU,EAAE,MAAM,CAAA;IAClB;;;;OAIG;IACH,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,YAAY,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAC1E,CAAA;AAKD,eAAO,MAAM,cAAc,YAAa,mBAAmB,KAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,eAAe,CAwClC,CAAA;AAE7E,eAAO,MAAM,WAAW,+CAmBtB,CAAA"}
|
|
@@ -2,9 +2,11 @@ import * as http from 'node:http';
|
|
|
2
2
|
import path from 'node:path';
|
|
3
3
|
import { fileURLToPath } from 'node:url';
|
|
4
4
|
import { UnexpectedError } from '@livestore/common';
|
|
5
|
+
import { livestoreDevtoolsPlugin } from '@livestore/devtools-vite';
|
|
5
6
|
import { Effect } from '@livestore/utils/effect';
|
|
6
7
|
import * as Vite from 'vite';
|
|
7
8
|
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
9
|
+
// NOTE this is currently also used in @livestore/devtools-expo
|
|
8
10
|
export const makeViteServer = (options) => Effect.gen(function* () {
|
|
9
11
|
const hmrPort = yield* getFreePort;
|
|
10
12
|
const cwd = process.cwd();
|
|
@@ -14,15 +16,8 @@ export const makeViteServer = (options) => Effect.gen(function* () {
|
|
|
14
16
|
hmr: {
|
|
15
17
|
port: hmrPort,
|
|
16
18
|
},
|
|
17
|
-
fs
|
|
18
|
-
|
|
19
|
-
allow: [path.resolve(__dirname, '..', '..')],
|
|
20
|
-
},
|
|
21
|
-
},
|
|
22
|
-
resolve: {
|
|
23
|
-
alias: {
|
|
24
|
-
'@schema': path.resolve(cwd, options.schemaPath),
|
|
25
|
-
},
|
|
19
|
+
// Relaxing fs access for monorepo setup
|
|
20
|
+
fs: { strict: process.env.LS_DEV ? false : true },
|
|
26
21
|
},
|
|
27
22
|
appType: 'spa',
|
|
28
23
|
optimizeDeps: {
|
|
@@ -30,8 +25,14 @@ export const makeViteServer = (options) => Effect.gen(function* () {
|
|
|
30
25
|
exclude: ['@livestore/wa-sqlite'],
|
|
31
26
|
},
|
|
32
27
|
root: __dirname,
|
|
33
|
-
base: '/
|
|
34
|
-
plugins: [
|
|
28
|
+
base: '/_livestore/',
|
|
29
|
+
plugins: [
|
|
30
|
+
livestoreDevtoolsPlugin({
|
|
31
|
+
schemaPath: path.resolve(cwd, options.schemaPath),
|
|
32
|
+
mode: options.mode,
|
|
33
|
+
path: '/',
|
|
34
|
+
}),
|
|
35
|
+
],
|
|
35
36
|
clearScreen: false,
|
|
36
37
|
logLevel: 'silent',
|
|
37
38
|
});
|
|
@@ -39,53 +40,6 @@ export const makeViteServer = (options) => Effect.gen(function* () {
|
|
|
39
40
|
const viteServer = yield* Effect.promise(() => Vite.createServer(viteConfig)).pipe(UnexpectedError.mapToUnexpectedError);
|
|
40
41
|
return viteServer;
|
|
41
42
|
}).pipe(Effect.withSpan('@livestore/adapter-node:devtools:makeViteServer'));
|
|
42
|
-
// TODO unify this with `@livestore/devtools-vite/plugin.ts`
|
|
43
|
-
const virtualHtmlPlugin = (mode) => ({
|
|
44
|
-
name: 'virtual-html',
|
|
45
|
-
configureServer: (server) => {
|
|
46
|
-
return () => {
|
|
47
|
-
server.middlewares.use(async (req, res, next) => {
|
|
48
|
-
if (req.url === '/' || req.url === '' || req.url === '/index.html') {
|
|
49
|
-
const html = `
|
|
50
|
-
<!doctype html>
|
|
51
|
-
<html lang="en">
|
|
52
|
-
<head>
|
|
53
|
-
<meta charset="UTF-8" />
|
|
54
|
-
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
55
|
-
<meta name="livestore-devtools" content="true" />
|
|
56
|
-
<title>LiveStore Devtools</title>
|
|
57
|
-
</head>
|
|
58
|
-
<body>
|
|
59
|
-
<div id="root"></div>
|
|
60
|
-
<script type="module">
|
|
61
|
-
import '@livestore/devtools-react/index.css'
|
|
62
|
-
import { mountDevtools } from '@livestore/devtools-react'
|
|
63
|
-
import sharedWorker from '@livestore/adapter-web/shared-worker?sharedworker'
|
|
64
|
-
import { schema } from '@schema'
|
|
65
|
-
|
|
66
|
-
mountDevtools({
|
|
67
|
-
schema,
|
|
68
|
-
rootEl: document.getElementById('root'),
|
|
69
|
-
sharedWorker,
|
|
70
|
-
mode: ${JSON.stringify(mode)},
|
|
71
|
-
license: ${JSON.stringify(process.env.LSD_LICENSE)},
|
|
72
|
-
})
|
|
73
|
-
</script>
|
|
74
|
-
</body>
|
|
75
|
-
</html>
|
|
76
|
-
`;
|
|
77
|
-
const transformedHtml = await server.transformIndexHtml(req.url, html);
|
|
78
|
-
res.statusCode = 200;
|
|
79
|
-
res.setHeader('Content-Type', 'text/html');
|
|
80
|
-
res.end(transformedHtml);
|
|
81
|
-
}
|
|
82
|
-
else {
|
|
83
|
-
next();
|
|
84
|
-
}
|
|
85
|
-
});
|
|
86
|
-
};
|
|
87
|
-
},
|
|
88
|
-
});
|
|
89
43
|
export const getFreePort = Effect.async((cb) => {
|
|
90
44
|
const server = http.createServer();
|
|
91
45
|
// Listen on port 0 to get an available port
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vite-dev-server.js","sourceRoot":"","sources":["../../src/devtools/vite-dev-server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AACjC,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"vite-dev-server.js","sourceRoot":"","sources":["../../src/devtools/vite-dev-server.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/in-memory/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EAKP,WAAW,EACZ,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/in-memory/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EAKP,WAAW,EACZ,MAAM,mBAAmB,CAAA;AAc1B,MAAM,WAAW,sBAAsB;IACrC,IAAI,CAAC,EAAE,WAAW,CAAA;IAClB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,4DAA4D;AAC5D,eAAO,MAAM,mBAAmB,oCACkB,sBAAsB,KAAG,OAiD1B,CAAA"}
|
package/dist/in-memory/index.js
CHANGED
|
@@ -3,10 +3,11 @@ import { getClientHeadFromDb, LeaderThreadCtx, makeLeaderThreadLayer } from '@li
|
|
|
3
3
|
import { MutationEvent } from '@livestore/common/schema';
|
|
4
4
|
import { sqliteDbFactory } from '@livestore/sqlite-wasm/browser';
|
|
5
5
|
import { loadSqlite3Wasm } from '@livestore/sqlite-wasm/load-wasm';
|
|
6
|
-
import { Effect, FetchHttpClient, Layer, Stream, SubscriptionRef
|
|
6
|
+
import { Cause, Effect, FetchHttpClient, Layer, Stream, SubscriptionRef } from '@livestore/utils/effect';
|
|
7
7
|
import { nanoid } from '@livestore/utils/nanoid';
|
|
8
|
+
import { makeShutdownChannel } from '../shutdown-channel.js';
|
|
8
9
|
/** NOTE: This adapter is currently only used for testing */
|
|
9
|
-
export const makeInMemoryAdapter = ({ sync: syncOptions, clientId = 'in-memory' }) => ({ schema, storeId,
|
|
10
|
+
export const makeInMemoryAdapter = ({ sync: syncOptions, clientId = 'in-memory' }) => ({ schema, storeId, shutdown,
|
|
10
11
|
// devtoolsEnabled, bootStatusQueue, shutdown, connectDevtoolsToStore
|
|
11
12
|
}) => Effect.gen(function* () {
|
|
12
13
|
const sqlite3 = yield* Effect.promise(() => loadSqlite3Wasm());
|
|
@@ -14,6 +15,8 @@ export const makeInMemoryAdapter = ({ sync: syncOptions, clientId = 'in-memory'
|
|
|
14
15
|
const sqliteDb = yield* makeSqliteDb({ _tag: 'in-memory' });
|
|
15
16
|
const lockStatus = SubscriptionRef.make('has-lock').pipe(Effect.runSync);
|
|
16
17
|
const sessionId = nanoid(6);
|
|
18
|
+
const shutdownChannel = yield* makeShutdownChannel(storeId);
|
|
19
|
+
yield* shutdownChannel.listen.pipe(Stream.flatten(), Stream.tap((error) => Effect.sync(() => shutdown(Cause.fail(error)))), Stream.runDrain, Effect.interruptible, Effect.tapCauseLogPretty, Effect.forkScoped);
|
|
17
20
|
const { leaderThread, initialSnapshot } = yield* makeLeaderThread({
|
|
18
21
|
storeId,
|
|
19
22
|
clientId,
|
|
@@ -29,7 +32,7 @@ export const makeInMemoryAdapter = ({ sync: syncOptions, clientId = 'in-memory'
|
|
|
29
32
|
sessionId,
|
|
30
33
|
lockStatus,
|
|
31
34
|
leaderThread,
|
|
32
|
-
shutdown
|
|
35
|
+
shutdown,
|
|
33
36
|
};
|
|
34
37
|
return clientSession;
|
|
35
38
|
}).pipe(UnexpectedError.mapToUnexpectedError);
|
|
@@ -41,7 +44,8 @@ const makeLeaderThread = ({ storeId, clientId, schema, makeSqliteDb, syncOptions
|
|
|
41
44
|
devtoolsOptions: { enabled: false },
|
|
42
45
|
makeSqliteDb,
|
|
43
46
|
schema,
|
|
44
|
-
|
|
47
|
+
// NOTE we're creating a separate channel here since you can't listen to your own channel messages
|
|
48
|
+
shutdownChannel: yield* makeShutdownChannel(storeId),
|
|
45
49
|
storeId,
|
|
46
50
|
syncOptions,
|
|
47
51
|
}).pipe(Layer.provideMerge(FetchHttpClient.layer)));
|
|
@@ -53,7 +57,7 @@ const makeLeaderThread = ({ storeId, clientId, schema, makeSqliteDb, syncOptions
|
|
|
53
57
|
mutations: {
|
|
54
58
|
pull: Stream.fromQueue(pullQueue),
|
|
55
59
|
push: (batch) => syncProcessor
|
|
56
|
-
.push(batch.map((item) => new MutationEvent.EncodedWithMeta(item)))
|
|
60
|
+
.push(batch.map((item) => new MutationEvent.EncodedWithMeta(item)), { waitForProcessing: true })
|
|
57
61
|
.pipe(Effect.provide(layer), Effect.scoped),
|
|
58
62
|
},
|
|
59
63
|
initialState: { leaderHead: initialLeaderHead, migrationsReport: initialState.migrationsReport },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/in-memory/index.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAA;AAE7G,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAA;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAA;AAClE,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/in-memory/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,5 +16,5 @@ export declare const getWorkerArgs: () => {
|
|
|
16
16
|
readonly sessionId: string;
|
|
17
17
|
};
|
|
18
18
|
export declare const makeWorker: (options: WorkerOptions) => void;
|
|
19
|
-
export declare const makeWorkerEffect: (options: WorkerOptions) => Effect.Effect<
|
|
19
|
+
export declare const makeWorkerEffect: (options: WorkerOptions) => Effect.Effect<void, import("@effect/platform/WorkerError").WorkerError, never>;
|
|
20
20
|
//# 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;AAU7B,OAAO,KAAK,EAAiB,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAenE,OAAO,EACL,MAAM,EAUP,MAAM,yBAAyB,CAAA;AAEhC,OAAO,KAAK,KAAK,IAAI,MAAM,oBAAoB,CAAA;AAM/C,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,CAAC,EAAE,WAAW,CAAA;IAClB,WAAW,CAAC,EAAE;QACZ,MAAM,CAAC,EAAE,IAAI,CAAC,MAAM,CAAA;QACpB,8CAA8C;QAC9C,WAAW,CAAC,EAAE,MAAM,CAAA;KACrB,CAAA;CACF,CAAA;AAED,eAAO,MAAM,aAAa;;;;CAAqE,CAAA;AAE/F,eAAO,MAAM,UAAU,YAAa,aAAa,SAEhD,CAAA;AAED,eAAO,MAAM,gBAAgB,YAAa,aAAa,
|
|
1
|
+
{"version":3,"file":"make-leader-worker.d.ts","sourceRoot":"","sources":["../src/make-leader-worker.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAA;AAU7B,OAAO,KAAK,EAAiB,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAenE,OAAO,EACL,MAAM,EAUP,MAAM,yBAAyB,CAAA;AAEhC,OAAO,KAAK,KAAK,IAAI,MAAM,oBAAoB,CAAA;AAM/C,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,CAAC,EAAE,WAAW,CAAA;IAClB,WAAW,CAAC,EAAE;QACZ,MAAM,CAAC,EAAE,IAAI,CAAC,MAAM,CAAA;QACpB,8CAA8C;QAC9C,WAAW,CAAC,EAAE,MAAM,CAAA;KACrB,CAAA;CACF,CAAA;AAED,eAAO,MAAM,aAAa;;;;CAAqE,CAAA;AAE/F,eAAO,MAAM,UAAU,YAAa,aAAa,SAEhD,CAAA;AAED,eAAO,MAAM,gBAAgB,YAAa,aAAa,mFA6GtD,CAAA"}
|
|
@@ -26,7 +26,9 @@ export const makeWorkerEffect = (options) => {
|
|
|
26
26
|
: undefined;
|
|
27
27
|
return WorkerRunner.layerSerialized(WorkerSchema.LeaderWorkerInner.Request, {
|
|
28
28
|
InitialMessage: (args) => makeLeaderThread({ ...args, syncOptions: options.sync }),
|
|
29
|
-
PushToLeader: ({ batch }) => Effect.andThen(LeaderThreadCtx, (_) => _.syncProcessor.push(batch.map((item) => new MutationEvent.EncodedWithMeta(item))
|
|
29
|
+
PushToLeader: ({ batch }) => Effect.andThen(LeaderThreadCtx, (_) => _.syncProcessor.push(batch.map((item) => new MutationEvent.EncodedWithMeta(item)),
|
|
30
|
+
// We'll wait in order to keep back pressure on the client session
|
|
31
|
+
{ waitForProcessing: true })).pipe(Effect.uninterruptible, Effect.withSpan('@livestore/adapter-node:worker:PushToLeader')),
|
|
30
32
|
BootStatusStream: () => Effect.andThen(LeaderThreadCtx, (_) => Stream.fromQueue(_.bootStatusQueue)).pipe(Stream.unwrap),
|
|
31
33
|
PullStream: ({ cursor }) => Effect.gen(function* () {
|
|
32
34
|
const { connectedClientSessionPullQueues } = yield* LeaderThreadCtx;
|
|
@@ -73,7 +75,10 @@ export const makeWorkerEffect = (options) => {
|
|
|
73
75
|
// yield* Effect.sleep(1000)
|
|
74
76
|
}).pipe(UnexpectedError.mapToUnexpectedError, Effect.withSpan('@livestore/adapter-node:worker:Shutdown')),
|
|
75
77
|
ExtraDevtoolsMessage: ({ message }) => Effect.andThen(LeaderThreadCtx, (_) => _.extraIncomingMessagesQueue.offer(message)).pipe(UnexpectedError.mapToUnexpectedError, Effect.withSpan('@livestore/adapter-node:worker:ExtraDevtoolsMessage')),
|
|
76
|
-
}).pipe(Layer.provide(PlatformNode.NodeWorkerRunner.layer),
|
|
78
|
+
}).pipe(Layer.provide(PlatformNode.NodeWorkerRunner.layer), WorkerRunner.launch, Effect.scoped, Effect.tapCauseLogPretty, Effect.annotateLogs({
|
|
79
|
+
thread: options.otelOptions?.serviceName ?? 'livestore-node-leader-thread',
|
|
80
|
+
processId: process.pid,
|
|
81
|
+
}), Effect.provide(Logger.prettyWithThread(options.otelOptions?.serviceName ?? 'livestore-node-leader-thread')), Effect.provide(FetchHttpClient.layer), Effect.provide(PlatformNode.NodeFileSystem.layer), TracingLive ? Effect.provide(TracingLive) : identity, Logger.withMinimumLogLevel(LogLevel.Debug));
|
|
77
82
|
};
|
|
78
83
|
const makeLeaderThread = ({ storeId, clientId, syncOptions, baseDirectory, devtools, schemaPath, }) => Effect.gen(function* () {
|
|
79
84
|
const schema = yield* Effect.promise(() => import(schemaPath).then((m) => m.schema));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"make-leader-worker.js","sourceRoot":"","sources":["../src/make-leader-worker.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAA;AAE7B,OAAO,SAAS,MAAM,gBAAgB,CAAA;AACtC,OAAO,IAAI,MAAM,WAAW,CAAA;AAE5B,IAAI,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;IAC3C,SAAS,CAAC,IAAI,EAAE,CAAA;IAChB,SAAS,CAAC,eAAe,EAAE,CAAA;AAC7B,CAAC;AAGD,OAAO,EAAE,QAAQ,EAAE,6BAA6B,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAE5F,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,eAAe,EACf,qBAAqB,GACtB,MAAM,iCAAiC,CAAA;AAExC,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AACxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,6CAA6C,CAAA;AACrF,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAA;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAE7D,OAAO,EACL,MAAM,EACN,eAAe,EACf,QAAQ,EACR,KAAK,EACL,MAAM,EACN,QAAQ,EACR,UAAU,EACV,MAAM,EACN,MAAM,EACN,YAAY,GACb,MAAM,yBAAyB,CAAA;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAGpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAA;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,KAAK,YAAY,MAAM,oBAAoB,CAAA;AAWlD,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,CAAA;AAE/F,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,OAAsB,EAAE,EAAE;IACnD,gBAAgB,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;AAChD,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,OAAsB,EAAE,EAAE;IACzD,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,EAAE,MAAM;QAC7C,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CACnE,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,UAAU,EAAE,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CACrF;QACH,CAAC,CAAC,SAAS,CAAA;IAEb,OAAO,YAAY,CAAC,eAAe,CAAC,YAAY,CAAC,iBAAiB,CAAC,OAAO,EAAE;QAC1E,cAAc,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,gBAAgB,CAAC,EAAE,GAAG,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC;QAClF,YAAY,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAC1B,MAAM,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC,EAAE,EAAE,CACpC,CAAC,CAAC,aAAa,CAAC,IAAI,
|
|
1
|
+
{"version":3,"file":"make-leader-worker.js","sourceRoot":"","sources":["../src/make-leader-worker.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,2 @@
|
|
|
1
|
-
export declare const makeShutdownChannel: (storeId: string) => import("effect/Effect").Effect<import("@livestore/utils/dist/effect/WebChannel/common.js").WebChannel<import("@livestore/common/dist/adapter-types.js").IntentionalShutdownCause |
|
|
2
|
-
readonly _tag: "DedicatedWorkerDisconnectBroadcast";
|
|
3
|
-
}, import("@livestore/common/dist/adapter-types.js").IntentionalShutdownCause | {
|
|
4
|
-
readonly _tag: "DedicatedWorkerDisconnectBroadcast";
|
|
5
|
-
}, never>, never, import("effect/Scope").Scope>;
|
|
1
|
+
export declare const makeShutdownChannel: (storeId: string) => import("effect/Effect").Effect<import("@livestore/utils/dist/effect/WebChannel/common.js").WebChannel<import("@livestore/common/dist/adapter-types.js").IntentionalShutdownCause | import("@livestore/common/dist/adapter-types.js").UnexpectedError, import("@livestore/common/dist/adapter-types.js").IntentionalShutdownCause | import("@livestore/common/dist/adapter-types.js").UnexpectedError, never>, never, import("effect/Scope").Scope>;
|
|
6
2
|
//# sourceMappingURL=shutdown-channel.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shutdown-channel.d.ts","sourceRoot":"","sources":["../src/shutdown-channel.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,mBAAmB,YAAa,MAAM
|
|
1
|
+
{"version":3,"file":"shutdown-channel.d.ts","sourceRoot":"","sources":["../src/shutdown-channel.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,mBAAmB,YAAa,MAAM,ubAI/C,CAAA"}
|
package/dist/webchannel.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webchannel.d.ts","sourceRoot":"","sources":["../src/webchannel.ts"],"names":[],"mappings":"AAGA,OAAO,EAAY,MAAM,EAAQ,MAAM,EAAE,KAAK,EAAU,UAAU,EAAE,MAAM,yBAAyB,CAAA;AAEnG,eAAO,MAAM,oBAAoB,GAAI,GAAG,EAAE,UAAU,4BAGjD;IACD,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,CAAA;CACvC,KAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,
|
|
1
|
+
{"version":3,"file":"webchannel.d.ts","sourceRoot":"","sources":["../src/webchannel.ts"],"names":[],"mappings":"AAGA,OAAO,EAAY,MAAM,EAAQ,MAAM,EAAE,KAAK,EAAU,UAAU,EAAE,MAAM,yBAAyB,CAAA;AAEnG,eAAO,MAAM,oBAAoB,GAAI,GAAG,EAAE,UAAU,4BAGjD;IACD,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,CAAA;CACvC,KAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CA6ClE,CAAA"}
|
package/dist/webchannel.js
CHANGED
|
@@ -11,13 +11,13 @@ export const makeBroadcastChannel = ({ channelName, schema, }) => Effect.scopeWi
|
|
|
11
11
|
// const listen = Stream.fromEventListener<MessageEvent>(channel, 'message').pipe(
|
|
12
12
|
// Stream.map((_) => Schema.decodeEither(listenSchema)(_.data)),
|
|
13
13
|
// )
|
|
14
|
-
const listen = Stream.asyncPush((emit) => Effect.gen(function* () {
|
|
14
|
+
const listen = Stream.asyncPush((emit) => Effect.acquireRelease(Effect.gen(function* () {
|
|
15
15
|
// eslint-disable-next-line unicorn/prefer-add-event-listener
|
|
16
16
|
channel.onmessage = (event) => {
|
|
17
17
|
return emit.single(Schema.decodeEither(schema)(event.data));
|
|
18
18
|
};
|
|
19
|
-
return
|
|
20
|
-
}));
|
|
19
|
+
return channel;
|
|
20
|
+
}), (channel) => Effect.sync(() => channel.unref())));
|
|
21
21
|
const closedDeferred = yield* Deferred.make().pipe(Effect.acquireRelease(Deferred.done(Exit.void)));
|
|
22
22
|
const supportsTransferables = false;
|
|
23
23
|
return {
|
package/dist/webchannel.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webchannel.js","sourceRoot":"","sources":["../src/webchannel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAGtD,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AAEnG,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,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,WAAW,CAAC,CAAA;IAEjD,KAAK,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAA;IAE7F,MAAM,IAAI,GAAG,CAAC,OAAY,EAAE,EAAE,CAC5B,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,MAAM,cAAc,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAA;QAC5D,OAAO,CAAC,WAAW,CAAC,cAAc,CAAC,CAAA;IACrC,CAAC,CAAC,CAAA;IAEJ,iDAAiD;IACjD,kFAAkF;IAClF,kEAAkE;IAClE,IAAI;IAEJ,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAA6C,CAAC,IAAI,EAAE,EAAE,CACnF,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,6DAA6D;QAC7D,OAAO,CAAC,SAAS,GAAG,CAAC,KAAU,EAAE,EAAE;YACjC,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAA;QAC7D,CAAC,CAAA;QAED,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"webchannel.js","sourceRoot":"","sources":["../src/webchannel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAGtD,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AAEnG,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,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,WAAW,CAAC,CAAA;IAEjD,KAAK,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAA;IAE7F,MAAM,IAAI,GAAG,CAAC,OAAY,EAAE,EAAE,CAC5B,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,MAAM,cAAc,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAA;QAC5D,OAAO,CAAC,WAAW,CAAC,cAAc,CAAC,CAAA;IACrC,CAAC,CAAC,CAAA;IAEJ,iDAAiD;IACjD,kFAAkF;IAClF,kEAAkE;IAClE,IAAI;IAEJ,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAA6C,CAAC,IAAI,EAAE,EAAE,CACnF,MAAM,CAAC,cAAc,CACnB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,6DAA6D;QAC7D,OAAO,CAAC,SAAS,GAAG,CAAC,KAAU,EAAE,EAAE;YACjC,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAA;QAC7D,CAAC,CAAA;QAED,OAAO,OAAO,CAAA;IAChB,CAAC,CAAC,EACF,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAChD,CACF,CAAA;IAED,MAAM,cAAc,GAAG,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACzG,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"}
|
package/dist/worker-schema.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Devtools,
|
|
1
|
+
import { Devtools, LeaderAheadError, SyncState, UnexpectedError } from '@livestore/common';
|
|
2
2
|
import { Schema } from '@livestore/utils/effect';
|
|
3
3
|
export declare const WorkerArgv: Schema.SchemaClass<{
|
|
4
4
|
readonly clientId: string;
|
|
@@ -115,7 +115,7 @@ export declare namespace LeaderWorkerInner {
|
|
|
115
115
|
clientId: typeof Schema.String;
|
|
116
116
|
sessionId: Schema.UndefinedOr<typeof Schema.String>;
|
|
117
117
|
}>>;
|
|
118
|
-
}, typeof Schema.Void, Schema.Union<[typeof UnexpectedError, typeof
|
|
118
|
+
}, typeof Schema.Void, Schema.Union<[typeof UnexpectedError, typeof LeaderAheadError]>>;
|
|
119
119
|
export class PushToLeader extends PushToLeader_base {
|
|
120
120
|
}
|
|
121
121
|
const Export_base: Schema.TaggedRequestClass<Export, "Export", {
|