private validateConfig()

in packages/cli/lib/mdaa-cli-config-parser.ts [337:373]


  private validateConfig() {
    const namePattern = new RegExp(MdaaCliConfig.VALIDATE_NAME_REGEXP);
    if (!namePattern.test(this.contents.organization)) {
      throw new Error(
        `Org name ${this.contents.organization} must match pattern ${MdaaCliConfig.VALIDATE_NAME_REGEXP}`,
      );
    }
    Object.entries(this.contents.domains).forEach(domainEntry => {
      if (!namePattern.test(domainEntry[0])) {
        throw new Error(`Domain name ${domainEntry[0]} must match pattern ${MdaaCliConfig.VALIDATE_NAME_REGEXP}`);
      }
      Object.entries(domainEntry[1].environments).forEach(envEntry => {
        if (!namePattern.test(envEntry[0])) {
          throw new Error(`Env name ${envEntry[0]} must match pattern ${MdaaCliConfig.VALIDATE_NAME_REGEXP}`);
        }
        Object.entries(envEntry[1].modules || {}).forEach(moduleEntry => {
          if (!namePattern.test(moduleEntry[0])) {
            throw new Error(`Module name ${moduleEntry[0]} must match pattern ${MdaaCliConfig.VALIDATE_NAME_REGEXP}`);
          }
        });
      });
      Object.entries(domainEntry[1].env_templates || {}).forEach(envTemplateEntry => {
        Object.entries(envTemplateEntry[1].modules || {}).forEach(moduleEntry => {
          if (!namePattern.test(moduleEntry[0])) {
            throw new Error(`Module name ${moduleEntry[0]} must match pattern ${MdaaCliConfig.VALIDATE_NAME_REGEXP}`);
          }
        });
      });
    });
    Object.entries(this.contents.env_templates || {}).forEach(envTemplateEntry => {
      Object.entries(envTemplateEntry[1].modules || {}).forEach(moduleEntry => {
        if (!namePattern.test(moduleEntry[0])) {
          throw new Error(`Module name ${moduleEntry[0]} must match pattern ${MdaaCliConfig.VALIDATE_NAME_REGEXP}`);
        }
      });
    });
  }