export async function readAndVerifyConfig()

in cloudrun-malware-scanner/config.ts [54:80]


export async function readAndVerifyConfig(
  configFile: string,
  storage: Storage,
): Promise<Config> {
  logger.info(`Using configuration file: ${configFile}`);
  let configText;
  try {
    configText = readFileSync(configFile, {encoding: 'utf-8'});
  } catch (e) {
    logger.fatal(
      e,
      `Unable to read JSON file from ${configFile}: ${e as Error}`,
    );
    throw e;
  }
  try {
    // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
    const config = JSON.parse(configText);
    if (typeof config !== 'object') {
      throw new Error('config must be an object');
    }
    return await validateConfig(config, storage);
  } catch (e) {
    logger.fatal(e, `Failed parsing config file: ${configFile}: ${e as Error}`);
    throw e;
  }
}