mirror of
https://github.com/voson-wang/toon.git
synced 2026-01-29 15:24:10 +08:00
fix: encode mixed-format arrays at root level (fixes #202)
This commit is contained in:
@@ -38,6 +38,6 @@
|
||||
"test": "vitest"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@toon-format/spec": "^2.0.0"
|
||||
"@toon-format/spec": "^2.0.1"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -361,9 +361,18 @@ function* encodeListItemValueLines(
|
||||
if (isJsonPrimitive(value)) {
|
||||
yield indentedListItem(depth, encodePrimitive(value, options.delimiter), options.indent)
|
||||
}
|
||||
else if (isJsonArray(value) && isArrayOfPrimitives(value)) {
|
||||
const arrayLine = encodeInlineArrayLine(value, options.delimiter)
|
||||
yield indentedListItem(depth, arrayLine, options.indent)
|
||||
else if (isJsonArray(value)) {
|
||||
if (isArrayOfPrimitives(value)) {
|
||||
const arrayLine = encodeInlineArrayLine(value, options.delimiter)
|
||||
yield indentedListItem(depth, arrayLine, options.indent)
|
||||
}
|
||||
else {
|
||||
const header = formatHeader(value.length, { delimiter: options.delimiter })
|
||||
yield indentedListItem(depth, header, options.indent)
|
||||
for (const item of value) {
|
||||
yield* encodeListItemValueLines(item, depth + 1, options)
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (isJsonObject(value)) {
|
||||
yield* encodeObjectAsListItemLines(value, depth, options)
|
||||
|
||||
Reference in New Issue
Block a user