UNPKG

concurrently

Version:
25 lines (23 loc) 744 B
/* 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;