generateNonLazyClasses static method

void generateNonLazyClasses(
  1. CodeBuffer buffer,
  2. List<AssetLookupFile> files,
  3. AssetXConfig config,
  4. String packageName,
  5. bool usePackagePrefix,
)

Generates non-lazy static classes for datax and envx types

Implementation

static void generateNonLazyClasses(
  CodeBuffer buffer,
  List<AssetLookupFile> files,
  AssetXConfig config,
  String packageName,
  bool usePackagePrefix,
) {
  // Find files that should be generated as non-lazy
  final nonLazyFiles = <AssetLookupFile>[];

  for (final file in files) {
    final typeName = _getTypeName(file, config);

    if (config.mapRegistry != null &&
        config.mapRegistry!.containsKey(typeName)) {
      final mapConfig = config.mapRegistry![typeName]!;

      if (mapConfig.builtin != null &&
          !mapConfig.lazy &&
          ["datax", "envx"].contains(mapConfig.builtin)) {
        nonLazyFiles.add(file);
      }
    }
  }

  if (nonLazyFiles.isEmpty) return;

  buffer.addCode('// Generated non-lazy static classes');
  buffer.addCode('');

  int classCounter = 0;

  for (final file in nonLazyFiles) {
    _generateStaticClass(buffer, file, classCounter, config);
    classCounter++;
  }
}