Hyperlinkv0.8.0-beta.28

TxHashMap

TxHashMap.getconsteffect/TxHashMap.ts:377
<K1 extends K, K>(key: K1): <V>(
  self: TxHashMap<K, V>
) => Effect.Effect<Option.Option<V>>
<K1 extends K, K, V>(self: TxHashMap<K, V>, key: K1): Effect.Effect<
  Option.Option<V>
>

Looks up the value for the specified key in the TxHashMap.

Example (Looking up values safely)

import { Effect, Option, TxHashMap } from "effect"

const program = Effect.gen(function*() {
  const userMap = yield* TxHashMap.make(
    ["alice", { name: "Alice", role: "admin" }],
    ["bob", { name: "Bob", role: "user" }]
  )

  // Safe lookup - returns Option
  const alice = yield* TxHashMap.get(userMap, "alice")
  console.log(alice) // Option.some({ name: "Alice", role: "admin" })

  const nonExistent = yield* TxHashMap.get(userMap, "charlie")
  console.log(nonExistent) // Option.none()

  // Use with pipe syntax for type-safe access
  const bobRole = yield* TxHashMap.get(userMap, "bob")
  if (bobRole._tag === "Some") {
    console.log(bobRole.value.role) // "user"
  }
})
combinators
export const get: {
  <K1 extends K, K>(key: K1): <V>(self: TxHashMap<K, V>) => Effect.Effect<Option.Option<V>>
  <K1 extends K, K, V>(self: TxHashMap<K, V>, key: K1): Effect.Effect<Option.Option<V>>
} = dual(
  2,
  <K1 extends K, K, V>(self: TxHashMap<K, V>, key: K1): Effect.Effect<Option.Option<V>> =>
    Effect.gen(function*() {
      const map = yield* TxRef.get(self.ref)
      return HashMap.get(map, key)
    })
)