validateConfig method
Validate config presence and reject scaffold placeholders.
Returns human-readable issue strings; empty means the config is usable.
Implementation
List<String> validateConfig() {
if (!checkConfigExists()) {
return ['Config file not found at lib/config/deeplink.dart'];
}
final config = parseConfig(FileHelper.readFile(_configPath));
final issues = <String>[];
final domain = config['domain'] as String?;
if (domain == null || domain.isEmpty) {
issues.add('deeplink.domain not found in config');
} else if (_placeholders.contains(domain)) {
issues.add('deeplink.domain is still the scaffold placeholder "$domain"');
}
final teamId = config['teamId'] as String?;
if (teamId == null || teamId.isEmpty) {
issues.add('ios.team_id not found in config');
} else if (_placeholders.contains(teamId)) {
issues.add('ios.team_id is still the scaffold placeholder "$teamId"');
}
final bundleId = config['bundleId'] as String?;
if (bundleId == null || bundleId.isEmpty) {
issues.add('ios.bundle_id not found in config');
} else if (_placeholders.contains(bundleId)) {
issues.add('ios.bundle_id is still the scaffold placeholder "$bundleId"');
}
final packageName = config['packageName'] as String?;
if (packageName == null || packageName.isEmpty) {
issues.add('android.package_name not found in config');
} else if (_placeholders.contains(packageName)) {
issues.add(
'android.package_name is still the scaffold placeholder "$packageName"',
);
}
final fingerprints = config['fingerprints'] as List<String>? ?? const [];
if (fingerprints.isEmpty) {
issues.add('android.sha256_fingerprints not found in config');
} else {
final placeholder = fingerprints.firstWhere(
_placeholders.contains,
orElse: () => '',
);
if (placeholder.isNotEmpty) {
issues.add(
'android.sha256_fingerprints still contains the scaffold placeholder "$placeholder"',
);
}
}
return issues;
}