Improve jsonl[...] suite of scriptlets

Reuse original line separator when reassembling JSONL lines.
This commit is contained in:
Raymond Hill 2025-05-30 11:06:33 -04:00
parent fbb96c7234
commit ed9999efd6
No known key found for this signature in database
GPG key ID: 25E1490B761470C2

View file

@ -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',