ek9_query_dependency_injection
Answers first: applicationCount and applications[] (registrations, injectionSites, boundPrograms, health incl. E11040 over-injection), programCount and programs[], then summary.
When to use it
How is dependency injection wired - which application registers what, where it is injected, which programs bind - one call, no arguments. Narrow to one application with applicationFilter.
When not to use it
- Module-level imports (references) rather than component wiring — use
ek9_query_module_dependencies. - Method-level call relationships rather than component injection — use
ek9_query_call_graph. - Compile errors/warnings themselves (E11040 over-injection, E08190 DI cycle) rather than the wiring graph — use
ek9_query_diagnostics. - The structure of ONE specific component rather than the app-level graph — use
ek9_query_construct.
Details
Registrations report implementation/implementationFqn, kind ('component' adds interface/interfaceFqn; 'service' does not), optional aspects[] (components are always singleton-scoped — no scope field); injectionSites carry site ('Owner.field'), owner, field, type, typeFqn, satisfied. health.verdict is HEALTHY / UNSATISFIED_INJECTIONS / NO_REGISTRATIONS (satisfaction-based only); health.overInjectedComponents[] is the E11040 >4-injected-fields gate — one entry per offending component (fields[], injectionCount, limit), it does NOT flip verdict, and non-empty entries feed the split_overinjected_component workflow. Requires a prior compile; no compiled program → error.
Arguments
| Argument | Type | Required | What it is |
|---|---|---|---|
applicationFilter | string | Optional: keep only applications whose name contains this text |
Recorded calls
Real calls, recorded against small projects and checked on every build - a changed answer fails it.
Di shape
Request
{ }
Response
{
"applicationCount" : 0,
"applications" : [ ],
"meta" : {
"serverMs" : "<timing>"
},
"programCount" : 0,
"programs" : [ ],
"summary" : {
"applicationsWithIssues" : 0,
"totalInjectionSites" : 0,
"totalRegistrations" : 0
}
}