__goal__:
  - type: FlowAll
    name: choose
choose:
  type: FlowAll
  when:
    - cond: |-
        return payload.data === 'message' || payload.data === 'resolve';
      dst: 
        - type: Transform
          name: toResolve
    - cond: |-
        return payload.data === 'message' || payload.data === 'reject';
      dst:
        - type: Transform
          name: toReject
    - cond: |-
        return payload.data === 'throw'
      dst: 
        - type: Writable
          name: toError
toResolve:
  type: Transform
  _editorAttrs:
    pos:
      x: 275
      'y': 148
  methods:
    transform:
      code: |-
        this.push(chunk);
        callback();
      params:
        - chunk
        - encoding
        - callback
  pipe: __resolve__
toReject:
  type: Transform
  _editorAttrs:
    pos:
      x: 284
      'y': 333
  methods:
    transform:
      code: |-
        this.push(chunk);
        callback();
      params:
        - chunk
        - encoding
        - callback
  pipe: __reject__
toError:
  type: Writable
  methods:
    write:
      code: |-
        try {
          throw Error('A thrown Error');
        } catch(e) {
          this.emit('error', e.message);
        }
