private computeEnvDeployStages()

in packages/cli/lib/mdaa-cli.ts [355:409]


  private computeEnvDeployStages(moduleEffectiveConfigs: ModuleEffectiveConfig[]): DeployStageMap {
    const deployStages: DeployStageMap = {};

    moduleEffectiveConfigs
      .filter(
        moduleEffectiveConfig =>
          this.devopsMode ||
          this.moduleFilter == undefined ||
          this.moduleFilter?.includes(moduleEffectiveConfig.moduleName),
      )
      .forEach(moduleEffectiveConfig => {
        const logPrefix = `${moduleEffectiveConfig.domainName}/${moduleEffectiveConfig.envName}/${moduleEffectiveConfig.moduleName}`;

        console.log(`Module ${logPrefix}: Prepping packages`);
        const moduleDeploymentConfig = this.prepModule(moduleEffectiveConfig);

        const customNamingModulePath =
          moduleEffectiveConfig.customNaming && moduleEffectiveConfig.customNaming.naming_module.startsWith('@')
            ? this.prepNpmPackage(logPrefix, moduleEffectiveConfig.customNaming.naming_module)
            : moduleEffectiveConfig.customNaming?.naming_module;

        const installedCustomNamingModule: MdaaCustomNaming | undefined = customNamingModulePath
          ? {
              naming_module: `${customNamingModulePath}`,
              naming_class: moduleEffectiveConfig.customNaming?.naming_class || '',
              naming_props: moduleEffectiveConfig.customNaming?.naming_props,
            }
          : undefined;

        const installedCustomAspects: MdaaCustomAspect[] = moduleEffectiveConfig.customAspects?.map(customAspect => {
          const [customAspectPath] = customAspect.aspect_module.startsWith('@')
            ? this.prepNpmPackage(logPrefix, customAspect.aspect_module)
            : [customAspect.aspect_module, true];
          return {
            aspect_module: customAspectPath,
            aspect_class: customAspect.aspect_class,
            aspect_props: customAspect.aspect_props,
          };
        });

        const installedModuleConfig: ModuleDeploymentConfig = {
          ...moduleDeploymentConfig,
          customAspects: installedCustomAspects,
          customNaming: installedCustomNamingModule,
        };

        const deployStage = this.computeModuleDeployStage(installedModuleConfig);
        if (deployStages[deployStage]) {
          deployStages[deployStage].push(installedModuleConfig);
        } else {
          deployStages[deployStage] = [installedModuleConfig];
        }
      });
    return deployStages;
  }