extractDocumentPreview static method

String? extractDocumentPreview(
  1. String rawBuffer,
  2. Map<String, dynamic>? parsed
)

Implementation

static String? extractDocumentPreview(
  String rawBuffer,
  Map<String, dynamic>? parsed,
) {
  if (parsed != null) {
    final dynamic content = parsed['content'];
    if (content is String && content.trim().isNotEmpty) return content;
  }

  final int contentKeyIndex = rawBuffer.indexOf('"content"');
  if (contentKeyIndex < 0) return null;
  final int colonIndex = rawBuffer.indexOf(':', contentKeyIndex);
  if (colonIndex < 0) return null;
  final int firstQuote = rawBuffer.indexOf('"', colonIndex + 1);
  if (firstQuote < 0) return null;

  final StringBuffer preview = StringBuffer();
  bool escaped = false;
  for (int i = firstQuote + 1; i < rawBuffer.length; i++) {
    final String ch = rawBuffer[i];
    if (escaped) {
      switch (ch) {
        case 'n':
          preview.write('\n');
          break;
        case 'r':
          preview.write('\r');
          break;
        case 't':
          preview.write('\t');
          break;
        case '"':
          preview.write('"');
          break;
        case '\\':
          preview.write('\\');
          break;
        default:
          preview.write(ch);
          break;
      }
      escaped = false;
      continue;
    }
    if (ch == '\\') {
      escaped = true;
      continue;
    }
    if (ch == '"') {
      break;
    }
    preview.write(ch);
  }

  final String result = preview.toString();
  return result.trim().isEmpty ? null : result;
}