Controllers keyed by class.
Materialized route metadata, one entry per (controller, HTTP verb). Derived from the internal per-method accumulators so the result is independent of decorator application order.
Services keyed by class.
Records a custom decorator for replay at registration time.
The custom decorator record
Internal
Records one non-HTTP ingress declaration for a class.
Internal
Records one ability method of a policy class (@Ability).
The policy class
The ability method name
Whether it opted in to anonymous principals
Adds an HTTP verb + path binding to a method (@Get, @Post, …).
The controller class
The method name
The HTTP method
The route path
Removes all stored metadata. Intended for test isolation — decorators applied at module-evaluation time are NOT re-run, so callers that rely on decorated fixtures should not clear between tests using those fixtures.
Returns the constructor-argument indices a class marked @Optional.
The class to look up
The optional argument indices; empty when the class marked none
Returns a class's controller metadata, or undefined.
The class to look up
The metadata, if any
Returns all recorded custom decorators.
The custom decorator records
Internal
Returns the non-HTTP ingress declarations recorded for a class.
Returns the method accumulators for a controller.
The controller class
Method name → accumulator
Returns a class's module declaration, if it has one.
The class to inspect
Module metadata, or undefined for a class without @Module
Returns the (mutable) method accumulator for a controller method, creating it if absent.
The controller class
The method name
The method metadata accumulator
Internal
Returns what @Policy/@Ability recorded for a class.
The class to inspect
The policy metadata, or undefined when neither decorator ran
Returns the materialized RouteMetadata entries for a
controller — one per (method, HTTP verb). Unlike the
IMetadataStore.routes getter (loosely typed for external
consumers), this returns the concrete shape the plugin composes routes
from.
The controller class
Materialized route metadata (empty when none)
Returns a class's service metadata, or undefined.
The class to look up
The metadata, if any
Reports whether a class has controller metadata.
The class to look up
true if decorated with @Controller
Reports whether a class has service metadata.
The class to look up
true if decorated with @Injectable
Merges a partial into a class's controller metadata, creating it if absent. Arrays append; scalar fields replace.
The decorated class
Fields to merge
Marks one constructor parameter as optional, keyed by its argument index.
Stored separately from the token map because @Optional and @Inject are
independent decorators on the same parameter and may be applied in either
order; recording them in one structure would make the result depend on that
order.
The decorated class
Zero-based constructor argument index
Merges a partial module declaration into a class's metadata.
Every module member is additive, matching the existing collection-valued decorator metadata behavior.
The decorated module class
Module members to record
Merges a partial into a class's service metadata, creating it if absent.
The decorated class
Fields to merge
Merges a partial into a method's accumulator. Arrays append; scalar
fields replace. Parameter decorators append to params.
The controller class
The method name
A function that mutates the accumulator
Replaces a class's optional-argument set outright.
mergeService REPLACES inject while mergeCtorOptional
ACCUMULATES, so two stacked @Inject(...) decorators would leave the
winning token list paired with the loser's optional indices — silently
marking a required dependency absent-tolerant, or naming an index the
shorter replacement list cannot cover, which effectiveOptional then
refuses at startup. Inject writes both fields through one call each so the
last decorator to apply owns the whole declaration.
The decorated class
The complete set of optional argument indices
Internal
Records a policy class's name (@Policy).
The policy class
The policy name
Appends a parameter to a method's accumulator.
The controller class
The method name
The parameter metadata
Concrete
IMetadataStore. Decorators call themerge*/add*methods; theDecoratorPluginand other consumers read the readonlycontrollers,services, androutesmaps.A single module-level instance (
metadataStore) is shared by all decorators in the process — decorators are applied at class-definition time and have no context to receive a store instance.Since
0.1.0