registerExtensions function

void registerExtensions(
  1. Server server
)

Registers useful extensions for the CLI and Dart DevTools.

Implementation

void registerExtensions(Server server) {
  Future<ServiceExtensionResponse> reload(
    String method,
    Map<String, String> parameters,
  ) async {
    try {
      if (server is MultiIsolateServer) {
        await server.reload();
      } else if (server is ApplicationServer) {
        await server.reload();
      }

      return ServiceExtensionResponse.result('{}');
    } catch (error) {
      return ServiceExtensionResponse.result(json.encode({'error': '$error'}));
    }
  }

  Future<ServiceExtensionResponse> close(
    String method,
    Map<String, String> parameters,
  ) async {
    try {
      await server.close(force: parameters['force'] == 'true');
      return ServiceExtensionResponse.result('{}');
    } catch (error) {
      return ServiceExtensionResponse.result(json.encode({'error': '$error'}));
    }
  }

  registerExtension('ext.astra.reload', reload);
  registerExtension('ext.astra.close', close);
}