Skip to content
Source
Sign inSign up
Open History to see the last commit

ProviderEventLoggers.ts

22 lines725 Bytes

1import type { ThreadId } from "@t3tools/contracts";
2import * as Context from "effect/Context";
3import type * as Effect from "effect/Effect";
4​
5export interface EventNdjsonLogger {
6 readonly filePath: string;
7 readonly write: (event: unknown, threadId: ThreadId | null) => Effect.Effect<void>;
8 readonly close: () => Effect.Effect<void>;
9}
10​
11export class ProviderEventLoggers extends Context.Service<
12 ProviderEventLoggers,
13 {
14 readonly native: EventNdjsonLogger | undefined;
15 readonly canonical: EventNdjsonLogger | undefined;
16 }
17>()("@t3tools/provider-core/server/ProviderEventLoggers") {}
18​
19export const NoOpProviderEventLoggers: ProviderEventLoggers["Service"] = {
20 native: undefined,
21 canonical: undefined,
22};