(u: unknown): u is TxPubSub<unknown>Checks whether the given value is a TxPubSub.
Example (Checking for a TxPubSub)
import { TxPubSub } from "effect"
declare const someValue: unknown
if (TxPubSub.isTxPubSub(someValue)) {
console.log("This is a TxPubSub")
}guards
Source effect/TxPubSub.ts:6841 lines
export const const isTxPubSub: (
u: unknown
) => u is TxPubSub<unknown>
Checks whether the given value is a TxPubSub.
Example (Checking for a TxPubSub)
import { TxPubSub } from "effect"
declare const someValue: unknown
if (TxPubSub.isTxPubSub(someValue)) {
console.log("This is a TxPubSub")
}
isTxPubSub = (u: unknownu: unknown): u: unknownu is interface TxPubSub<in out A>A TxPubSub represents a transactional publish/subscribe hub that broadcasts messages
to all current subscribers using Software Transactional Memory (STM) semantics.
Example (Subscribing to a transactional pub/sub)
import { Effect, TxPubSub, TxQueue } from "effect"
const program = Effect.gen(function*() {
const hub = yield* TxPubSub.unbounded<string>()
yield* Effect.scoped(
Effect.gen(function*() {
const sub = yield* TxPubSub.subscribe(hub)
yield* TxPubSub.publish(hub, "hello")
const msg = yield* TxQueue.take(sub)
console.log(msg) // "hello"
})
)
})
TxPubSub<unknown> => import hasPropertyhasProperty(u: unknownu, const TypeId: "~effect/transactions/TxPubSub"TypeId)