fromConfig method

void fromConfig(
  1. Map<String, dynamic> config
)

Loads disks dynamically from a config map.

Implementation

void fromConfig(Map<String, dynamic> config) {
  if (config.containsKey('default') && config['default'] is String) {
    _defaultDisk = config['default'] as String;
  }

  final disks = config['disks'] as Map<String, dynamic>? ?? {};

  for (final entry in disks.entries) {
    final name = entry.key;
    final options = entry.value as Map<String, dynamic>;

    if (!options.containsKey('driver')) {
      throw StorageException('Driver not specified for disk "$name"');
    }

    final driver = options['driver'] as String;
    final factory = _drivers[driver];

    if (factory == null) {
      throw NotFoundException('Unsupported storage driver "$driver"');
    }

    final disk = factory(options);
    registerDisk(name, disk);
  }
}