inspect static method

ChartPayloadDoctorReport inspect(
  1. Map<String, dynamic> payload, {
  2. bool deep = false,
  3. bool requireRegisteredType = false,
  4. PayloadNormalizationOptions? normalizationOptions,
})

Implementation

static ChartPayloadDoctorReport inspect(
  Map<String, dynamic> payload, {
  bool deep = false,
  bool requireRegisteredType = false,
  PayloadNormalizationOptions? normalizationOptions,
}) {
  final type = _payloadType(payload);
  final expectedShape = targetSeriesDataShape(type);
  final inferredShape = inferSeriesDataShape(payload);
  final contract = chartPayloadContractForType(type);
  final apiContract = chartApiContractForType(type);
  final rawValidation = ChartConfigValidator.validateJsonPayload(
    payload,
    deep: deep,
    requireRegisteredType: requireRegisteredType,
  );
  final normalization = ChartConfigValidator.normalizePayloadWithReport(
    payload,
    options: normalizationOptions,
  );
  final normalizedValidation = ChartConfigValidator.validateJsonPayload(
    normalization.normalizedPayload,
    deep: deep,
    requireRegisteredType: requireRegisteredType,
  );
  final findings = <ChartPayloadDoctorFinding>[
    ..._validationFindings(rawValidation),
    ..._contractFindings(payload, contract),
    ..._shapeFindings(
      type: type,
      expectedShape: expectedShape,
      inferredShape: inferredShape,
      rawValidation: rawValidation,
    ),
    ..._normalizationFindings(
      rawValidation: rawValidation,
      normalizedValidation: normalizedValidation,
      normalization: normalization,
    ),
  ];

  return ChartPayloadDoctorReport(
    type: type,
    expectedShape: expectedShape,
    inferredShape: inferredShape,
    payloadContract: contract,
    apiContract: apiContract,
    rawValidation: rawValidation,
    normalizedValidation: normalizedValidation,
    normalization: normalization,
    findings: findings,
  );
}