summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFelix Fietkau2025-07-10 08:46:53 +0000
committerFelix Fietkau2025-07-10 08:48:19 +0000
commit14d5a51822a1f6c385fc51f65b1d8019b7b6ac0d (patch)
tree32025b017431adb5e31397032cde60b20375dfc8
parent6048ad905a4cb6128476723a044ee96175c74e32 (diff)
downloadopenwrt-14d5a51822a1f6c385fc51f65b1d8019b7b6ac0d.tar.gz
cli: add json data type
Signed-off-by: Felix Fietkau <nbd@nbd.name>
-rw-r--r--package/utils/cli/files/usr/share/ucode/cli/types.uc12
1 files changed, 12 insertions, 0 deletions
diff --git a/package/utils/cli/files/usr/share/ucode/cli/types.uc b/package/utils/cli/files/usr/share/ucode/cli/types.uc
index 10b004d1ad..62f9683b45 100644
--- a/package/utils/cli/files/usr/share/ucode/cli/types.uc
+++ b/package/utils/cli/files/usr/share/ucode/cli/types.uc
@@ -58,6 +58,18 @@ const types = {
return;
}
},
+ json: {
+ parse: function(ctx, name, val) {
+ try {
+ val = json(val);
+ } catch (e) {
+ return ctx.invalid_argument('Invalid JSON data');
+ }
+ if (this.data_type != null && type(val) != this.data_type)
+ ctx.invalid_argument(`Invalid data type: %s, expected: %s`, type(val), this.data_type);
+ return val;
+ }
+ },
enum: {
parse: function(ctx, name, val) {
if (this.no_validate)