register method
Register services with the container.
This method is called when the provider is registered with the container. Use this method to register bindings, instances, and aliases.
Implementation
@override
void register(Container container) {
_rootContainer = container;
final registry = container.get<ConfigRegistry>();
final defaultsImpl = ConfigImpl(registry.combinedDefaults());
if (_configOptions.defaults.isNotEmpty) {
defaultsImpl.merge(_configOptions.defaults);
}
final effectiveOptions = _configOptions.copyWith(
defaults: deepCopyMap(defaultsImpl.all()),
);
final snapshot = _loader.load(
effectiveOptions,
overrides: _configItems ?? const {},
);
_snapshot = snapshot;
final initialEngineConfig = _resolveEngineConfig(
snapshot.config,
_config ?? EngineConfig(),
);
container.instance<EngineConfig>(initialEngineConfig);
container.instance<Config>(snapshot.config);
container.instance<ViewEngineManager>(ViewEngineManager());
container.instance<MiddlewareRegistry>(MiddlewareRegistry());
_registryListener = (entry) {
final currentSnapshot = _snapshot;
if (currentSnapshot == null) {
return;
}
final rendered = _loader.renderDefaults(
entry.defaults,
currentSnapshot.templateContext,
);
if (rendered.isEmpty) {
return;
}
currentSnapshot.config.mergeDefaults(rendered);
};
registry.addListener(_registryListener!);
}