export function validateUserWorkflowConfig()

in src/core/utils/user-config.ts [103:165]


export function validateUserWorkflowConfig(userWorkflowConfig: Partial<GithubActionWorkflow> | undefined): Partial<GithubActionWorkflow> | undefined {
  let appLocation = undefined;
  let apiLocation = undefined;
  let outputLocation = undefined;
  let dataApiLocation = undefined;

  logger.silly(`Validating user workflow config (BEFORE):`);
  logger.silly(userWorkflowConfig!);

  if (userWorkflowConfig?.appLocation) {
    appLocation = path.resolve(userWorkflowConfig.appLocation);
    if (path.isAbsolute(userWorkflowConfig.appLocation)) {
      appLocation = userWorkflowConfig.appLocation;
    }
  }

  if (userWorkflowConfig?.apiLocation) {
    if (isHttpUrl(userWorkflowConfig.apiLocation)) {
      apiLocation = userWorkflowConfig.apiLocation;
    } else {
      // use the user's config and construct an absolute path
      apiLocation = path.resolve(userWorkflowConfig.apiLocation);
    }

    if (path.isAbsolute(userWorkflowConfig.apiLocation)) {
      apiLocation = userWorkflowConfig.apiLocation;
    }
  }

  if (userWorkflowConfig?.dataApiLocation) {
    dataApiLocation = path.resolve(userWorkflowConfig.dataApiLocation);
    if (path.isAbsolute(userWorkflowConfig.dataApiLocation)) {
      dataApiLocation = userWorkflowConfig.dataApiLocation;
    }
  }

  if (userWorkflowConfig?.outputLocation) {
    // is dev server url?
    if (isHttpUrl(userWorkflowConfig.outputLocation)) {
      outputLocation = userWorkflowConfig.outputLocation;
    } else {
      outputLocation = path.resolve(userWorkflowConfig.outputLocation);
      if (path.isAbsolute(userWorkflowConfig.outputLocation)) {
        outputLocation = userWorkflowConfig.outputLocation;
      }
    }
  }

  logger.silly(`Validating user workflow config (AFTER):`);
  logger.silly({
    appLocation,
    apiLocation,
    outputLocation,
    dataApiLocation,
  });

  return {
    appLocation,
    apiLocation,
    outputLocation,
    dataApiLocation,
  };
}