createManager method

void createManager(
  1. Directory dir,
  2. List<File> assets
)

Creates a manager for the given directory and list of assets.

Implementation

void createManager(Directory dir, List<File> assets) {
  final String folderName = path.basename(dir.path);
  final String className = folderName.split('_').map((word) {
    return word[0].toUpperCase() + word.substring(1);
  }).join();
  final String dartCode = assets.map((file) {
    String fileName = parseName(path.basenameWithoutExtension(file.path));
    String filePath = file.path.replaceAll('\\', '/');
    return 'static const String $fileName = "$filePath";';
  }).join('\n\t');

  final String fullDartCode = '''
class My$className {
$dartCode
}
''';

  final Directory folderDirectory = Directory('lib/utils/const/$folderName');
  if (!folderDirectory.existsSync()) {
    folderDirectory.createSync(recursive: true);
  }

  final File managerFile = File('${folderDirectory.path}/$folderName.dart');

  managerFile.writeAsStringSync(fullDartCode);

  print('Created Dart file: ${managerFile.path}');
}