codegen: generate missing .g.dart files

This commit is contained in:
2026-03-04 09:56:52 +01:00
parent c386e1194b
commit 01cc08d5f3
2 changed files with 28 additions and 4 deletions

View File

@@ -30,11 +30,11 @@ void main() async {
ran = true;
}
if (_isarOutOfDate(root)) {
if (_isarOutOfDate(root) || _isarGeneratedFilesMissing(root)) {
final inputs = _isarInputs(root);
final hashes = _computeHashes(root, inputs);
stdout.writeln(
'Isar generated dart files out of date, running build_runner...',
'Isar generated dart files out of date or missing, running build_runner...',
);
await _run('dart', ['run', 'build_runner', 'build'], root);
_updateLockWithHashes(root, 'isar', hashes);
@@ -228,6 +228,18 @@ bool _isarOutOfDate(String root) {
return false;
}
bool _isarGeneratedFilesMissing(String root) {
final inputs = _isarInputs(root);
if (inputs.isEmpty) return false;
final modelsDir = p.join(root, 'lib/data/models');
for (final dartFile in inputs) {
final baseName = p.basenameWithoutExtension(dartFile.path);
final gFile = File(p.join(modelsDir, '$baseName.g.dart'));
if (!gFile.existsSync()) return true;
}
return false;
}
Future<bool> _run(
String executable,
List<String> args,