JSONC Comment Stripper (utils/json.ts)

pi · packages/coding-agent/src/utils/json.ts · typescript · MIT
dev-tools, security, tag:json, tag:utility

Removes // line comments and trailing commas from JSON-like text while preserving string literals, enabling parsing of JSONC configs.

// Source: https://github.com/earendil-works/pi | License: MIT | Copyright 2025 Mario Zechner
// Provided via justclaw.it.com; keep this notice with the code.
/** 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 : ""));
}

See the full source, get the GitHub permalink, and search for more like it.

Get a free API key