findJsonParseIssue function

JsonParseIssue? findJsonParseIssue(
  1. String text
)

Parses text and returns a JsonParseIssue when jsonDecode fails.

Implementation

JsonParseIssue? findJsonParseIssue(String text) {
  final trimmed = text.trim();
  if (trimmed.isEmpty) return null;
  try {
    jsonDecode(text);
    return null;
  } on FormatException catch (e) {
    final rawOffset = e.offset;
    final offset = (rawOffset ?? _fallbackErrorOffset(text)).clamp(0, text.length);
    // Underline a short window around the failure point.
    final length = _errorUnderlineLength(text, offset);
    return JsonParseIssue(
      offset: offset,
      length: length,
      message: e.message,
    );
  } catch (e) {
    return JsonParseIssue(
      offset: 0,
      length: math.min(1, text.length),
      message: e.toString(),
    );
  }
}