cleanup...

Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
Alex A. Naanou 2025-12-23 19:12:39 +03:00
parent 51d0e0ddde
commit 71a79e193a

View File

@ -21,9 +21,13 @@ var RECURSIVE = '<RECURSIVE%>'
//--------------------------------------------------------------------- //---------------------------------------------------------------------
// XXX add support for pretty printing... //
// to do this correctly, need to track, thread indent and to // serialize(obj[, space[, indent]])
// correctly offset nested json sections... // -> str
//
// serialize(obj, path, seen, space, indent)
// -> str
//
// XXX need to destinguish between map key and value in path... // XXX need to destinguish between map key and value in path...
var serialize = var serialize =
module.serialize = module.serialize =
@ -79,32 +83,43 @@ function(obj, path=[], seen=new Map(), space, indent=0){
: EMPTY) } : EMPTY) }
} else if(obj instanceof Map){ } else if(obj instanceof Map){
pre = 'Map(' pre = 'Map(['
post = ')' post = '])'
elems = [serialize([...obj], path, seen, space, indent+1)] elems = [
serialize([...obj], path, seen, space, indent)
.slice(1, -1)
.trim() ]
} else if(obj instanceof Set){ } else if(obj instanceof Set){
pre = 'Set(' pre = 'Set(['
post = ')' post = '])'
elems = [serialize([...obj], path, seen, space, indent+1)] elems = [
serialize([...obj], path, seen, space, indent)
.slice(1, -1)
.trim() ]
} else { } else {
pre = '{' pre = '{'
post = '}' post = '}'
for(var [k, v] of Object.entries(obj)){ for(var [k, v] of Object.entries(obj)){
elems.push(`${ elems.push(`${
JSON.stringify(k, null, space) JSON.stringify(k)
}:${ space != null ? ' ' : '' }${ }:${ space != null ? ' ' : '' }${
serialize(v, [...path, k], seen, space, indent+1).trimLeft() serialize(v, [...path, k], seen, space, indent+1)
// relevant for pretty-printing only...
.trimLeft()
}`) } } }`) } }
// handle indent... // handle indent...
if(space != null){ if(space != null){
i = ' '.repeat(indent * space) i = ' '.repeat(indent * space)
s = i + ' '.repeat(space) s = i + ' '.repeat(space)
pre = i + pre + '\n' + s if(elems.length > 0){
post = '\n' + i + post pre = pre + '\n' + s
join = join + '\n' + s } post = '\n' + i + post
// XXX set limit for number of elements to keep horizontal...
// ...also account for element length...
join = join + '\n' + s } }
return pre+ elems.join(join) +post } return pre+ elems.join(join) +post }