export async function getTemplateAndParameters()

in src/helpers/file.ts [83:119]


export async function getTemplateAndParameters(config: FileConfig) {
  const { parametersFile, templateFile } = config;

  if (
    parametersFile &&
    path.extname(parametersFile).toLowerCase() === ".bicepparam"
  ) {
    return parse(await compileBicepParams(parametersFile, config.parameters));
  }

  if (
    parametersFile &&
    path.extname(parametersFile).toLowerCase() !== ".json"
  ) {
    throw new Error(`Unsupported parameters file type: ${parametersFile}`);
  }

  const parameters = await getJsonParameters(config);

  if (templateFile && path.extname(templateFile).toLowerCase() === ".bicep") {
    const { template } = await compileBicep(templateFile);

    return parse({ template, parameters });
  }

  if (templateFile && path.extname(templateFile).toLowerCase() !== ".json") {
    throw new Error(`Unsupported template file type: ${templateFile}`);
  }

  if (!templateFile) {
    throw new Error("Template file is required");
  }

  const template = await fs.readFile(templateFile, "utf8");

  return parse({ template, parameters });
}