add optional array type

This commit is contained in:
codetypes committed 2024-09-09 22:29:36 +08:00
1 parent 728148bff1
commit c53854eeca
3 files changed
+14 -10

No files matched your search

+1
View File
@@ -637,6 +637,7 @@ const NodeInspector: FC = () => {
}}
style={{ width: "100%" }}
icon={<PlusOutlined />}
danger={items.length === 0 && !isNodeArgOptional(arg)}
>
{t("node.args.add")}
</Button>
+8 -1
View File
@@ -8,24 +8,31 @@ export interface NodeArg {
| "boolean"
| "boolean?"
| "boolean[]"
| "boolean[]?"
| "int"
| "int?"
| "int[]"
| "int[]?"
| "float"
| "float?"
| "float[]"
| "float[]?"
| "string"
| "string?"
| "string[]"
| "string[]?"
| "json"
| "json?"
| "json[]"
| "json[]?"
| "enum"
| "enum?"
| "enum[]"
| "enum[]?"
| "code"
| "code?"
| "code[]";
| "code[]"
| "code[]?";
desc: string;
oneof?: string;
default?: unknown;
+5 -9
View File
@@ -199,13 +199,11 @@ export const checkNodeArg = (
const arg = conf.args![i] as NodeArg;
const value = data.args?.[arg.name];
if (isNodeArgArray(arg)) {
if (!Array.isArray(value)) {
if (value !== undefined) {
if (!Array.isArray(value) || (!isNodeArgOptional(arg) && value.length === 0)) {
if (verbose) {
error(data, `'${arg.name}=${value}' is not an array`);
error(data, `'${arg.name}=${JSON.stringify(value)}' is not an array or empty array`);
}
hasError = true;
}
} else {
for (let j = 0; j < value.length; j++) {
if (!checkNodeArgValue(data, arg, value[j], verbose)) {
@@ -300,13 +298,11 @@ export const checkNodeData = (data: NodeModel | null | undefined) => {
for (let i = 0; i < conf.args.length; i++) {
const key = conf.args[i].name;
const value = data.args?.[key];
if (!checkNodeArg(data, conf, i, true)) {
hasError = true;
}
if (value !== undefined) {
args[key] = value;
} else if (isNodeArgArray(conf.args[i])) {
args[key] = [];
}
if (!checkNodeArg(data, conf, i, true)) {
hasError = true;
}
}
data.args = args;