check method
Checks whether config structure is compatible with state management.
Implementation
CompatibilityResult check(ArchSherpaConfig config) {
final detected = _detectCapabilities(config.features.structure);
final required = _requiredCapabilities(config.stateManagement.type);
final isCompatible = _isSatisfied(
stateType: config.stateManagement.type,
detected: detected,
required: required,
);
if (isCompatible) {
return CompatibilityResult(
isCompatible: true,
detectedCapabilities: detected,
requiredCapabilities: required,
message: 'Configuration is compatible.',
suggestion: '',
);
}
final detectedLabels = _labelsForMessage(detected);
final requiredLabels = _labelsForMessage(required);
final suggestion = _suggestion(config.stateManagement.type);
return CompatibilityResult(
isCompatible: false,
detectedCapabilities: detected,
requiredCapabilities: required,
message:
'Incompatible config for state_management.type="${config.stateManagement.type}". '
'Detected capabilities: $detectedLabels. Required: $requiredLabels.',
suggestion: suggestion,
);
}