Effect ベースのパブリッシュ/サブスクライブ方式のイベントバス。インスタンスごとの PubSub チャネル(型付き + ワイルドカード)をプロセス全体の GlobalBus に橋渡しし、非 Effect な呼び出し元向けに Promise/コールバックのヘルパーを提供する。

Classes

Service

Members

(static, constant) InstanceDisposed

インスタンスのバスがシャットダウンされる直前に発行されるイベント。インスタンスのディレクトリを伴う。

(static, constant) defaultLayer

明示的な Bus レイヤーが指定されない場合に使用されるデフォルトのレイヤー。

(static, constant) layer

Bus サービスを構築する Effect レイヤー。インスタンスごとの状態とパブリッシュ/サブスクライブ操作を含む。

Methods

(static) createID() → {string}

昇順の新しいイベント id を生成する。

Returns:

新規の "evt" 識別子。

Type: 
string

(static) publish(def, properties, options) → {Promise.<void>}

非 Effect なコードからイベントをパブリッシュする(パブリッシュ完了時に解決する)。

Parameters:
NameTypeDescription
defObject

チャネル/型を識別するイベント定義。

propertiesObject

イベントのペイロードプロパティ。

optionsObject

任意の上書き設定。id で明示的なイベント id を指定する。

Returns:

イベントがパブリッシュされると解決する。

Type: 
Promise.<void>

(static) subscribe(def, callback) → {function}

非 Effect なコードから、単一のイベント型をコールバックでサブスクライブする。

Parameters:
NameTypeDescription
defObject

型付きチャネルを識別するイベント定義。

callbackfunction

def.type の各ペイロードとともに呼び出される。

Returns:

サブスクライブ解除関数。

Type: 
function

(static) subscribeAll(callback) → {function}

非 Effect なコードから、すべてのイベント型をコールバックでサブスクライブする。

Parameters:
NameTypeDescription
callbackfunction

パブリッシュされた各ペイロードとともに呼び出される。

Returns:

サブスクライブ解除関数。

Type: 
function