generateLock static method

Future<void> generateLock({
  1. String? configPath,
  2. String? lockPath,
  3. String? workingDirectory,
})

Generate lock file from configuration

Implementation

static Future<void> generateLock({
  String? configPath,
  String? lockPath,
  String? workingDirectory,
}) async {
  final workDir = workingDirectory ?? Directory.current.path;
  final configFile = configPath ?? path.join(workDir, defaultConfigFile);
  final lockFile = lockPath ?? path.join(workDir, defaultLockFile);

  // Load configuration
  final config = await Config.load(configFile);

  // Validate that all configuration entries have valid generators
  AssetDiscoveryService.validateGenerators(config);

  // Discover files based on configuration entries
  final discoveredFiles = <FileConfig>[];

  for (final entry in config.entries) {
    final files = await AssetDiscoveryService.discoverFiles(entry, workDir);
    discoveredFiles.addAll(files);
  }

  // Create and save lock file
  final lock = LockFile(discoveredFiles);
  await lock.save(lockFile);
}