Hyperlinkv0.8.0-beta.28

Console

Console.groupconsteffect/Console.ts:341
(
  options?:
    | { label?: string | undefined; collapsed?: boolean | undefined }
    | undefined
): Effect.Effect<void, never, Scope>

Creates a scoped console group, optionally collapsed and labeled, and closes it automatically when the Effect scope is finalized.

Example (Grouping scoped output)

import { Console, Effect } from "effect"

const program = Effect.gen(function*() {
  yield* Effect.scoped(
    Effect.gen(function*() {
      yield* Console.group({ label: "User Processing" })
      yield* Console.log("Loading user data...")
      yield* Console.log("Validating user...")
      yield* Console.log("User processed successfully")
    })
  )
})
accessors
Source effect/Console.ts:34118 lines
export const group = (
  options?: { label?: string | undefined; collapsed?: boolean | undefined } | undefined
): Effect.Effect<void, never, Scope> =>
  consoleWith((console) =>
    effect.acquireRelease(
      effect.sync(() => {
        if (options?.collapsed) {
          console.groupCollapsed(options.label)
        } else {
          console.group(options?.label)
        }
      }),
      () =>
        effect.sync(() => {
          console.groupEnd()
        })
    )
  )