registerExtensions method

void registerExtensions()

Registers the extensions. Call once, before runApp, beside the knobs and axes ones — an extension has to outlive every entry switch.

Implementation

void registerExtensions() {
  GuestExtensions.register('ext.flutterware.tree', (_, _) async {
    return developer.ServiceExtensionResponse.result(
      jsonEncode(read().toJson()),
    );
  });
  GuestExtensions.register('ext.flutterware.semantics', (_, args) async {
    switch (args['on']) {
      case 'true':
        enableSemantics(true);
      case 'false':
        enableSemantics(false);
    }
    return developer.ServiceExtensionResponse.result(
      jsonEncode(readSemantics().toJson()),
    );
  });
  GuestExtensions.register('ext.flutterware.hitTest', (_, args) async {
    var x = double.tryParse(args['x'] ?? '');
    var y = double.tryParse(args['y'] ?? '');
    if (x == null || y == null) {
      return developer.ServiceExtensionResponse.error(
        developer.ServiceExtensionResponse.invalidParams,
        jsonEncode({'error': 'x and y are required, as numbers'}),
      );
    }
    return developer.ServiceExtensionResponse.result(
      jsonEncode({'ids': hitTest(x, y)}),
    );
  });
}