13 lines
584 B
TypeScript
13 lines
584 B
TypeScript
/** Tag-safe JSON serialization for the model-visible reference envelope. */
|
|
|
|
/**
|
|
* Serialize JSON while preventing source data from spelling an XML-like opening tag.
|
|
* @param value - JSON-compatible reference data.
|
|
* @returns JSON whose parse result is unchanged and whose data contains no literal `<`.
|
|
*/
|
|
export function stringifyTagSafeJson(value: unknown): string {
|
|
const serialized: unknown = JSON.stringify(value)
|
|
if (typeof serialized !== 'string') throw new TypeError('session-reference data is not JSON-serializable')
|
|
return serialized.replaceAll('<', '\\u003c')
|
|
}
|