UNPKG

dependency-guardian

Version:

A powerful dependency management and analysis tool for Node.js projects

35 lines (30 loc) 976 B
const Joi = require('joi'); const logger = require('./logger'); const configSchema = Joi.object({ registry: Joi.string().uri(), maxRetries: Joi.number().min(0).max(10), timeout: Joi.number().min(1000).max(60000), cacheTimeout: Joi.number().min(0), offline: Joi.boolean(), strict: Joi.boolean(), debug: Joi.boolean(), output: Joi.string(), format: Joi.string().valid('json', 'table', 'markdown'), cachePath: Joi.string(), maxCacheKeys: Joi.number().min(-1) }); class ConfigValidator { validate(config) { const { error, value } = configSchema.validate(config, { abortEarly: false, allowUnknown: true }); if (error) { const details = error.details.map(detail => detail.message); logger.error('Invalid configuration:', details.join(', ')); throw new ValidationError('Invalid configuration', { details }); } return value; } } module.exports = new ConfigValidator();