Skip to content

Signals — TC39

Terminal window
yarn add @umpire/core @umpire/signals signal-polyfill
import { tc39Adapter } from '@umpire/signals/tc39'
import { reactiveUmp } from '@umpire/signals'
const reactive = reactiveUmp(myUmp, tc39Adapter)
import { tc39Adapter } from '@umpire/signals/tc39'
import { reactiveUmp } from '@umpire/signals'
const reactive = reactiveUmp(myUmp, tc39Adapter)
reactive.set('accountType', 'business')
console.log(reactive.field('companyName').enabled) // true

The TC39 proposal does not include effect(). Fouls tracking is not available with this adapter — reading reactive.fouls or calling reactive.foul() will throw.

Field availability works normally.

The TC39 adapter is useful for environments targeting the eventual native signal API, or for server-side availability checks where fouls tracking isn’t needed. For full functionality including fouls, use the Preact or alien-signals adapter instead.