PluginConfig.fromMap constructor
PluginConfig.fromMap(
- Map map
Implementation
factory PluginConfig.fromMap(Map<dynamic, dynamic> map) {
final rawCommands = map['commands'];
if (rawCommands is! List || rawCommands.isEmpty) {
throw const FormatException(
'plugin requires a non-empty "commands" list',
);
}
final commands = rawCommands
.whereType<Map>()
.map(PluginCommandConfig.fromMap)
.toList();
if (commands.isEmpty) {
throw const FormatException('plugin has no valid commands');
}
final availability = map['availability'];
return PluginConfig(
id: _requiredString(map, 'id'),
label: _requiredString(map, 'label'),
commands: commands,
description: _optionalString(map, 'description'),
enabled: map['enabled'] != false,
availability: availability is Map
? PluginAvailabilityCheck.fromMap(availability)
: null,
shortcut: _parseShortcut(map['shortcut']),
);
}