blob: dd9e4c29507ad4918e04f6e3bdd7336f4003ff0b [file]
// Copyright (c) 2025, the Dart project authors. All rights reserved.
// Defines the request for service extension calls over WebSocket.
class ServiceExtensionRequest {
final String id;
final String method;
final Map<String, dynamic> args;
ServiceExtensionRequest({
required this.id,
required this.method,
Map<String, dynamic>? args,
}) : args = args ?? const <String, dynamic>{};
factory ServiceExtensionRequest.fromArgs({
required String id,
required String method,
required Map<String, dynamic> args,
}) => ServiceExtensionRequest(id: id, method: method, args: args);
factory ServiceExtensionRequest.fromJson(Map<String, dynamic> json) =>
ServiceExtensionRequest(
id: json['id'] as String,
method: json['method'] as String,
args:
(json['args'] as Map?)?.cast<String, dynamic>() ??
const <String, dynamic>{},
);
Map<String, dynamic> toJson() => {'id': id, 'method': method, 'args': args};
}