initialize method

  1. @override
FutureOr<InitializationResult> initialize()
override

Initialization implementation. Do not call it directly, use doInitialization.

It can be a synchronous (returning a bool) or an asynchronous implementation (returning a Future<bool>).

See initializeDependencies.

Implementation

@override
FutureOr<InitializationResult> initialize() {
  return adapter.resolveMapped((adapter) {
    var repositories = buildRepositories(adapter);

    var duplicatedError = _checkDuplicatedRepositories(repositories);
    if (duplicatedError != null) return duplicatedError;

    return extraDependencies().resolveMapped((extraDependencies) {
      return InitializationResult.ok(
        this,
        dependencies: [adapter, ...repositories, ...extraDependencies],
      );
    });
  });
}