mirror of
https://github.com/johndoe6345789/metabuilder.git
synced 2026-05-05 19:19:35 +00:00
config: json,script,packages (2 files)
This commit is contained in:
@@ -0,0 +1,197 @@
|
||||
{
|
||||
"schema_version": "2.1.0",
|
||||
"package": "json_script_example",
|
||||
"description": "Math utility functions",
|
||||
|
||||
"exports": {
|
||||
"functions": ["add", "subtract", "multiply", "divide", "clamp"],
|
||||
"constants": ["PI", "E"]
|
||||
},
|
||||
|
||||
"constants": [
|
||||
{
|
||||
"id": "pi_const",
|
||||
"name": "PI",
|
||||
"value": 3.14159265359,
|
||||
"type": "number",
|
||||
"exported": true
|
||||
},
|
||||
{
|
||||
"id": "e_const",
|
||||
"name": "E",
|
||||
"value": 2.71828182846,
|
||||
"type": "number",
|
||||
"exported": true
|
||||
}
|
||||
],
|
||||
|
||||
"functions": [
|
||||
{
|
||||
"id": "add_fn",
|
||||
"name": "add",
|
||||
"description": "Add two numbers",
|
||||
"exported": true,
|
||||
"params": [
|
||||
{"name": "a", "type": "number"},
|
||||
{"name": "b", "type": "number"}
|
||||
],
|
||||
"returnType": "number",
|
||||
"body": [
|
||||
{
|
||||
"type": "return",
|
||||
"value": {
|
||||
"type": "binary_expression",
|
||||
"left": "$ref:params.a",
|
||||
"operator": "+",
|
||||
"right": "$ref:params.b"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "subtract_fn",
|
||||
"name": "subtract",
|
||||
"description": "Subtract two numbers",
|
||||
"exported": true,
|
||||
"params": [
|
||||
{"name": "a", "type": "number"},
|
||||
{"name": "b", "type": "number"}
|
||||
],
|
||||
"returnType": "number",
|
||||
"body": [
|
||||
{
|
||||
"type": "return",
|
||||
"value": {
|
||||
"type": "binary_expression",
|
||||
"left": "$ref:params.a",
|
||||
"operator": "-",
|
||||
"right": "$ref:params.b"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "multiply_fn",
|
||||
"name": "multiply",
|
||||
"description": "Multiply two numbers",
|
||||
"exported": true,
|
||||
"params": [
|
||||
{"name": "a", "type": "number"},
|
||||
{"name": "b", "type": "number"}
|
||||
],
|
||||
"returnType": "number",
|
||||
"body": [
|
||||
{
|
||||
"type": "return",
|
||||
"value": {
|
||||
"type": "binary_expression",
|
||||
"left": "$ref:params.a",
|
||||
"operator": "*",
|
||||
"right": "$ref:params.b"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "divide_fn",
|
||||
"name": "divide",
|
||||
"description": "Divide two numbers",
|
||||
"exported": true,
|
||||
"params": [
|
||||
{"name": "a", "type": "number"},
|
||||
{"name": "b", "type": "number"}
|
||||
],
|
||||
"returnType": "number",
|
||||
"body": [
|
||||
{
|
||||
"type": "comment",
|
||||
"text": "Check for division by zero"
|
||||
},
|
||||
{
|
||||
"type": "if_statement",
|
||||
"condition": {
|
||||
"type": "binary_expression",
|
||||
"left": "$ref:params.b",
|
||||
"operator": "==",
|
||||
"right": 0
|
||||
},
|
||||
"then": [
|
||||
{
|
||||
"type": "return",
|
||||
"value": null
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "return",
|
||||
"value": {
|
||||
"type": "binary_expression",
|
||||
"left": "$ref:params.a",
|
||||
"operator": "/",
|
||||
"right": "$ref:params.b"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "clamp_fn",
|
||||
"name": "clamp",
|
||||
"description": "Clamp a value between min and max",
|
||||
"exported": true,
|
||||
"params": [
|
||||
{"name": "value", "type": "number"},
|
||||
{"name": "min", "type": "number"},
|
||||
{"name": "max", "type": "number"}
|
||||
],
|
||||
"returnType": "number",
|
||||
"body": [
|
||||
{
|
||||
"type": "comment",
|
||||
"text": "If value < min, return min"
|
||||
},
|
||||
{
|
||||
"type": "if_statement",
|
||||
"condition": {
|
||||
"type": "binary_expression",
|
||||
"left": "$ref:params.value",
|
||||
"operator": "<",
|
||||
"right": "$ref:params.min"
|
||||
},
|
||||
"then": [
|
||||
{
|
||||
"type": "return",
|
||||
"value": "$ref:params.min"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "comment",
|
||||
"text": "If value > max, return max"
|
||||
},
|
||||
{
|
||||
"type": "if_statement",
|
||||
"condition": {
|
||||
"type": "binary_expression",
|
||||
"left": "$ref:params.value",
|
||||
"operator": ">",
|
||||
"right": "$ref:params.max"
|
||||
},
|
||||
"then": [
|
||||
{
|
||||
"type": "return",
|
||||
"value": "$ref:params.max"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "comment",
|
||||
"text": "Otherwise return value"
|
||||
},
|
||||
{
|
||||
"type": "return",
|
||||
"value": "$ref:params.value"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,136 @@
|
||||
{
|
||||
"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"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user