ContentType.parse constructor

ContentType.parse(
  1. String source
)

Create a ContentType from String.

Implementation

factory ContentType.parse(String source) {
  final scanner = StringScanner(source);
  scanner.scan(whitespace);
  scanner.expect(token);
  final type = scanner.lastMatch![0]!.toLowerCase();
  scanner.expect('/');
  scanner.expect(token);
  final subType = scanner.lastMatch![0]!.toLowerCase();
  scanner.scan(whitespace);
  final parameters = <String, String?>{};
  while (scanner.scan(';')) {
    scanner.scan(whitespace);
    scanner.expect(token);
    final key = scanner.lastMatch![0]!.toLowerCase();
    scanner.expect('=');
    scanner.expect(token);
    final value = scanner.lastMatch![0];
    scanner.scan(whitespace);
    parameters[key] = value;
  }
  scanner.expectDone();
  final mediaType = MimeType(type, subType);
  final charset = parameters['charset'];
  return ContentType(mediaType, charset);
}