CockpitDocumentValidationResult.fromJson constructor

CockpitDocumentValidationResult.fromJson(
  1. Object? value, {
  2. String path = r'$',
  3. CockpitDecodePolicy decodePolicy = CockpitDecodePolicy.requests,
})

Decodes a CockpitDocumentValidationResult from a JSON object.

Implementation

factory CockpitDocumentValidationResult.fromJson(
  Object? value, {
  String path = r'$',
  CockpitDecodePolicy decodePolicy = CockpitDecodePolicy.requests,
}) {
  final json = CockpitFoundationValueReader.object(value, path);
  CockpitFoundationValueReader.keys(
    json,
    const <String>{
      'valid',
      'sourceSha256',
      'document',
      'diagnostics',
      'sourceMap',
    },
    path,
    required: const <String>{
      'valid',
      'sourceSha256',
      'diagnostics',
      'sourceMap',
    },
    policy: decodePolicy,
  );
  final rawDiagnostics = CockpitFoundationValueReader.list(
    json['diagnostics'],
    '$path.diagnostics',
  );
  final rawSourceMap = CockpitFoundationValueReader.list(
    json['sourceMap'],
    '$path.sourceMap',
  );
  return CockpitDocumentValidationResult(
    valid: CockpitFoundationValueReader.boolean(json['valid'], '$path.valid'),
    sourceSha256: CockpitFoundationValueReader.sha256(
      json['sourceSha256'],
      '$path.sourceSha256',
    ),
    document: json['document'] == null
        ? null
        : _document(json['document'], '$path.document'),
    diagnostics: <CockpitTestDiagnostic>[
      for (var index = 0; index < rawDiagnostics.length; index += 1)
        CockpitTestDiagnostic.fromJson(
          rawDiagnostics[index],
          path: '$path.diagnostics[$index]',
        ),
    ],
    sourceMap: <CockpitTestSourceMapEntry>[
      for (var index = 0; index < rawSourceMap.length; index += 1)
        CockpitTestSourceMapEntry.fromJson(
          rawSourceMap[index],
          path: '$path.sourceMap[$index]',
        ),
    ],
  );
}