concurrently
Version:
Run commands concurrently
25 lines (23 loc) • 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;