パフォーマーの起動〈invocation〉
- 関数呼び出し(プロファイルが必要)
- オブジェクトのメソッド呼び出し(メソッド名+プロファイルが必要)
パフォーマーの失敗結果〈failure result〉
- エラー戻り値(規約が必要)
- 例外(モラルが必要; Error型データを投げる)
- コールバックに失敗理由〈reason〉値渡し
- プロミス拒否〈reject〉
パフォーマーの成功結果〈success result〉
- 戻り値
- コールバックに結果値〈value〉渡し
- プロミス解決〈resolve〉
アタッチャーの方式
- 関数ファクトリ関数、呼び出しの戻り値がパフォーマー関数
- オブジェクトコンストラクタ関数、new呼び出しの戻り値がパフォーマーオブジェクト
パフォーマー間の連携
- 仮想ファイルからの読み込み、文字列が得られる。
- ツリーの受け渡し、直接書き換え
- 仮想ファイルへの書き込み。
文書概念
- ソースとしては
- 文字列のみ(メタデータなし)
- 文字列+VFile(メタデータ担当)
- VFileのみ(.value で文字列にアクセス可能)
- 中間では
- ツリーのみ(メタデータなし)
- ツリー+VFile(メタデータ担当)
次のデータ構造を考えたほうがいいだろう。
type Document<Tree> = [Tree, VFile];
関数が2引数を持つときは、
function foo(...args:Document<Tree>) : SomeType { // ... }