loadPluginsFromDir function

Future<List<LoadedPlugin>> loadPluginsFromDir(
  1. String dirPath
)

Load plugins from a directory.

Implementation

Future<List<LoadedPlugin>> loadPluginsFromDir(String dirPath) async {
  final dir = Directory(dirPath);
  if (!await dir.exists()) return const [];

  final plugins = <LoadedPlugin>[];

  await for (final entity in dir.list()) {
    if (entity is! Directory) continue;

    try {
      final plugin = await _loadPlugin(entity.path);
      if (plugin != null) plugins.add(plugin);
    } catch (_) {
      // Skip invalid plugins
    }
  }

  return plugins;
}