@livestore/adapter-node 0.0.0-snapshot-412a36a7e6c9b0e9e237b553fd0522aed285228f.5 → 0.0.0-snapshot-c1f0b46f049c5a40eb57f52e232999b7f810cd93

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.
@@ -1,87 +0,0 @@
1
- import inspector from 'node:inspector';
2
- import path from 'node:path';
3
- if (process.execArgv.includes('--inspect')) {
4
- inspector.open();
5
- inspector.waitForDebugger();
6
- }
7
- import { Devtools, liveStoreStorageFormatVersion, UnexpectedError } from '@livestore/common';
8
- import { configureConnection, makeLeaderThreadLayer } from '@livestore/common/leader-thread';
9
- import { makeNodeDevtoolsChannel } from '@livestore/devtools-node-common/web-channel';
10
- import { Effect, FetchHttpClient } from '@livestore/utils/effect';
11
- import { startDevtoolsServer } from './devtools/devtools-server.js';
12
- import { makeShutdownChannel } from './shutdown-channel.js';
13
- export const makeLeaderThread = ({ storeId, clientId, syncOptions, makeSqliteDb, storage, devtools, schema, syncPayload, testing, }) => Effect.gen(function* () {
14
- const runtime = yield* Effect.runtime();
15
- const schemaHashSuffix = schema.state.sqlite.migrations.strategy === 'manual' ? 'fixed' : schema.state.sqlite.hash.toString();
16
- const makeDb = (kind) => {
17
- if (testing?.makeLeaderThread?.dbEventlog && kind === 'eventlog') {
18
- return testing.makeLeaderThread.dbEventlog(makeSqliteDb);
19
- }
20
- return storage.type === 'in-memory'
21
- ? makeSqliteDb({
22
- _tag: 'in-memory',
23
- configureDb: (db) => configureConnection(db, { foreignKeys: true }).pipe(Effect.provide(runtime), Effect.runSync),
24
- })
25
- : makeSqliteDb({
26
- _tag: 'fs',
27
- directory: path.join(storage.baseDirectory ?? '', storeId),
28
- fileName: kind === 'state' ? getStateDbFileName(schemaHashSuffix) : `eventlog@${liveStoreStorageFormatVersion}.db`,
29
- // TODO enable WAL for nodejs
30
- configureDb: (db) => configureConnection(db, { foreignKeys: true }).pipe(Effect.provide(runtime), Effect.runSync),
31
- }).pipe(Effect.acquireRelease((db) => Effect.sync(() => db.close())));
32
- };
33
- // Might involve some async work, so we're running them concurrently
34
- const [dbState, dbEventlog] = yield* Effect.all([makeDb('state'), makeDb('eventlog')], { concurrency: 2 });
35
- const devtoolsOptions = yield* makeDevtoolsOptions({ devtools, dbState, dbEventlog, storeId, clientId });
36
- const shutdownChannel = yield* makeShutdownChannel(storeId);
37
- return makeLeaderThreadLayer({
38
- schema,
39
- storeId,
40
- clientId,
41
- makeSqliteDb,
42
- syncOptions,
43
- dbState,
44
- dbEventlog,
45
- devtoolsOptions,
46
- shutdownChannel,
47
- syncPayload,
48
- });
49
- }).pipe(Effect.tapCauseLogPretty, UnexpectedError.mapToUnexpectedError, Effect.withSpan('@livestore/adapter-node:makeLeaderThread', {
50
- attributes: { storeId, clientId, storage, devtools, syncOptions },
51
- }));
52
- const getStateDbFileName = (suffix) => `state${suffix}@${liveStoreStorageFormatVersion}.db`;
53
- const makeDevtoolsOptions = ({ dbState, dbEventlog, storeId, clientId, devtools, }) => Effect.gen(function* () {
54
- if (devtools.enabled === false) {
55
- return {
56
- enabled: false,
57
- };
58
- }
59
- return {
60
- enabled: true,
61
- makeBootContext: Effect.gen(function* () {
62
- // TODO instead of failing when the port is already in use, we should try to use that WS server instead of starting a new one
63
- yield* startDevtoolsServer({
64
- schemaPath: devtools.schemaPath,
65
- storeId,
66
- clientId,
67
- sessionId: 'static', // TODO make this dynamic
68
- port: devtools.port,
69
- host: devtools.host,
70
- }).pipe(Effect.tapCauseLogPretty, Effect.forkScoped);
71
- const devtoolsWebChannel = yield* makeNodeDevtoolsChannel({
72
- nodeName: `leader-${storeId}-${clientId}`,
73
- target: `devtools-${storeId}-${clientId}-static`,
74
- url: `ws://localhost:${devtools.port}`,
75
- schema: { listen: Devtools.Leader.MessageToApp, send: Devtools.Leader.MessageFromApp },
76
- });
77
- return {
78
- devtoolsWebChannel,
79
- persistenceInfo: {
80
- state: dbState.metadata.persistenceInfo,
81
- eventlog: dbEventlog.metadata.persistenceInfo,
82
- },
83
- };
84
- }).pipe(Effect.provide(FetchHttpClient.layer)),
85
- };
86
- });
87
- //# sourceMappingURL=leader-shared.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"leader-shared.js","sourceRoot":"","sources":["../src/leader-shared.ts"],"names":[],"mappings":"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"}