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 type { FoundationHotModule } from "../lib/foundation-fast-refresh";import { hotSwappableAtomRuntime } from "../lib/hot-swappable-atom-runtime";import { runtimeContextLayer } from "../lib/runtime";import { appAtomRegistry } from "../state/atom-registry";import { mobileBackgroundActivityObserverLayer, mobileBackgroundActivityReporterLayer,} from "./background-activity";import { connectionPlatformLayer } from "./platform"; declare const module: { readonly hot?: FoundationHotModule } | undefined; const providedConnectionPlatformLayer = connectionPlatformLayer.pipe( Layer.provide(runtimeContextLayer),); const snapshotLoaderLayer = Layer.merge(threadSnapshotLoaderLayer, shellSnapshotLoaderLayer); type ConnectionLayerSource = | typeof Connection.layer | typeof snapshotLoaderLayer | typeof runtimeContextLayer | typeof connectionPlatformLayer | typeof mobileBackgroundActivityObserverLayer | typeof mobileBackgroundActivityReporterLayer; const providedClientConnectionLayer = snapshotLoaderLayer.pipe( Layer.provideMerge( Connection.layerWithOptions({ usageLimitSources: true, usageLimitsCommand: true }), ), Layer.provideMerge( Layer.mergeAll( runtimeContextLayer, providedConnectionPlatformLayer, mobileBackgroundActivityObserverLayer, ), ),); const connectionLayer = mobileBackgroundActivityReporterLayer.pipe( Layer.provideMerge(providedClientConnectionLayer),); export const connectionAtomRuntime: Atom.AtomRuntime< Layer.Success<ConnectionLayerSource>, Layer.Error<ConnectionLayerSource>> = hotSwappableAtomRuntime({ id: "t3.mobile.connection-runtime", hotModule: typeof module === "undefined" ? undefined : module.hot, registry: appAtomRegistry, layer: connectionLayer,});
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 type { FoundationHotModule } from "../lib/foundation-fast-refresh";
import { hotSwappableAtomRuntime } from "../lib/hot-swappable-atom-runtime";
import { runtimeContextLayer } from "../lib/runtime";
import { appAtomRegistry } from "../state/atom-registry";
import {
mobileBackgroundActivityObserverLayer,
mobileBackgroundActivityReporterLayer,
} from "./background-activity";
import { connectionPlatformLayer } from "./platform";
declare const module: { readonly hot?: FoundationHotModule } | undefined;
const providedConnectionPlatformLayer = connectionPlatformLayer.pipe(
Layer.provide(runtimeContextLayer),
);
const snapshotLoaderLayer = Layer.merge(threadSnapshotLoaderLayer, shellSnapshotLoaderLayer);
type ConnectionLayerSource =
| typeof Connection.layer
| typeof snapshotLoaderLayer
| typeof runtimeContextLayer
| typeof connectionPlatformLayer
| typeof mobileBackgroundActivityObserverLayer
| typeof mobileBackgroundActivityReporterLayer;
const providedClientConnectionLayer = snapshotLoaderLayer.pipe(
Layer.provideMerge(
Connection.layerWithOptions({ usageLimitSources: true, usageLimitsCommand: true }),
),
Layer.provideMerge(
Layer.mergeAll(
runtimeContextLayer,
providedConnectionPlatformLayer,
mobileBackgroundActivityObserverLayer,
),
),
);
const connectionLayer = mobileBackgroundActivityReporterLayer.pipe(
Layer.provideMerge(providedClientConnectionLayer),
);
export const connectionAtomRuntime: Atom.AtomRuntime<
Layer.Success<ConnectionLayerSource>,
Layer.Error<ConnectionLayerSource>
> = hotSwappableAtomRuntime({
id: "t3.mobile.connection-runtime",
hotModule: typeof module === "undefined" ? undefined : module.hot,
registry: appAtomRegistry,
layer: connectionLayer,
});