@livestore/adapter-node 0.4.0-dev.9 → 0.4.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 +68 -2
- package/dist/client-session/adapter.d.ts.map +1 -1
- package/dist/client-session/adapter.js +121 -42
- 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 +14 -6
- 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/mod.js +1 -1
- package/dist/devtools/mod.js.map +1 -1
- package/dist/devtools/vite-dev-server.d.ts +26 -4
- package/dist/devtools/vite-dev-server.d.ts.map +1 -1
- package/dist/devtools/vite-dev-server.js +43 -8
- package/dist/devtools/vite-dev-server.js.map +1 -1
- package/dist/leader-thread-shared.d.ts +5 -4
- package/dist/leader-thread-shared.d.ts.map +1 -1
- package/dist/leader-thread-shared.js +8 -6
- package/dist/leader-thread-shared.js.map +1 -1
- package/dist/make-leader-worker.d.ts +4 -2
- package/dist/make-leader-worker.d.ts.map +1 -1
- package/dist/make-leader-worker.js +45 -20
- package/dist/make-leader-worker.js.map +1 -1
- package/dist/shutdown-channel.d.ts.map +1 -1
- package/dist/shutdown-channel.js.map +1 -1
- package/dist/worker-schema.d.ts +141 -41
- package/dist/worker-schema.d.ts.map +1 -1
- package/dist/worker-schema.js +43 -18
- package/dist/worker-schema.js.map +1 -1
- package/package.json +59 -19
- package/src/client-session/adapter.ts +149 -72
- package/src/devtools/devtools-server.ts +22 -10
- package/src/devtools/mod.ts +1 -1
- package/src/devtools/vite-dev-server.ts +63 -11
- package/src/leader-thread-shared.ts +17 -13
- package/src/make-leader-worker.ts +80 -67
- package/src/shutdown-channel.ts +1 -0
- package/src/worker-schema.ts +67 -18
|
@@ -1,14 +1,36 @@
|
|
|
1
1
|
import path from 'node:path';
|
|
2
|
-
import {
|
|
3
|
-
import { livestoreDevtoolsPlugin } from '@livestore/devtools-vite';
|
|
2
|
+
import { UnknownError } from '@livestore/common';
|
|
4
3
|
import { isReadonlyArray } from '@livestore/utils';
|
|
5
|
-
import { Effect } from '@livestore/utils/effect';
|
|
4
|
+
import { Effect, Schema } from '@livestore/utils/effect';
|
|
6
5
|
import { getFreePort } from '@livestore/utils/node';
|
|
7
|
-
|
|
6
|
+
/**
|
|
7
|
+
* Error thrown when @livestore/devtools-vite is not installed.
|
|
8
|
+
* This is a peer dependency that must be installed separately.
|
|
9
|
+
*/
|
|
10
|
+
export class DevtoolsViteNotInstalledError extends Schema.TaggedError('~@livestore/adapter-node/DevtoolsViteNotInstalledError')('DevtoolsViteNotInstalledError', {
|
|
11
|
+
cause: Schema.Defect,
|
|
12
|
+
}) {
|
|
13
|
+
get message() {
|
|
14
|
+
return (`@livestore/devtools-vite is required for devtools but not installed. ` +
|
|
15
|
+
`Install it with: pnpm add @livestore/devtools-vite@<version>. ` +
|
|
16
|
+
`Make sure to use the same version as @livestore/adapter-node.`);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
/** Error thrown when vite is not installed for the devtools server path. */
|
|
20
|
+
export class ViteNotInstalledError extends Schema.TaggedError('~@livestore/adapter-node/ViteNotInstalledError')('ViteNotInstalledError', {
|
|
21
|
+
cause: Schema.Defect,
|
|
22
|
+
}) {
|
|
23
|
+
get message() {
|
|
24
|
+
return (`vite is required for @livestore/adapter-node/devtools but not installed. ` +
|
|
25
|
+
`Install it with: pnpm add -D vite@<version>.`);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
8
28
|
// NOTE this is currently also used in @livestore/devtools-expo
|
|
9
29
|
export const makeViteMiddleware = (options) => Effect.gen(function* () {
|
|
30
|
+
const { livestoreDevtoolsPlugin } = yield* importDevtoolsVite();
|
|
31
|
+
const Vite = yield* importVite();
|
|
10
32
|
const cwd = process.cwd();
|
|
11
|
-
const hmrPort = yield* getFreePort.pipe(
|
|
33
|
+
const hmrPort = yield* getFreePort.pipe(UnknownError.mapToUnknownError);
|
|
12
34
|
const defaultViteConfig = Vite.defineConfig({
|
|
13
35
|
server: {
|
|
14
36
|
middlewareMode: true,
|
|
@@ -16,13 +38,13 @@ export const makeViteMiddleware = (options) => Effect.gen(function* () {
|
|
|
16
38
|
port: hmrPort,
|
|
17
39
|
},
|
|
18
40
|
// Relaxing fs access for monorepo setup
|
|
19
|
-
fs: { strict: process.env.LS_DEV ? false : true },
|
|
41
|
+
fs: { strict: process.env.LS_DEV !== undefined ? false : true },
|
|
20
42
|
},
|
|
21
43
|
appType: 'spa',
|
|
22
44
|
base: '/_livestore/',
|
|
23
45
|
plugins: [
|
|
24
46
|
livestoreDevtoolsPlugin({
|
|
25
|
-
schemaPath: isReadonlyArray(options.schemaPath)
|
|
47
|
+
schemaPath: isReadonlyArray(options.schemaPath) === true
|
|
26
48
|
? options.schemaPath.map((schemaPath) => path.resolve(cwd, schemaPath))
|
|
27
49
|
: path.resolve(cwd, options.schemaPath),
|
|
28
50
|
mode: options.mode,
|
|
@@ -33,7 +55,20 @@ export const makeViteMiddleware = (options) => Effect.gen(function* () {
|
|
|
33
55
|
logLevel: 'silent',
|
|
34
56
|
});
|
|
35
57
|
const viteConfig = options.viteConfig?.(defaultViteConfig) ?? defaultViteConfig;
|
|
36
|
-
const viteServer = yield* Effect.promise(() => Vite.createServer(viteConfig)).pipe(
|
|
58
|
+
const viteServer = yield* Effect.promise(() => Vite.createServer(viteConfig)).pipe(UnknownError.mapToUnknownError);
|
|
37
59
|
return viteServer;
|
|
38
60
|
}).pipe(Effect.withSpan('@livestore/adapter-node:devtools:makeViteServer'));
|
|
61
|
+
/**
|
|
62
|
+
* Dynamically imports @livestore/devtools-vite.
|
|
63
|
+
* This package is a peer dependency and may not be installed.
|
|
64
|
+
*/
|
|
65
|
+
const importDevtoolsVite = () => Effect.tryPromise({
|
|
66
|
+
try: () => import('@livestore/devtools-vite'),
|
|
67
|
+
catch: (cause) => new DevtoolsViteNotInstalledError({ cause }),
|
|
68
|
+
});
|
|
69
|
+
/** Dynamically imports vite for the devtools-only server path. */
|
|
70
|
+
const importVite = () => Effect.tryPromise({
|
|
71
|
+
try: () => import('vite'),
|
|
72
|
+
catch: (cause) => new ViteNotInstalledError({ cause }),
|
|
73
|
+
});
|
|
39
74
|
//# sourceMappingURL=vite-dev-server.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vite-dev-server.js","sourceRoot":"","sources":["../../src/devtools/vite-dev-server.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"vite-dev-server.js","sourceRoot":"","sources":["../../src/devtools/vite-dev-server.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { ClientSessionLeaderThreadProxy, MakeSqliteDb, SqliteDb, SyncOptions } from '@livestore/common';
|
|
2
|
-
import {
|
|
2
|
+
import { UnknownError } from '@livestore/common';
|
|
3
3
|
import type { LeaderThreadCtx } from '@livestore/common/leader-thread';
|
|
4
4
|
import type { LiveStoreSchema } from '@livestore/common/schema';
|
|
5
5
|
import type { MakeNodeSqliteDb } from '@livestore/sqlite-wasm/node';
|
|
@@ -13,7 +13,7 @@ export type TestingOverrides = {
|
|
|
13
13
|
makeLeaderThread?: (makeSqliteDb: MakeSqliteDb) => Effect.Effect<{
|
|
14
14
|
dbEventlog: SqliteDb;
|
|
15
15
|
dbState: SqliteDb;
|
|
16
|
-
},
|
|
16
|
+
}, UnknownError>;
|
|
17
17
|
};
|
|
18
18
|
export interface MakeLeaderThreadArgs {
|
|
19
19
|
storeId: string;
|
|
@@ -23,8 +23,9 @@ export interface MakeLeaderThreadArgs {
|
|
|
23
23
|
makeSqliteDb: MakeNodeSqliteDb;
|
|
24
24
|
devtools: WorkerSchema.LeaderWorkerInnerInitialMessage['devtools'];
|
|
25
25
|
schema: LiveStoreSchema;
|
|
26
|
-
|
|
26
|
+
syncPayloadEncoded: Schema.JsonValue | undefined;
|
|
27
|
+
syncPayloadSchema: Schema.Schema<any> | undefined;
|
|
27
28
|
testing: TestingOverrides | undefined;
|
|
28
29
|
}
|
|
29
|
-
export declare const makeLeaderThread: ({ storeId, clientId, syncOptions, makeSqliteDb, storage, devtools, schema,
|
|
30
|
+
export declare const makeLeaderThread: ({ storeId, clientId, syncOptions, makeSqliteDb, storage, devtools, schema, syncPayloadEncoded, syncPayloadSchema, testing, }: MakeLeaderThreadArgs) => Effect.Effect<Layer.Layer<LeaderThreadCtx, UnknownError, Scope.Scope | HttpClient.HttpClient | FileSystem.FileSystem>, UnknownError, Scope.Scope>;
|
|
30
31
|
//# sourceMappingURL=leader-thread-shared.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"leader-thread-shared.d.ts","sourceRoot":"","sources":["../src/leader-thread-shared.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,8BAA8B,EAAE,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC5G,OAAO,EAAsD,
|
|
1
|
+
{"version":3,"file":"leader-thread-shared.d.ts","sourceRoot":"","sources":["../src/leader-thread-shared.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,8BAA8B,EAAE,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC5G,OAAO,EAAsD,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACpG,OAAO,KAAK,EAAmC,eAAe,EAAE,MAAM,iCAAiC,CAAA;AAEvG,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAC/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AACnE,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAA;AAC3F,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAIhD,OAAO,KAAK,KAAK,YAAY,MAAM,oBAAoB,CAAA;AAEvD,MAAM,MAAM,gBAAgB,GAAG;IAC7B,aAAa,CAAC,EAAE;QACd,iBAAiB,CAAC,EAAE,CAClB,QAAQ,EAAE,8BAA8B,CAAC,8BAA8B,KACpE,OAAO,CAAC,8BAA8B,CAAC,8BAA8B,CAAC,CAAA;KAC5E,CAAA;IACD,gBAAgB,CAAC,EAAE,CAAC,YAAY,EAAE,YAAY,KAAK,MAAM,CAAC,MAAM,CAC9D;QACE,UAAU,EAAE,QAAQ,CAAA;QACpB,OAAO,EAAE,QAAQ,CAAA;KAClB,EACD,YAAY,CACb,CAAA;CACF,CAAA;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,WAAW,GAAG,SAAS,CAAA;IACpC,OAAO,EAAE,YAAY,CAAC,WAAW,CAAA;IACjC,YAAY,EAAE,gBAAgB,CAAA;IAC9B,QAAQ,EAAE,YAAY,CAAC,+BAA+B,CAAC,UAAU,CAAC,CAAA;IAClE,MAAM,EAAE,eAAe,CAAA;IACvB,kBAAkB,EAAE,MAAM,CAAC,SAAS,GAAG,SAAS,CAAA;IAChD,iBAAiB,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,CAAA;IACjD,OAAO,EAAE,gBAAgB,GAAG,SAAS,CAAA;CACtC;AAED,eAAO,MAAM,gBAAgB,GAAI,8HAW9B,oBAAoB,KAAG,MAAM,CAAC,MAAM,CACrC,KAAK,CAAC,KAAK,CAAC,eAAe,EAAE,YAAY,EAAE,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC,EACvG,YAAY,EACZ,KAAK,CAAC,KAAK,CA+DV,CAAA"}
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import inspector from 'node:inspector';
|
|
2
2
|
import path from 'node:path';
|
|
3
|
-
if (process.execArgv.includes('--inspect')) {
|
|
3
|
+
if (process.execArgv.includes('--inspect') === true) {
|
|
4
4
|
inspector.open();
|
|
5
5
|
inspector.waitForDebugger();
|
|
6
6
|
}
|
|
7
|
-
import { Devtools, liveStoreStorageFormatVersion, migrateDb,
|
|
7
|
+
import { Devtools, liveStoreStorageFormatVersion, migrateDb, UnknownError } from '@livestore/common';
|
|
8
8
|
import { configureConnection, makeLeaderThreadLayer } from '@livestore/common/leader-thread';
|
|
9
9
|
import { Effect } from '@livestore/utils/effect';
|
|
10
10
|
import * as Webmesh from '@livestore/webmesh';
|
|
11
11
|
import { makeShutdownChannel } from "./shutdown-channel.js";
|
|
12
|
-
export const makeLeaderThread = ({ storeId, clientId, syncOptions, makeSqliteDb, storage, devtools, schema,
|
|
12
|
+
export const makeLeaderThread = ({ storeId, clientId, syncOptions, makeSqliteDb, storage, devtools, schema, syncPayloadEncoded, syncPayloadSchema, testing, }) => Effect.gen(function* () {
|
|
13
13
|
const runtime = yield* Effect.runtime();
|
|
14
14
|
const schemaHashSuffix = schema.state.sqlite.migrations.strategy === 'manual' ? 'fixed' : schema.state.sqlite.hash.toString();
|
|
15
15
|
const makeDb = (kind) => {
|
|
16
|
-
if (testing?.makeLeaderThread) {
|
|
16
|
+
if (testing?.makeLeaderThread !== undefined) {
|
|
17
17
|
return testing
|
|
18
18
|
.makeLeaderThread(makeSqliteDb)
|
|
19
19
|
.pipe(Effect.map(({ dbEventlog, dbState }) => (kind === 'state' ? dbState : dbEventlog)));
|
|
@@ -49,9 +49,10 @@ export const makeLeaderThread = ({ storeId, clientId, syncOptions, makeSqliteDb,
|
|
|
49
49
|
dbEventlog,
|
|
50
50
|
devtoolsOptions,
|
|
51
51
|
shutdownChannel,
|
|
52
|
-
|
|
52
|
+
syncPayloadEncoded,
|
|
53
|
+
syncPayloadSchema,
|
|
53
54
|
});
|
|
54
|
-
}).pipe(Effect.tapCauseLogPretty,
|
|
55
|
+
}).pipe(Effect.tapCauseLogPretty, UnknownError.mapToUnknownError, Effect.withSpan('@livestore/adapter-node:makeLeaderThread', {
|
|
55
56
|
attributes: { storeId, clientId, storage, devtools, syncOptions },
|
|
56
57
|
}));
|
|
57
58
|
const getStateDbFileName = (suffix) => `state${suffix}@${liveStoreStorageFormatVersion}.db`;
|
|
@@ -76,6 +77,7 @@ const makeDevtoolsOptions = ({ dbState, dbEventlog, storeId, clientId, devtools,
|
|
|
76
77
|
sessionId: 'static', // TODO make this dynamic
|
|
77
78
|
schemaAlias: devtools.schemaAlias,
|
|
78
79
|
isLeader: true,
|
|
80
|
+
origin: undefined,
|
|
79
81
|
}),
|
|
80
82
|
port: devtools.port,
|
|
81
83
|
host: devtools.host,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"leader-thread-shared.js","sourceRoot":"","sources":["../src/leader-thread-shared.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,gBAAgB,CAAA;AACtC,OAAO,IAAI,MAAM,WAAW,CAAA;AAE5B,IAAI,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"leader-thread-shared.js","sourceRoot":"","sources":["../src/leader-thread-shared.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,19 +1,21 @@
|
|
|
1
1
|
import './thread-polyfill.ts';
|
|
2
|
+
import type * as otel from '@opentelemetry/api';
|
|
2
3
|
import type { SyncOptions } from '@livestore/common';
|
|
4
|
+
import { LogConfig } from '@livestore/common';
|
|
3
5
|
import type { LiveStoreSchema } from '@livestore/common/schema';
|
|
4
6
|
import { Effect, Schema } from '@livestore/utils/effect';
|
|
5
|
-
import type * as otel from '@opentelemetry/api';
|
|
6
7
|
import type { TestingOverrides } from './leader-thread-shared.ts';
|
|
7
8
|
export type WorkerOptions = {
|
|
8
9
|
schema: LiveStoreSchema;
|
|
9
10
|
sync?: SyncOptions;
|
|
11
|
+
syncPayloadSchema?: Schema.Schema<any>;
|
|
10
12
|
otelOptions?: {
|
|
11
13
|
tracer?: otel.Tracer;
|
|
12
14
|
/** @default 'livestore-node-leader-thread' */
|
|
13
15
|
serviceName?: string;
|
|
14
16
|
};
|
|
15
17
|
testing?: TestingOverrides;
|
|
16
|
-
};
|
|
18
|
+
} & LogConfig.WithLoggerOptions;
|
|
17
19
|
export declare const getWorkerArgs: () => {
|
|
18
20
|
readonly clientId: string;
|
|
19
21
|
readonly storeId: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"make-leader-worker.d.ts","sourceRoot":"","sources":["../src/make-leader-worker.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAA;
|
|
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,KAAK,IAAI,MAAM,oBAAoB,CAAA;AAE/C,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;AAI/D,OAAO,EAAE,MAAM,EAAsC,MAAM,EAAwB,MAAM,yBAAyB,CAAA;AAGlH,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,iBAAiB,CAAA;AAE/B,eAAO,MAAM,aAAa;;;;;CAAqE,CAAA;AAE/F,eAAO,MAAM,UAAU,GAAI,SAAS,aAAa,SAEhD,CAAA;AAED,eAAO,MAAM,gBAAgB,GAAI,SAAS,aAAa,mFAwItD,CAAA"}
|
|
@@ -1,26 +1,28 @@
|
|
|
1
1
|
import "./thread-polyfill.js";
|
|
2
2
|
import inspector from 'node:inspector';
|
|
3
|
-
if (process.execArgv.includes('--inspect')) {
|
|
3
|
+
if (process.execArgv.includes('--inspect') === true) {
|
|
4
4
|
inspector.open();
|
|
5
5
|
inspector.waitForDebugger();
|
|
6
6
|
}
|
|
7
|
-
import {
|
|
8
|
-
import { Eventlog, LeaderThreadCtx } from '@livestore/common/leader-thread';
|
|
7
|
+
import { LogConfig, UnknownError } from '@livestore/common';
|
|
8
|
+
import { Eventlog, LeaderThreadCtx, streamEventsWithSyncState } from '@livestore/common/leader-thread';
|
|
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 { Effect, FetchHttpClient,
|
|
12
|
+
import { Effect, FetchHttpClient, Layer, OtelTracer, Schema, Stream, WorkerRunner } from '@livestore/utils/effect';
|
|
13
13
|
import { PlatformNode } from '@livestore/utils/node';
|
|
14
14
|
import { makeLeaderThread } from "./leader-thread-shared.js";
|
|
15
15
|
import * as WorkerSchema from "./worker-schema.js";
|
|
16
16
|
export const getWorkerArgs = () => Schema.decodeSync(WorkerSchema.WorkerArgv)(process.argv[2]);
|
|
17
17
|
export const makeWorker = (options) => {
|
|
18
|
-
makeWorkerEffect(options).pipe(
|
|
18
|
+
makeWorkerEffect(options).pipe(PlatformNode.NodeRuntime.runMain);
|
|
19
19
|
};
|
|
20
20
|
export const makeWorkerEffect = (options) => {
|
|
21
|
-
const TracingLive = options.otelOptions?.tracer
|
|
21
|
+
const TracingLive = options.otelOptions?.tracer !== undefined
|
|
22
22
|
? Layer.unwrapEffect(Effect.map(OtelTracer.make, Layer.setTracer)).pipe(Layer.provideMerge(Layer.succeed(OtelTracer.OtelTracer, options.otelOptions.tracer)))
|
|
23
23
|
: undefined;
|
|
24
|
+
// 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 ?? Layer.empty);
|
|
24
26
|
return WorkerRunner.layerSerialized(WorkerSchema.LeaderWorkerInnerRequest, {
|
|
25
27
|
InitialMessage: (args) => Effect.gen(function* () {
|
|
26
28
|
const sqlite3 = yield* Effect.promise(() => loadSqlite3Wasm()).pipe(Effect.withSpan('@livestore/adapter-node:leader-thread:loadSqlite3Wasm'));
|
|
@@ -31,9 +33,11 @@ export const makeWorkerEffect = (options) => {
|
|
|
31
33
|
schema: options.schema,
|
|
32
34
|
testing: options.testing,
|
|
33
35
|
makeSqliteDb,
|
|
36
|
+
syncPayloadEncoded: args.syncPayloadEncoded,
|
|
37
|
+
syncPayloadSchema: options.syncPayloadSchema,
|
|
34
38
|
});
|
|
35
39
|
}).pipe(Layer.unwrapScoped),
|
|
36
|
-
PushToLeader: ({ batch }) => Effect.andThen(LeaderThreadCtx, (_) => _.syncProcessor.push(batch.map((item) => new LiveStoreEvent.EncodedWithMeta(item)),
|
|
40
|
+
PushToLeader: ({ batch }) => Effect.andThen(LeaderThreadCtx, (_) => _.syncProcessor.push(batch.map((item) => new LiveStoreEvent.Client.EncodedWithMeta(item)),
|
|
37
41
|
// We'll wait in order to keep back pressure on the client session
|
|
38
42
|
{ waitForProcessing: true })).pipe(Effect.uninterruptible, Effect.withSpan('@livestore/adapter-node:worker:PushToLeader')),
|
|
39
43
|
BootStatusStream: () => Effect.andThen(LeaderThreadCtx, (_) => Stream.fromQueue(_.bootStatusQueue)).pipe(Stream.unwrap),
|
|
@@ -41,17 +45,38 @@ export const makeWorkerEffect = (options) => {
|
|
|
41
45
|
const { syncProcessor } = yield* LeaderThreadCtx;
|
|
42
46
|
return syncProcessor.pull({ cursor });
|
|
43
47
|
}).pipe(Stream.unwrapScoped),
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
48
|
+
StreamEvents: (options) => LeaderThreadCtx.pipe(Effect.map(({ dbEventlog, syncProcessor }) => {
|
|
49
|
+
const { _tag: _ignored, ...payload } = options;
|
|
50
|
+
const streamOptions = payload;
|
|
51
|
+
return streamEventsWithSyncState({
|
|
52
|
+
dbEventlog,
|
|
53
|
+
syncState: syncProcessor.syncState,
|
|
54
|
+
options: streamOptions,
|
|
55
|
+
});
|
|
56
|
+
}), Stream.unwrapScoped, Stream.withSpan('@livestore/adapter-node:worker:StreamEvents')),
|
|
57
|
+
Export: () => Effect.andThen(LeaderThreadCtx, (_) => _.dbState.export()).pipe(Effect.withSpan('@livestore/adapter-node:worker:Export')),
|
|
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* () {
|
|
47
60
|
const workerCtx = yield* LeaderThreadCtx;
|
|
48
61
|
return Eventlog.getClientHeadFromDb(workerCtx.dbEventlog);
|
|
49
|
-
})
|
|
50
|
-
GetLeaderSyncState:
|
|
62
|
+
}),
|
|
63
|
+
GetLeaderSyncState: Effect.fn('@livestore/adapter-node:worker:GetLeaderSyncState')(function* () {
|
|
51
64
|
const workerCtx = yield* LeaderThreadCtx;
|
|
52
65
|
return yield* workerCtx.syncProcessor.syncState;
|
|
53
|
-
})
|
|
54
|
-
|
|
66
|
+
}),
|
|
67
|
+
SyncStateStream: () => Effect.gen(function* () {
|
|
68
|
+
const workerCtx = yield* LeaderThreadCtx;
|
|
69
|
+
return workerCtx.syncProcessor.syncState.changes;
|
|
70
|
+
}).pipe(Stream.unwrapScoped),
|
|
71
|
+
GetNetworkStatus: Effect.fn('@livestore/adapter-node:worker:GetNetworkStatus')(function* () {
|
|
72
|
+
const workerCtx = yield* LeaderThreadCtx;
|
|
73
|
+
return yield* workerCtx.networkStatus;
|
|
74
|
+
}),
|
|
75
|
+
NetworkStatusStream: () => Effect.gen(function* () {
|
|
76
|
+
const workerCtx = yield* LeaderThreadCtx;
|
|
77
|
+
return workerCtx.networkStatus.changes;
|
|
78
|
+
}).pipe(Stream.unwrapScoped),
|
|
79
|
+
GetRecreateSnapshot: Effect.fn('@livestore/adapter-node:worker:GetRecreateSnapshot')(function* () {
|
|
55
80
|
const workerCtx = yield* LeaderThreadCtx;
|
|
56
81
|
// const result = yield* Deferred.await(workerCtx.initialSetupDeferred)
|
|
57
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
|
|
@@ -60,8 +85,8 @@ export const makeWorkerEffect = (options) => {
|
|
|
60
85
|
// return cachedSnapshot ?? workerCtx.db.export()
|
|
61
86
|
const snapshot = workerCtx.dbState.export();
|
|
62
87
|
return { snapshot, migrationsReport: workerCtx.initialState.migrationsReport };
|
|
63
|
-
})
|
|
64
|
-
Shutdown:
|
|
88
|
+
}),
|
|
89
|
+
Shutdown: Effect.fn('@livestore/adapter-node:worker:Shutdown')(function* () {
|
|
65
90
|
// const { db, dbEventlog } = yield* LeaderThreadCtx
|
|
66
91
|
yield* Effect.logDebug('[@livestore/adapter-node:worker] Shutdown');
|
|
67
92
|
// if (devtools.enabled) {
|
|
@@ -72,15 +97,15 @@ export const makeWorkerEffect = (options) => {
|
|
|
72
97
|
// Buy some time for Otel to flush
|
|
73
98
|
// TODO find a cleaner way to do this
|
|
74
99
|
// yield* Effect.sleep(1000)
|
|
75
|
-
})
|
|
76
|
-
ExtraDevtoolsMessage: ({ message }) => Effect.andThen(LeaderThreadCtx, (_) => _.extraIncomingMessagesQueue.offer(message)).pipe(
|
|
100
|
+
}),
|
|
101
|
+
ExtraDevtoolsMessage: ({ message }) => Effect.andThen(LeaderThreadCtx, (_) => _.extraIncomingMessagesQueue.offer(message)).pipe(Effect.withSpan('@livestore/adapter-node:worker:ExtraDevtoolsMessage')),
|
|
77
102
|
}).pipe(Layer.provide(PlatformNode.NodeWorkerRunner.layer), WorkerRunner.launch, Effect.scoped, Effect.tapCauseLogPretty, Effect.annotateLogs({
|
|
78
103
|
thread: options.otelOptions?.serviceName ?? 'livestore-node-leader-thread',
|
|
79
104
|
processId: process.pid,
|
|
80
|
-
}),
|
|
105
|
+
}), LogConfig.withLoggerConfig({ logger: options.logger, logLevel: options.logLevel }, { threadName: options.otelOptions?.serviceName ?? 'livestore-node-leader-thread' }),
|
|
81
106
|
// TODO bring back with Effect 4 once it's easier to work with replacing loggers.
|
|
82
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.
|
|
83
108
|
// Effect.provide(Logger.prettyWithThread(options.otelOptions?.serviceName ?? 'livestore-node-leader-thread')),
|
|
84
|
-
Effect.provide(
|
|
109
|
+
Effect.provide(runtimeLayer));
|
|
85
110
|
};
|
|
86
111
|
//# 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;
|
|
1
|
+
{"version":3,"file":"make-leader-worker.js","sourceRoot":"","sources":["../src/make-leader-worker.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shutdown-channel.d.ts","sourceRoot":"","sources":["../src/shutdown-channel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAA;AACjE,OAAO,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAA;
|
|
1
|
+
{"version":3,"file":"shutdown-channel.d.ts","sourceRoot":"","sources":["../src/shutdown-channel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAA;AACjE,OAAO,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAA;AAI5D,eAAO,MAAM,mBAAmB,GAC9B,SAAS,MAAM,KACd,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,eAAe,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAIhE,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shutdown-channel.js","sourceRoot":"","sources":["../src/shutdown-channel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAA;
|
|
1
|
+
{"version":3,"file":"shutdown-channel.js","sourceRoot":"","sources":["../src/shutdown-channel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAA;AAGjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AAEtD,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,OAAe,EACqD,EAAE,CACtE,oBAAoB,CAAC;IACnB,WAAW,EAAE,sBAAsB,OAAO,EAAE;IAC5C,MAAM,EAAE,eAAe,CAAC,GAAG;CAC5B,CAAC,CAAA"}
|