handleContained function
RequestHandler
handleContained(
- Function handler,
- InjectionRequest injection, [
- Container? container
Handles a request with a DI-enabled handler.
Implementation
RequestHandler handleContained(Function handler, InjectionRequest injection,
[Container? container]) {
return (RequestContext req, ResponseContext res) async {
if (injection.parameters.isNotEmpty &&
injection.parameters.values.any((p) => p.match != null) &&
!suitableForInjection(req, res, injection)) {
return Future.value(true);
}
var args = [];
var named = <Symbol, dynamic>{};
for (var r in injection.required) {
args.add(await resolveInjection(r, injection, req, res, true, container));
}
for (var entry in injection.named.entries) {
var name = Symbol(entry.key);
named[name] = await resolveInjection(
[entry.key, entry.value], injection, req, res, false, container);
}
return Function.apply(handler, args, named);
};
}