buildRootScope method

ServiceScope buildRootScope()

Builds a root ServiceScope.

Implementation

ServiceScope buildRootScope() {
  final serviceMap = <Type, List<ServiceDescriptor>>{};

  for (var descriptor in this) {
    var descriptors = serviceMap[descriptor.serviceType];

    if (descriptors == null) {
      descriptors = [];
      serviceMap[descriptor.serviceType] = descriptors;
    }

    descriptors.add(descriptor);
  }

  final rootScope = ServiceProviderRootScopeEngine(serviceMap);

  serviceMap[ServiceScopeFactory] = [
    ServiceDescriptor.instance(ServiceScopeFactoryImpl(rootScope)),
  ];

  return rootScope;
}