beautiful-error
Version:
💣 Prettify error messages and stacks 💥
26 lines (19 loc) • 728 B
JavaScript
import isPlainObj from"is-plain-obj";
import{removeUndefined}from"./default.js";
export const getClassesOpts=({classes={},...opts})=>{
validateObject(classes,"The option 'classes'");
const{default:defaultClass={},...classesA}=classes;
return{opts,classes:{...classesA,default:defaultClass}}
};
export const applyClassesOpts=(name,classes,opts)=>{
const classesOpts=classes[name]??{};
validateObject(classesOpts,`The option 'classes.${name}'`);
return{...opts,...removeUndefined(classesOpts)}
};
export const validateObject=(value,optName)=>{
if(!isPlainObj(value)){
throw new Error(`${optName} must be a plain object, not: ${value}`)
}
};
export const pickClassOpts=(classes,error)=>
classes[error.name]??classes.default;