docs: async function buildInitializer(dependencies) {
      const dependencyTrees = await Promise.all(
        dependencies.map(dependency =>
          buildDependencyTree({ $autoload }, dependency),
        ),
      );
      const dependenciesHash = buildDependenciesHash(
        dependencyTrees.filter(identity),
      );
      const batches = buildInitializationSequence({
        __name: 'main',
        __childNodes: dependencyTrees.filter(identity),
      });
      batches.pop();
  
      return `${batches
        .map(
          (batch, index) => `
  // Definition batch #${index}${batch
            .map(name => {
              if (
                'constant' ===
                dependenciesHash[name].__initializer[SPECIAL_PROPS.TYPE]
              ) {
                return `
  const ${name} = ${JSON.stringify(
                  dependenciesHash[name].__initializer[SPECIAL_PROPS.VALUE],
                  null,
                  2,
                )};`;
              }
  
              return `
  import ${dependenciesHash[name].__initializerName} from '${
                dependenciesHash[name].__path
              }';`;
            })
            .join('')}`,
        )
        .join('\n')}
  
  export async function initialize(services = {}) {${batches
        .map(
          (batch, index) => `
    // Initialization batch #${index}
    const batch${index} = {${batch
            .map(name => {
              if (
                'constant' ===
                dependenciesHash[name].__initializer[SPECIAL_PROPS.TYPE]
              ) {
                return `
      ${name}: Promise.resolve(${name}),`;
              }
              return `
      ${name}: ${dependenciesHash[name].__initializerName}({${
                dependenciesHash[name].__inject
                  ? `${dependenciesHash[name].__inject
                      .map(parseDependencyDeclaration)
                      .map(
                        ({ serviceName, mappedName }) =>
                          `
        ${serviceName}: services['${mappedName}'],`,
                      )
                      .join('')}`
                  : ''
              }
      })${
        'provider' === dependenciesHash[name].__type
          ? '.then(provider => provider.service)'
          : ''
      },`;
            })
            .join('')}
    };
  
    await Promise.all(
      Object.keys(batch${index})
      .map(key => batch${index}[key])
    );
  ${batch
    .map(name => {
      return `
    services['${name}'] = await batch${index}['${name}'];`;
    })
    .join('')}
  `,
        )
        .join('')}
    return {${dependencies
      .map(parseDependencyDeclaration)
      .map(
        ({ serviceName, mappedName }) =>
          `
      ${serviceName}: services['${mappedName}'],`,
      )
      .join('')}
    };
  }
  `;
    }