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>>(
  1. Map<String, dynamic> config,
  2. List<String> registeredAdaptersNames,
  3. DBAdapterInstantiator<C, A>? getAdapterInstantiator({
    1. String? name,
    2. Type? type,
    })
)

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));