AssetStruct.fromDirectory constructor

AssetStruct.fromDirectory(
  1. Directory directory, {
  2. AssetStruct? parent,
  3. String? packageName,
})

from directory

Implementation

factory AssetStruct.fromDirectory(
  Directory directory, {
  AssetStruct? parent,
  String? packageName,
}) {
  final name = basename(directory.path);
  final files = <String>[];
  final structs = <AssetStruct>[];

  for (final entity in directory.listSync()) {
    if (entity is File) {
      files.add(basename(entity.path));
    } else if (entity is Directory) {
      structs.add(AssetStruct.fromDirectory(
        entity,
        packageName: packageName,
      ));
    }
  }

  final current = AssetStruct(
    name: name,
    files: files,
    structs: structs,
    packageName: packageName,
  );

  for (var element in structs) {
    element._parent = current;
  }

  return current;
}