MCPcopy Index your code
hub / github.com/anomalyco/opencode / recordingLayer

Function recordingLayer

packages/http-recorder/src/socket.ts:283–299  ·  view source on GitHub ↗
(
  name: string,
  request: WebSocketRequest,
  options: WebSocketRecorderOptions,
  forcedMode?: "record" | "replay",
)

Source from the content-addressed store, hash-verified

281 })
282
283const recordingLayer = (
284 name: string,
285 request: WebSocketRequest,
286 options: WebSocketRecorderOptions,
287 forcedMode?: "record" | "replay",
288): Layer.Layer<Socket.Socket, never, Socket.Socket | CassetteService.Service> =>
289 Layer.effect(
290 Socket.Socket,
291 Effect.gen(function* () {
292 const upstream = yield* Socket.Socket
293 const cassette = yield* CassetteService.Service
294 const redactor = make(options.redact)
295 if ((forcedMode ?? (yield* resolveAutoMode(cassette, name))) === "record")
296 return yield* makeRecordingSocket(upstream, cassette, name, request, options, redactor)
297 return yield* makeReplaySocket(cassette, name, request, options, redactor)
298 }),
299 )
300
301/**
302 * Wraps a provided `Socket.Socket` with cassette recording and replay.

Callers 3

httpFunction · 0.70
socketFunction · 0.70
socketLayerFunction · 0.70

Calls 4

resolveAutoModeFunction · 0.85
makeRecordingSocketFunction · 0.85
makeReplaySocketFunction · 0.85
makeFunction · 0.70

Tested by

no test coverage detected