From ed9999efd64662005c1c11eed0724635b908d121 Mon Sep 17 00:00:00 2001 From: Raymond Hill Date: Fri, 30 May 2025 11:06:33 -0400 Subject: [PATCH] Improve `jsonl[...]` suite of scriptlets Reuse original line separator when reassembling JSONL lines. --- src/js/resources/json-edit.js | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/js/resources/json-edit.js b/src/js/resources/json-edit.js index 8a2af5928..4b03bfd08 100644 --- a/src/js/resources/json-edit.js +++ b/src/js/resources/json-edit.js @@ -374,7 +374,8 @@ registerScriptlet(trustedJsonEditFetchResponse, { function jsonlEditFn(jsonp, text = '') { const safe = safeSelf(); - const linesBefore = text.split(/\n+/); + const lineSeparator = /\r?\n/.exec(text)?.[0] || '\n'; + const linesBefore = text.split(lineSeparator); const linesAfter = []; for ( const lineBefore of linesBefore ) { let obj; @@ -387,9 +388,10 @@ function jsonlEditFn(jsonp, text = '') { linesAfter.push(lineBefore); continue; } - linesAfter.push(JSONPath.toJSON(obj, safe.JSON_stringify)); + const lineAfter = safe.JSON_stringify(obj); + linesAfter.push(lineAfter); } - return linesAfter.join('\n'); + return linesAfter.join(lineSeparator); } registerScriptlet(jsonlEditFn, { name: 'jsonl-edit.fn',