Files
2026-06-13 17:36:44 -07:00

25 lines
744 B
JavaScript

/*
ORIGINAL https://www.npmjs.com/package/tiny-jsonc
BY Fabio Spampinato
MIT license
Copied due to the dependency not being compatible with CommonJS
*/
const stringOrCommentRe = /("(?:\\?[\s\S])*?")|(\/\/.*)|(\/\*[\s\S]*?\*\/)/g;
const stringOrTrailingCommaRe = /("(?:\\?[\s\S])*?")|(,\s*)(?=\]|\})/g;
const JSONC = {
parse: (text) => {
text = String(text); // To be extra safe
try {
// Fast path for valid JSON
return JSON.parse(text);
}
catch {
// Slow path for JSONC and invalid inputs
return JSON.parse(text.replace(stringOrCommentRe, '$1').replace(stringOrTrailingCommaRe, '$1'));
}
},
stringify: JSON.stringify,
};
export default JSONC;