parseId1Command function

Id1Command parseId1Command(
  1. Uint8List data
)

Implementation

Id1Command parseId1Command(Uint8List data) {
  var cmdLineEnd = data.indexOf("\n".codeUnits.first);
  if (cmdLineEnd < 0) {
    cmdLineEnd = data.length;
  }
  var cmdLine = data.getRange(0, cmdLineEnd);
  Uint8List cmdData =
      data.length > cmdLineEnd
          ? Uint8List.fromList(data.getRange(cmdLineEnd + 1, data.length).toList())
          : Uint8List.fromList([]);

  var uri = Uri.parse(String.fromCharCodes(cmdLine));
  var op = Op.values.firstWhere((e) => e.toString() == "Op.${uri.scheme}");
  var key = Uri.decodeComponent(uri.path);
  if (key.startsWith("/")) key = key.substring(1);
  Map<String, String> args = uri.queryParameters;
  var cmd = Id1Command(op: op, key: Id1Key(key), args: args, data: cmdData);
  return cmd;
}