is-json-value
Version:
Check if a value is valid JSON
27 lines (19 loc) • 552 B
JavaScript
export const getPrefix=(path)=>
path.length===0?"It":`Property "${serializePath(path)}"`;
const serializePath=(path)=>path.map(serializeKey).join("");
const serializeKey=(key,index)=>{
const type=typeof key;
return type==="number"||type==="symbol"?
`[${String(key)}]`:
serializeStringKey(key,index)
};
const serializeStringKey=(key,index)=>{
if(key===""){
return"[\"\"]"
}
if(!JS_VAR_NAME_REGEXP.test(key)){
return`[${JSON.stringify(key)}]`
}
return index===0?key:`.${key}`
};
const JS_VAR_NAME_REGEXP=/^[\p{ID_Start}$_][\p{ID_Continue}$_]*$/u;