RpcObject.fromMeta constructor
RpcObject.fromMeta(
- dynamic meta
creates RpcObject from Map or List of Map
Map is used to create RpcRequest or RpcResponse
List is used to create RpcBatch which a list of RpcRequest and RpcResponse
throws Exception if rpcObject
is not a Map or List
throws RpcError with code RpcError.kInvalidRequest if failed to create object
Implementation
factory RpcObject.fromMeta(dynamic meta) {
assert(meta is Map || meta is List, 'meta must be Map or List');
if (meta is Map && meta['jsonrpc'] == '2.0') {
if (meta.containsKey('method')) {
return RpcRequest.fromMeta(meta.cast<String, dynamic>());
} else {
return RpcResponse.fromMeta(meta.cast<String, dynamic>());
}
} else if (meta is List) {
return RpcBatch.fromMeta(meta.cast<Map<String, dynamic>>());
} else {
throw RpcError(
code: RpcError.kInvalidRequest,
message: 'Invalid Request',
data: {
'error': 'Invalid jsonrpc',
'data': meta,
},
);
}
}