install static method

void install(
  1. Nylo nylo
)

Registers the service extensions, route observer and log listener.

Safe to call more than once: extensions are registered once per isolate and the observer is only added to nylo if it isn't there already.

Implementation

static void install(Nylo nylo) {
  if (kReleaseMode) return;

  final bool hasObserver = nylo.getNavigatorObservers().any(
    (NavigatorObserver observer) => observer is NyLiveNavigatorObserver,
  );
  if (!hasObserver) {
    nylo.addNavigatorObserver(NyLiveNavigatorObserver());
  }

  if (!_loggerAttached) {
    NyLogger.addListener(_onLog);
    _loggerAttached = true;
  }

  if (_extensionsRegistered) return;
  _extensionsRegistered = true;
  for (final String command in nyLiveBuiltIns.keys) {
    developer.registerExtension(
      '$extensionPrefix$command',
      (String method, Map<String, String> parameters) =>
          handleExtension(command, parameters),
    );
  }
}