Files
SnowLuma/.pnpm-store/v11/files/8e/80fa996e9f65b1ef6ac2ad49aa0d5e27badfe0d4b2337f6e4460def95edf27d58785958c8b3860b3b93dd35995e13242f7468fbb068e0f5ee111714196b3a8
TanTan 2a69b23b47
Dev Build / cleanup (push) Canceled after 0s
Dev Build / typecheck (push) Canceled after 0s
Dev Build / build (linux-arm64, ubuntu-24.04-arm, linux-arm64) (push) Canceled after 0s
Dev Build / build (linux-x64, ubuntu-latest, linux-x64) (push) Canceled after 0s
Dev Build / build (win-x64, windows-latest, win32-x64) (push) Canceled after 0s
Dev Build / dispatch-dev-docker (push) Canceled after 0s
docs: 仓库链接指向本镜像仓库
2026-11-13 09:27:07 +08:00

33 lines
1.0 KiB
Plaintext

import { parseDef } from "../parseDef.js";
export function parseTupleDef(def, refs) {
if (def.rest) {
return {
type: "array",
minItems: def.items.length,
items: def.items
.map((x, i) => parseDef(x._def, {
...refs,
currentPath: [...refs.currentPath, "items", `${i}`],
}))
.reduce((acc, x) => (x === undefined ? acc : [...acc, x]), []),
additionalItems: parseDef(def.rest._def, {
...refs,
currentPath: [...refs.currentPath, "additionalItems"],
}),
};
}
else {
return {
type: "array",
minItems: def.items.length,
maxItems: def.items.length,
items: def.items
.map((x, i) => parseDef(x._def, {
...refs,
currentPath: [...refs.currentPath, "items", `${i}`],
}))
.reduce((acc, x) => (x === undefined ? acc : [...acc, x]), []),
};
}
}