computeLinkSpecChecksum function

String computeLinkSpecChecksum({
  1. String baseDir = '.',
})

Implementation

String computeLinkSpecChecksum({String baseDir = '.'}) {
  final libDir = Directory(p.join(baseDir, 'lib'));
  if (!libDir.existsSync()) return _fnv64Hex('no-lib');

  final specs = libDir.listSync(recursive: true).whereType<File>().where((f) => f.path.endsWith('.native.dart')).toList()
    ..sort((a, b) => p.relative(a.path, from: baseDir).compareTo(p.relative(b.path, from: baseDir)));

  if (specs.isEmpty) return _fnv64Hex('no-specs');

  final parts = <String>[];
  for (final spec in specs) {
    parts
      ..add(p.relative(spec.path, from: baseDir))
      ..add(spec.readAsStringSync());
  }
  return _fnv64Hex(parts.join('\n--- nitro spec ---\n'));
}