29 lines · 1.1 KB · TypeScript
RawDownload
import { Connection } from "@t3tools/client-runtime/connection";import { shellSnapshotLoaderLayer } from "@t3tools/client-runtime/state/shell";import { threadSnapshotLoaderLayer } from "@t3tools/client-runtime/state/threads";import * as Layer from "effect/Layer";import { Atom } from "effect/unstable/reactivity"; import { runtimeContextLayer } from "../lib/runtime";import { connectionPlatformLayer } from "./platform"; const providedConnectionPlatformLayer = connectionPlatformLayer.pipe(  Layer.provide(runtimeContextLayer),); const snapshotLoaderLayer = Layer.merge(threadSnapshotLoaderLayer, shellSnapshotLoaderLayer); type ConnectionLayerSource =  | typeof Connection.layer  | typeof snapshotLoaderLayer  | typeof runtimeContextLayer  | typeof connectionPlatformLayer; const connectionLayer = Layer.merge(Connection.layer, snapshotLoaderLayer).pipe(  Layer.provideMerge(Layer.mergeAll(runtimeContextLayer, providedConnectionPlatformLayer)),); export const connectionAtomRuntime: Atom.AtomRuntime<  Layer.Success<ConnectionLayerSource>,  Layer.Error<ConnectionLayerSource>> = Atom.runtime(connectionLayer);