( name: string, request: WebSocketRequest, options: WebSocketRecorderOptions, forcedMode?: "record" | "replay", )
| 281 | }) |
| 282 | |
| 283 | const 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. |
no test coverage detected