@livestore/adapter-web 0.4.0-dev.14 → 0.4.0-dev.16
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/in-memory/in-memory-adapter.d.ts +3 -3
- package/dist/in-memory/in-memory-adapter.d.ts.map +1 -1
- package/dist/in-memory/in-memory-adapter.js +9 -6
- package/dist/in-memory/in-memory-adapter.js.map +1 -1
- package/dist/web-worker/client-session/client-session-devtools.d.ts.map +1 -1
- package/dist/web-worker/client-session/client-session-devtools.js +11 -1
- package/dist/web-worker/client-session/client-session-devtools.js.map +1 -1
- package/dist/web-worker/client-session/persisted-adapter.d.ts.map +1 -1
- package/dist/web-worker/client-session/persisted-adapter.js +10 -3
- package/dist/web-worker/client-session/persisted-adapter.js.map +1 -1
- package/dist/web-worker/client-session/sqlite-loader.js +1 -1
- package/dist/web-worker/client-session/sqlite-loader.js.map +1 -1
- package/dist/web-worker/common/worker-schema.d.ts +5 -5
- package/dist/web-worker/common/worker-schema.js +1 -1
- package/dist/web-worker/common/worker-schema.js.map +1 -1
- package/dist/web-worker/leader-worker/make-leader-worker.d.ts +4 -2
- package/dist/web-worker/leader-worker/make-leader-worker.d.ts.map +1 -1
- package/dist/web-worker/leader-worker/make-leader-worker.js +9 -8
- package/dist/web-worker/leader-worker/make-leader-worker.js.map +1 -1
- package/dist/web-worker/shared-worker/make-shared-worker.d.ts +2 -1
- package/dist/web-worker/shared-worker/make-shared-worker.d.ts.map +1 -1
- package/dist/web-worker/shared-worker/make-shared-worker.js +9 -9
- package/dist/web-worker/shared-worker/make-shared-worker.js.map +1 -1
- package/package.json +6 -6
- package/src/in-memory/in-memory-adapter.ts +22 -8
- package/src/web-worker/client-session/client-session-devtools.ts +15 -1
- package/src/web-worker/client-session/persisted-adapter.ts +20 -3
- package/src/web-worker/client-session/sqlite-loader.ts +1 -1
- package/src/web-worker/common/worker-schema.ts +1 -1
- package/src/web-worker/leader-worker/make-leader-worker.ts +11 -10
- package/src/web-worker/shared-worker/make-shared-worker.ts +8 -11
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"make-shared-worker.js","sourceRoot":"","sources":["../../../src/web-worker/shared-worker/make-shared-worker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"make-shared-worker.js","sourceRoot":"","sources":["../../../src/web-worker/shared-worker/make-shared-worker.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@livestore/adapter-web",
|
|
3
|
-
"version": "0.4.0-dev.
|
|
3
|
+
"version": "0.4.0-dev.16",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"exports": {
|
|
@@ -13,11 +13,11 @@
|
|
|
13
13
|
},
|
|
14
14
|
"dependencies": {
|
|
15
15
|
"@opentelemetry/api": "1.9.0",
|
|
16
|
-
"@livestore/common": "0.4.0-dev.
|
|
17
|
-
"@livestore/
|
|
18
|
-
"@livestore/
|
|
19
|
-
"@livestore/webmesh": "0.4.0-dev.
|
|
20
|
-
"@livestore/
|
|
16
|
+
"@livestore/common": "0.4.0-dev.16",
|
|
17
|
+
"@livestore/devtools-web-common": "0.4.0-dev.16",
|
|
18
|
+
"@livestore/sqlite-wasm": "0.4.0-dev.16",
|
|
19
|
+
"@livestore/webmesh": "0.4.0-dev.16",
|
|
20
|
+
"@livestore/utils": "0.4.0-dev.16"
|
|
21
21
|
},
|
|
22
22
|
"devDependencies": {
|
|
23
23
|
"@types/chrome": "0.1.4",
|
|
@@ -17,8 +17,17 @@ import type * as WebmeshWorker from '@livestore/devtools-web-common/worker'
|
|
|
17
17
|
import type { MakeWebSqliteDb } from '@livestore/sqlite-wasm/browser'
|
|
18
18
|
import { sqliteDbFactory } from '@livestore/sqlite-wasm/browser'
|
|
19
19
|
import { tryAsFunctionAndNew } from '@livestore/utils'
|
|
20
|
-
import type {
|
|
21
|
-
import {
|
|
20
|
+
import type { Scope } from '@livestore/utils/effect'
|
|
21
|
+
import {
|
|
22
|
+
BrowserWorker,
|
|
23
|
+
Effect,
|
|
24
|
+
FetchHttpClient,
|
|
25
|
+
Fiber,
|
|
26
|
+
Layer,
|
|
27
|
+
type Schema,
|
|
28
|
+
SubscriptionRef,
|
|
29
|
+
Worker,
|
|
30
|
+
} from '@livestore/utils/effect'
|
|
22
31
|
import { nanoid } from '@livestore/utils/nanoid'
|
|
23
32
|
import * as Webmesh from '@livestore/webmesh'
|
|
24
33
|
|
|
@@ -66,7 +75,7 @@ export const makeInMemoryAdapter =
|
|
|
66
75
|
(options: InMemoryAdapterOptions = {}): Adapter =>
|
|
67
76
|
(adapterArgs) =>
|
|
68
77
|
Effect.gen(function* () {
|
|
69
|
-
const { schema, shutdown,
|
|
78
|
+
const { schema, shutdown, syncPayloadEncoded, syncPayloadSchema, storeId, devtoolsEnabled } = adapterArgs
|
|
70
79
|
const sqlite3 = yield* Effect.promise(() => loadSqlite3())
|
|
71
80
|
|
|
72
81
|
const sqliteDb = yield* sqliteDbFactory({ sqlite3 })({ _tag: 'in-memory' })
|
|
@@ -98,7 +107,8 @@ export const makeInMemoryAdapter =
|
|
|
98
107
|
clientId,
|
|
99
108
|
makeSqliteDb: sqliteDbFactory({ sqlite3 }),
|
|
100
109
|
syncOptions: options.sync,
|
|
101
|
-
|
|
110
|
+
syncPayloadEncoded,
|
|
111
|
+
syncPayloadSchema,
|
|
102
112
|
importSnapshot: options.importSnapshot,
|
|
103
113
|
devtoolsEnabled,
|
|
104
114
|
sharedWorkerFiber,
|
|
@@ -118,7 +128,8 @@ export const makeInMemoryAdapter =
|
|
|
118
128
|
lockStatus,
|
|
119
129
|
shutdown,
|
|
120
130
|
webmeshMode: 'direct',
|
|
121
|
-
|
|
131
|
+
// Can be undefined in Node.js
|
|
132
|
+
origin: globalThis.location?.origin,
|
|
122
133
|
connectWebmeshNode: ({ sessionInfo, webmeshNode }) =>
|
|
123
134
|
Effect.gen(function* () {
|
|
124
135
|
if (sharedWorkerFiber === undefined || devtoolsEnabled === false) {
|
|
@@ -148,7 +159,8 @@ export interface MakeLeaderThreadArgs {
|
|
|
148
159
|
clientId: string
|
|
149
160
|
makeSqliteDb: MakeWebSqliteDb
|
|
150
161
|
syncOptions: SyncOptions | undefined
|
|
151
|
-
|
|
162
|
+
syncPayloadEncoded: Schema.JsonValue | undefined
|
|
163
|
+
syncPayloadSchema: Schema.Schema<any> | undefined
|
|
152
164
|
importSnapshot: Uint8Array<ArrayBuffer> | undefined
|
|
153
165
|
devtoolsEnabled: boolean
|
|
154
166
|
sharedWorkerFiber: SharedWorkerFiber | undefined
|
|
@@ -160,7 +172,8 @@ const makeLeaderThread = ({
|
|
|
160
172
|
clientId,
|
|
161
173
|
makeSqliteDb,
|
|
162
174
|
syncOptions,
|
|
163
|
-
|
|
175
|
+
syncPayloadEncoded,
|
|
176
|
+
syncPayloadSchema,
|
|
164
177
|
importSnapshot,
|
|
165
178
|
devtoolsEnabled,
|
|
166
179
|
sharedWorkerFiber,
|
|
@@ -207,7 +220,8 @@ const makeLeaderThread = ({
|
|
|
207
220
|
dbEventlog,
|
|
208
221
|
devtoolsOptions,
|
|
209
222
|
shutdownChannel,
|
|
210
|
-
|
|
223
|
+
syncPayloadEncoded,
|
|
224
|
+
syncPayloadSchema,
|
|
211
225
|
}),
|
|
212
226
|
)
|
|
213
227
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Devtools } from '@livestore/common'
|
|
1
|
+
import { Devtools, liveStoreVersion } from '@livestore/common'
|
|
2
2
|
import type { LiveStoreSchema } from '@livestore/common/schema'
|
|
3
3
|
import * as DevtoolsWeb from '@livestore/devtools-web-common/web-channel'
|
|
4
4
|
import { isDevEnv } from '@livestore/utils'
|
|
@@ -30,6 +30,20 @@ export const logDevtoolsUrl = ({
|
|
|
30
30
|
const url = `${devtoolsBaseUrl}/web/${storeId}/${clientId}/${sessionId}/${schema.devtools.alias}`
|
|
31
31
|
yield* Effect.log(`[@livestore/adapter-web] Devtools ready on ${url}`)
|
|
32
32
|
}
|
|
33
|
+
|
|
34
|
+
// Check for DevTools Chrome extension presence via iframe container the extension injects
|
|
35
|
+
const hasExt = document.querySelector('[id^="livestore-devtools-iframe-"]') !== null
|
|
36
|
+
if (!hasExt) {
|
|
37
|
+
const g = globalThis as { __livestoreDevtoolsChromeNoticeShown?: boolean }
|
|
38
|
+
if (g.__livestoreDevtoolsChromeNoticeShown !== true) {
|
|
39
|
+
g.__livestoreDevtoolsChromeNoticeShown = true
|
|
40
|
+
|
|
41
|
+
const urlToLog = `https://github.com/livestorejs/livestore/releases/download/v${liveStoreVersion}/livestore-devtools-chrome-${liveStoreVersion}.zip`
|
|
42
|
+
yield* Effect.log(
|
|
43
|
+
`[@livestore/adapter-web] LiveStore DevTools Chrome extension not detected. Install v${liveStoreVersion}: ${urlToLog}`,
|
|
44
|
+
)
|
|
45
|
+
}
|
|
46
|
+
}
|
|
33
47
|
}
|
|
34
48
|
}
|
|
35
49
|
}).pipe(Effect.withSpan('@livestore/adapter-web:client-session:devtools:logDevtoolsUrl'))
|
|
@@ -138,7 +138,23 @@ export const makePersistedAdapter =
|
|
|
138
138
|
(options: WebAdapterOptions): Adapter =>
|
|
139
139
|
(adapterArgs) =>
|
|
140
140
|
Effect.gen(function* () {
|
|
141
|
-
const {
|
|
141
|
+
const {
|
|
142
|
+
schema,
|
|
143
|
+
storeId,
|
|
144
|
+
devtoolsEnabled,
|
|
145
|
+
debugInstanceId,
|
|
146
|
+
bootStatusQueue,
|
|
147
|
+
shutdown,
|
|
148
|
+
syncPayloadSchema: _syncPayloadSchema,
|
|
149
|
+
syncPayloadEncoded,
|
|
150
|
+
} = adapterArgs
|
|
151
|
+
|
|
152
|
+
// NOTE: The schema travels with the worker bundle (developers call
|
|
153
|
+
// `makeWorker({ schema, syncPayloadSchema })`). We only keep the
|
|
154
|
+
// destructured value here to document availability on the client session
|
|
155
|
+
// side—structured cloning the Effect schema into the worker is not
|
|
156
|
+
// possible, so we intentionally do not forward it.
|
|
157
|
+
void _syncPayloadSchema
|
|
142
158
|
|
|
143
159
|
yield* ensureBrowserRequirements
|
|
144
160
|
|
|
@@ -266,7 +282,7 @@ export const makePersistedAdapter =
|
|
|
266
282
|
clientId,
|
|
267
283
|
devtoolsEnabled,
|
|
268
284
|
debugInstanceId,
|
|
269
|
-
|
|
285
|
+
syncPayloadEncoded,
|
|
270
286
|
}),
|
|
271
287
|
}),
|
|
272
288
|
)
|
|
@@ -490,7 +506,8 @@ export const makePersistedAdapter =
|
|
|
490
506
|
isLeader: gotLocky,
|
|
491
507
|
leaderThread,
|
|
492
508
|
webmeshMode: 'direct',
|
|
493
|
-
|
|
509
|
+
// Can be undefined in Node.js
|
|
510
|
+
origin: globalThis.location?.origin,
|
|
494
511
|
connectWebmeshNode: ({ sessionInfo, webmeshNode }) =>
|
|
495
512
|
connectWebmeshNodeClientSession({ webmeshNode, sessionInfo, sharedWorker, devtoolsEnabled, schema }),
|
|
496
513
|
registerBeforeUnload: (onBeforeUnload) => {
|
|
@@ -8,7 +8,7 @@ import { loadSqlite3Wasm } from '@livestore/sqlite-wasm/load-wasm'
|
|
|
8
8
|
* The Cloudflare / Workerd runtime has stricter rules: async fetches during module
|
|
9
9
|
* evaluation are blocked, so we defer loading until the worker asks for it.
|
|
10
10
|
*/
|
|
11
|
-
const isServerRuntime = String(import.meta.env
|
|
11
|
+
const isServerRuntime = String(import.meta.env?.SSR) === 'true' || typeof window === 'undefined'
|
|
12
12
|
|
|
13
13
|
let sqlite3Promise: ReturnType<typeof loadSqlite3Wasm> | undefined
|
|
14
14
|
|
|
@@ -65,7 +65,7 @@ export class LeaderWorkerInnerInitialMessage extends Schema.TaggedRequest<Leader
|
|
|
65
65
|
storeId: Schema.String,
|
|
66
66
|
clientId: Schema.String,
|
|
67
67
|
debugInstanceId: Schema.String,
|
|
68
|
-
|
|
68
|
+
syncPayloadEncoded: Schema.UndefinedOr(Schema.JsonValue),
|
|
69
69
|
},
|
|
70
70
|
success: Schema.Void,
|
|
71
71
|
failure: UnexpectedError,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { SqliteDb, SyncOptions } from '@livestore/common'
|
|
2
|
-
import { Devtools, UnexpectedError } from '@livestore/common'
|
|
2
|
+
import { Devtools, LogConfig, UnexpectedError } from '@livestore/common'
|
|
3
3
|
import type { DevtoolsOptions } from '@livestore/common/leader-thread'
|
|
4
4
|
import { configureConnection, Eventlog, LeaderThreadCtx, makeLeaderThreadLayer } from '@livestore/common/leader-thread'
|
|
5
5
|
import type { LiveStoreSchema } from '@livestore/common/schema'
|
|
@@ -15,10 +15,9 @@ import {
|
|
|
15
15
|
FetchHttpClient,
|
|
16
16
|
identity,
|
|
17
17
|
Layer,
|
|
18
|
-
Logger,
|
|
19
|
-
LogLevel,
|
|
20
18
|
OtelTracer,
|
|
21
19
|
Scheduler,
|
|
20
|
+
type Schema,
|
|
22
21
|
Stream,
|
|
23
22
|
TaskTracing,
|
|
24
23
|
WorkerRunner,
|
|
@@ -33,10 +32,11 @@ import * as WorkerSchema from '../common/worker-schema.ts'
|
|
|
33
32
|
export type WorkerOptions = {
|
|
34
33
|
schema: LiveStoreSchema
|
|
35
34
|
sync?: SyncOptions
|
|
35
|
+
syncPayloadSchema?: Schema.Schema<any>
|
|
36
36
|
otelOptions?: {
|
|
37
37
|
tracer?: otel.Tracer
|
|
38
38
|
}
|
|
39
|
-
}
|
|
39
|
+
} & LogConfig.WithLoggerOptions
|
|
40
40
|
|
|
41
41
|
if (isDevEnv()) {
|
|
42
42
|
globalThis.__debugLiveStoreUtils = {
|
|
@@ -59,7 +59,7 @@ export const makeWorkerEffect = (options: WorkerOptions) => {
|
|
|
59
59
|
)
|
|
60
60
|
: undefined
|
|
61
61
|
|
|
62
|
-
const
|
|
62
|
+
const runtimeLayer = Layer.mergeAll(FetchHttpClient.layer, TracingLive ?? Layer.empty)
|
|
63
63
|
|
|
64
64
|
return makeWorkerRunnerOuter(options).pipe(
|
|
65
65
|
Layer.provide(BrowserWorkerRunner.layer),
|
|
@@ -67,7 +67,7 @@ export const makeWorkerEffect = (options: WorkerOptions) => {
|
|
|
67
67
|
Effect.scoped,
|
|
68
68
|
Effect.tapCauseLogPretty,
|
|
69
69
|
Effect.annotateLogs({ thread: self.name }),
|
|
70
|
-
Effect.provide(
|
|
70
|
+
Effect.provide(runtimeLayer),
|
|
71
71
|
LS_DEV ? TaskTracing.withAsyncTaggingTracing((name) => (console as any).createTask(name)) : identity,
|
|
72
72
|
// We're using this custom scheduler to improve op batching behaviour and reduce the overhead
|
|
73
73
|
// of the Effect fiber runtime given we have different tradeoffs on a worker thread.
|
|
@@ -75,7 +75,7 @@ export const makeWorkerEffect = (options: WorkerOptions) => {
|
|
|
75
75
|
Effect.withScheduler(Scheduler.messageChannel()),
|
|
76
76
|
// We're increasing the Effect ops limit here to allow for larger chunks of operations at a time
|
|
77
77
|
Effect.withMaxOpsBeforeYield(4096),
|
|
78
|
-
|
|
78
|
+
LogConfig.withLoggerConfig({ logger: options.logger, logLevel: options.logLevel }, { threadName: self.name }),
|
|
79
79
|
)
|
|
80
80
|
}
|
|
81
81
|
|
|
@@ -102,9 +102,9 @@ const makeWorkerRunnerOuter = (
|
|
|
102
102
|
}).pipe(Effect.withSpan('@livestore/adapter-web:worker:wrapper:InitialMessage'), Layer.unwrapScoped),
|
|
103
103
|
})
|
|
104
104
|
|
|
105
|
-
const makeWorkerRunnerInner = ({ schema, sync: syncOptions }: WorkerOptions) =>
|
|
105
|
+
const makeWorkerRunnerInner = ({ schema, sync: syncOptions, syncPayloadSchema }: WorkerOptions) =>
|
|
106
106
|
WorkerRunner.layerSerialized(WorkerSchema.LeaderWorkerInnerRequest, {
|
|
107
|
-
InitialMessage: ({ storageOptions, storeId, clientId, devtoolsEnabled, debugInstanceId,
|
|
107
|
+
InitialMessage: ({ storageOptions, storeId, clientId, devtoolsEnabled, debugInstanceId, syncPayloadEncoded }) =>
|
|
108
108
|
Effect.gen(function* () {
|
|
109
109
|
const sqlite3 = yield* Effect.promise(() => loadSqlite3Wasm())
|
|
110
110
|
const makeSqliteDb = sqliteDbFactory({ sqlite3 })
|
|
@@ -154,7 +154,8 @@ const makeWorkerRunnerInner = ({ schema, sync: syncOptions }: WorkerOptions) =>
|
|
|
154
154
|
dbEventlog,
|
|
155
155
|
devtoolsOptions,
|
|
156
156
|
shutdownChannel,
|
|
157
|
-
|
|
157
|
+
syncPayloadEncoded,
|
|
158
|
+
syncPayloadSchema,
|
|
158
159
|
})
|
|
159
160
|
}).pipe(
|
|
160
161
|
Effect.tapCauseLogPretty,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Devtools, liveStoreVersion, UnexpectedError } from '@livestore/common'
|
|
1
|
+
import { Devtools, LogConfig, liveStoreVersion, UnexpectedError } from '@livestore/common'
|
|
2
2
|
import * as DevtoolsWeb from '@livestore/devtools-web-common/web-channel'
|
|
3
3
|
import * as WebmeshWorker from '@livestore/devtools-web-common/worker'
|
|
4
4
|
import { isDevEnv, isNotUndefined, LS_DEV } from '@livestore/utils'
|
|
@@ -11,8 +11,6 @@ import {
|
|
|
11
11
|
FetchHttpClient,
|
|
12
12
|
identity,
|
|
13
13
|
Layer,
|
|
14
|
-
Logger,
|
|
15
|
-
LogLevel,
|
|
16
14
|
ParseResult,
|
|
17
15
|
Ref,
|
|
18
16
|
Schema,
|
|
@@ -163,7 +161,7 @@ const makeWorkerRunner = Effect.gen(function* () {
|
|
|
163
161
|
const InvariantsSchema = Schema.Struct({
|
|
164
162
|
storeId: Schema.String,
|
|
165
163
|
storageOptions: WorkerSchema.StorageType,
|
|
166
|
-
|
|
164
|
+
syncPayloadEncoded: Schema.UndefinedOr(Schema.JsonValue),
|
|
167
165
|
liveStoreVersion: Schema.Literal(liveStoreVersion),
|
|
168
166
|
devtoolsEnabled: Schema.Boolean,
|
|
169
167
|
})
|
|
@@ -176,11 +174,11 @@ const makeWorkerRunner = Effect.gen(function* () {
|
|
|
176
174
|
// sends a new MessagePort to the shared worker which proxies messages to the new leader thread.
|
|
177
175
|
UpdateMessagePort: ({ port, initial, liveStoreVersion: clientLiveStoreVersion }) =>
|
|
178
176
|
Effect.gen(function* () {
|
|
179
|
-
// Enforce invariants: storeId, storageOptions,
|
|
177
|
+
// Enforce invariants: storeId, storageOptions, syncPayloadEncoded, liveStoreVersion must remain stable
|
|
180
178
|
const invariants: Invariants = {
|
|
181
179
|
storeId: initial.storeId,
|
|
182
180
|
storageOptions: initial.storageOptions,
|
|
183
|
-
|
|
181
|
+
syncPayloadEncoded: initial.syncPayloadEncoded,
|
|
184
182
|
liveStoreVersion: clientLiveStoreVersion,
|
|
185
183
|
devtoolsEnabled: initial.devtoolsEnabled,
|
|
186
184
|
}
|
|
@@ -263,9 +261,8 @@ const makeWorkerRunner = Effect.gen(function* () {
|
|
|
263
261
|
})
|
|
264
262
|
}).pipe(Layer.unwrapScoped)
|
|
265
263
|
|
|
266
|
-
export const makeWorker = () => {
|
|
267
|
-
const
|
|
268
|
-
Logger.prettyWithThread(self.name),
|
|
264
|
+
export const makeWorker = (options?: LogConfig.WithLoggerOptions): void => {
|
|
265
|
+
const runtimeLayer = Layer.mergeAll(
|
|
269
266
|
FetchHttpClient.layer,
|
|
270
267
|
WebmeshWorker.CacheService.layer({ nodeName: DevtoolsWeb.makeNodeName.sharedWorker({ storeId }) }),
|
|
271
268
|
)
|
|
@@ -277,11 +274,11 @@ export const makeWorker = () => {
|
|
|
277
274
|
Effect.scoped,
|
|
278
275
|
Effect.tapCauseLogPretty,
|
|
279
276
|
Effect.annotateLogs({ thread: self.name }),
|
|
280
|
-
Effect.provide(
|
|
277
|
+
Effect.provide(runtimeLayer),
|
|
281
278
|
LS_DEV ? TaskTracing.withAsyncTaggingTracing((name) => (console as any).createTask(name)) : identity,
|
|
282
279
|
// TODO remove type-cast (currently needed to silence a tsc bug)
|
|
283
280
|
(_) => _ as any as Effect.Effect<void, any>,
|
|
284
|
-
|
|
281
|
+
LogConfig.withLoggerConfig(options, { threadName: self.name }),
|
|
285
282
|
Effect.runFork,
|
|
286
283
|
)
|
|
287
284
|
}
|