Imported as a linear vendor commit so forge rebases do not replay the upstream root tree. git-subtree-dir: third_party/pi git-subtree-split: d981de1229ef899957bbe968bc8dcda02a21f477
7 lines
341 B
TypeScript
7 lines
341 B
TypeScript
/** Strip `//` line comments and trailing commas from JSON, leaving string literals untouched. */
|
|
export function stripJsonComments(input: string): string {
|
|
return input
|
|
.replace(/"(?:\\.|[^"\\])*"|\/\/[^\n]*/g, (m) => (m[0] === '"' ? m : ""))
|
|
.replace(/"(?:\\.|[^"\\])*"|,(\s*[}\]])/g, (m, tail) => tail ?? (m[0] === '"' ? m : ""));
|
|
}
|