Uname: Linux webm016.cluster127.gra.hosting.ovh.net 5.15.167-ovh-vps-grsec-zfs-classid #1 SMP Tue Sep 17 08:14:20 UTC 2024 x86_64
Software: Apache
PHP version: 7.4.33 [ PHP INFO ] PHP os: Linux
Server Ip: 54.36.31.145
Your Ip: 216.73.216.182
User: homesquasz (91404) | Group: users (100)
Safe Mode: OFF
Disable Function:
_dyuweyrj4,_dyuweyrj4r,dl

name : ensureValid.js
"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _ValidationError = _interopRequireDefault(require("../errors/ValidationError"));

var _logger = _interopRequireDefault(require("../../logger"));

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

const COMPRESSION_TYPES = ['gzip', 'brotli', 'none'];

const ensureFilesValid = config => {
  if (!Array.isArray(config.files)) {
    throw new _ValidationError.default('config.files must be an Array');
  } // TODO: more validation per file, path, maxSize, compression etc
  // const FILE_TYPE = {
  //     path: '', // required
  //     maxSize, // basically required (defaults to Infinity)
  //     compression, // optional
  // }


  return config;
};

const ensureDefaultCompressionValid = config => {
  if (!COMPRESSION_TYPES.includes(config.defaultCompression)) {
    throw new _ValidationError.default('config.compression must be a valid type');
  }

  return config;
};

const ensureNormalizeFilenamesValid = config => {
  const input = config.normalizeFilenames;
  if (input == null) return config;

  if (typeof input === 'string') {
    try {
      // eslint-disable-next-line no-param-reassign
      config.normalizeFilenames = new RegExp(input);
    } catch (e) {
      throw new Error(`config.normalizeFilenames (${input}) is not a valid RegExp.`);
    }
  } else if (!(input instanceof RegExp)) {
    throw new Error(`config.normalizeFilenames (${input}) is not a valid RegExp.`);
  }

  return config;
};

const ensureCiValid = config => {
  if (!Array.isArray(config.ci.trackBranches)) {
    throw new _ValidationError.default('config.ci.trackBranches must be an Array');
  }

  const requiredOptionsToConnectToBuild = ['githubAccessToken', 'repoOwner', 'repoName', 'commitSha'];
  const missingOptions = requiredOptionsToConnectToBuild.reduce((optionAccumulator, option) => {
    if (!config.ci[option]) {
      optionAccumulator.push(option);
    }

    return optionAccumulator;
  }, []);

  if (missingOptions.length === 0) {
    if (!config.bundlewatchServiceHost) {
      _logger.default.warn(`bundlewatchServiceHost was not supplied, bundlewatch comparisons unavilable:
    Learn more at: https://bundlewatch.io/
            `);
    } else {
      if (!config.ci.repoBranchBase) {
        _logger.default.warn(`The ci.repoBranchCase was not supplied, bundlewatch comparisons unavailable:
    Learn more at: https://bundlewatch.io/
                `);
      }

      if (!config.ci.repoCurrentBranch) {
        _logger.default.warn(`The ci.repoCurrentBranch was not supplied, bundlewatch results with not be saved:
    Learn more at: https://bundlewatch.io/
            `);
      }
    }
  } else {
    _logger.default.warn(`Some CI configuration options were not found (${missingOptions.join(', ')}):
    bundlewatch will be unable to report build status, or save comparison data
    Learn more at: https://bundlewatch.io/
        `);
  }

  return config;
};

const validators = [ensureFilesValid, ensureDefaultCompressionValid, ensureNormalizeFilenamesValid, ensureCiValid]; // Runs and returns the result of each validator

const ensureValid = config => validators.reduce((c, validator) => validator(c), config);

var _default = ensureValid;
exports.default = _default;
© 2026 GrazzMean