UNPKG

beautiful-error

Version:

💣 Prettify error messages and stacks 💥

46 lines (34 loc) • 840 B
import isPlainObj from"is-plain-obj"; import{validateHeader}from"../header.js"; import{validateIcon}from"../icon.js"; export const validateOptions=(opts)=>{ if(opts===undefined){ return } if(!isPlainObj(opts)){ throw new Error(`options must be a plain object: ${opts}`) } Object.entries(opts).forEach(validateOpt) }; const validateOpt=([optName,optValue])=>{ if(optValue===undefined){ return } const validator=VALIDATORS[optName]; if(validator===undefined){ throw new Error(`"${optName}" is an unknown option`) } validator(optValue,optName) }; const validateBooleanOpt=(value,optName)=>{ if(typeof value!=="boolean"){ throw new TypeError(`"${optName}" must be a boolean: ${value}`) } }; const VALIDATORS={ stack:validateBooleanOpt, props:validateBooleanOpt, colors:validateBooleanOpt, icon:validateIcon, header:validateHeader };