start method

void start([
  1. void onStarted() = _noop
])

Implementation

void start([void Function() onStarted = _noop]) {
  intercom.listener.prependListener((data) {
    try {
      var msg = Message.fromJson(assertTyped(data));

      if (msg.type == MessageType.INTRO_REQUEST) {
        intercom.sendSignal(Message(MessageType.PLUGIN_INTRO, self));
        return false;
      }

      if (msg.type == MessageType.START_SIGNAL) {
        onStarted();
        return false;
      }

      return true;
    } on TypeAssertionError {
      return false;
    }
  });

  intercom.listener.addPassthroughListener((data) {
    try {
      var msg = Message.fromJson(assertTyped(data));

      if (msg.type == MessageType.CALL_REQUEST) {
        var call = CallRequest.fromJson(assertTyped(msg.content));

        intercom.sendSignal(Message(MessageType.PLUGIN_CALL_RESULT,
            "No such method '${call.method}'\n\tfor call id:${call.id}"));
      }
    } on TypeAssertionError {
      return;
    }
  });

  intercom.initialize();
}