]> git.ipfire.org Git - thirdparty/openwrt.git/commitdiff
cli: add json data type
authorFelix Fietkau <nbd@nbd.name>
Thu, 10 Jul 2025 08:46:53 +0000 (10:46 +0200)
committerFelix Fietkau <nbd@nbd.name>
Thu, 10 Jul 2025 08:48:19 +0000 (10:48 +0200)
Signed-off-by: Felix Fietkau <nbd@nbd.name>
package/utils/cli/files/usr/share/ucode/cli/types.uc

index 10b004d1ad0bdf53f4201e104200d8a18eb65419..62f9683b45dae6a5b7305895a4e52634ab6b4890 100644 (file)
@@ -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)