mirror of
https://github.com/johndoe6345789/metabuilder.git
synced 2026-04-25 06:14:59 +00:00
166 lines
4.0 KiB
JSON
166 lines
4.0 KiB
JSON
{
|
|
"$schema": "./validation.schema.json",
|
|
"schema_version": "2.1.0",
|
|
"package": "json_script_example",
|
|
"description": "Validation utility functions",
|
|
"exports": {
|
|
"functions": [
|
|
"isEmail",
|
|
"isNotEmpty",
|
|
"validateRange"
|
|
]
|
|
},
|
|
"functions": [
|
|
{
|
|
"id": "is_email_fn",
|
|
"name": "isEmail",
|
|
"description": "Check if string is a valid email",
|
|
"exported": true,
|
|
"params": [
|
|
{
|
|
"name": "email",
|
|
"type": "string"
|
|
}
|
|
],
|
|
"returnType": "boolean",
|
|
"body": [
|
|
{
|
|
"type": "comment",
|
|
"text": "Basic email validation - contains @ and domain"
|
|
},
|
|
{
|
|
"type": "const_declaration",
|
|
"name": "hasAt",
|
|
"value": {
|
|
"type": "binary_expression",
|
|
"left": {
|
|
"type": "call_expression",
|
|
"callee": "$ref:imports.string.indexOf",
|
|
"args": [
|
|
"$ref:params.email",
|
|
"@"
|
|
]
|
|
},
|
|
"operator": ">",
|
|
"right": 0
|
|
}
|
|
},
|
|
{
|
|
"type": "const_declaration",
|
|
"name": "hasDot",
|
|
"value": {
|
|
"type": "binary_expression",
|
|
"left": {
|
|
"type": "call_expression",
|
|
"callee": "$ref:imports.string.lastIndexOf",
|
|
"args": [
|
|
"$ref:params.email",
|
|
"."
|
|
]
|
|
},
|
|
"operator": ">",
|
|
"right": {
|
|
"type": "call_expression",
|
|
"callee": "$ref:imports.string.indexOf",
|
|
"args": [
|
|
"$ref:params.email",
|
|
"@"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"type": "return",
|
|
"value": {
|
|
"type": "logical_expression",
|
|
"left": "$ref:local.hasAt",
|
|
"operator": "&&",
|
|
"right": "$ref:local.hasDot"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "is_not_empty_fn",
|
|
"name": "isNotEmpty",
|
|
"description": "Check if string is not empty after trimming",
|
|
"exported": true,
|
|
"params": [
|
|
{
|
|
"name": "str",
|
|
"type": "string"
|
|
}
|
|
],
|
|
"returnType": "boolean",
|
|
"body": [
|
|
{
|
|
"type": "const_declaration",
|
|
"name": "trimmed",
|
|
"value": {
|
|
"type": "call_expression",
|
|
"callee": "$ref:imports.string.trim",
|
|
"args": [
|
|
"$ref:params.str"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"type": "return",
|
|
"value": {
|
|
"type": "binary_expression",
|
|
"left": {
|
|
"type": "member_access",
|
|
"object": "$ref:local.trimmed",
|
|
"property": "length"
|
|
},
|
|
"operator": ">",
|
|
"right": 0
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "validate_range_fn",
|
|
"name": "validateRange",
|
|
"description": "Check if number is within range",
|
|
"exported": true,
|
|
"params": [
|
|
{
|
|
"name": "value",
|
|
"type": "number"
|
|
},
|
|
{
|
|
"name": "min",
|
|
"type": "number"
|
|
},
|
|
{
|
|
"name": "max",
|
|
"type": "number"
|
|
}
|
|
],
|
|
"returnType": "boolean",
|
|
"body": [
|
|
{
|
|
"type": "return",
|
|
"value": {
|
|
"type": "logical_expression",
|
|
"left": {
|
|
"type": "binary_expression",
|
|
"left": "$ref:params.value",
|
|
"operator": ">=",
|
|
"right": "$ref:params.min"
|
|
},
|
|
"operator": "&&",
|
|
"right": {
|
|
"type": "binary_expression",
|
|
"left": "$ref:params.value",
|
|
"operator": "<=",
|
|
"right": "$ref:params.max"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|