23 lines · 770 B · TypeScript
RawDownload
import type { TraceRecord, TraceSink } from "@t3tools/shared/observability";import * as Context from "effect/Context";import * as Effect from "effect/Effect";import * as Layer from "effect/Layer"; export class BrowserTraceCollector extends Context.Service<  BrowserTraceCollector,  {    readonly record: (records: ReadonlyArray<TraceRecord>) => Effect.Effect<void>;  }>()("t3/observability/BrowserTraceCollector") {} export const make = (sink: TraceSink): BrowserTraceCollector["Service"] =>  BrowserTraceCollector.of({    record: (records) =>      Effect.sync(() => {        for (const record of records) {          sink.push(record);        }      }),  }); export const layer = (sink: TraceSink) => Layer.succeed(BrowserTraceCollector, make(sink));

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t