getAdapterInstantiatorsFromConfigImpl<C extends Object, A extends DBAdapter<C> > static method
List<MapEntry<DBAdapterInstantiator<C, A> , Map<String, dynamic> > >
getAdapterInstantiatorsFromConfigImpl<C extends Object, A extends DBAdapter<C> >()
Implementation
static List<MapEntry<DBAdapterInstantiator<C, A>, Map<String, dynamic>>>
getAdapterInstantiatorsFromConfigImpl<C extends Object,
A extends DBAdapter<C>>(
Map<String, dynamic> config,
List<String> registeredAdaptersNames,
DBAdapterInstantiator<C, A>? Function({String? name, Type? type})
getAdapterInstantiator) =>
registeredAdaptersNames
.where((n) => config.containsKey(n))
.map((n) {
var instantiator = getAdapterInstantiator(name: n);
if (instantiator == null) return null;
var conf = config[n] ?? <String, dynamic>{};
if (conf is! Map) return null;
return MapEntry<DBAdapterInstantiator<C, A>,
Map<String, dynamic>>(
instantiator,
conf.map((key, value) => MapEntry<String, dynamic>(
key.toString(), value as dynamic)));
})
.whereNotNull()
.toList()
..sort((a, b) => a.value.length.compareTo(b.value.length));