require static method
Implementation
static Future<List<Fractal?>> require(MakeF mk, List keys) {
final fus = <Future<Fractal?>>[];
for (var key in keys) {
final val = mk.map[key];
if (val is Fractal) continue;
final fu = switch (val) {
String hash when hash.isNotEmpty => CatalogFractal.pick(
hash,
(_) {
var sink = NetworkFractal.out;
if (mk.by case SinkF s when sink == null) {
sink = s;
}
sink?.pick(hash);
},
),
int id when id > 0 => _byId(id),
Fractal f => Future.value(f),
_ => null,
};
if (fu != null) {
fus.add(fu.then((f) async {
mk.map[key] = f;
return f;
}));
} else {
mk.map.remove(key);
}
}
return Future.wait(fus);
}