Files
herolib/lib/schemas/openrpc/encode.v
Mahmoud-Emad 61487902d6 chore: Remove unused imports
- Remove 'os' import from heromodels
- Remove 'json' and 'x.json2' imports from openrpc
- Remove 'console' import from openrpc
- Remove unused imports in multiple modules
2025-09-28 10:38:45 +03:00

68 lines
1.8 KiB
V

module openrpc
import json
// encode encodes an OpenRPC document struct into json string.
// eliminates undefined variable by calling prune on the initial encoding.
pub fn (doc OpenRPC) encode() !string {
encoded := json.encode(doc)
// raw_decode := json2.raw_decode(encoded)!
// mut doc_map := raw_decode.as_map()
// pruned_map := prune(doc_map)
// return json2.encode_pretty[Any](pruned_map)
return encoded
}
// encode encodes an OpenRPC document struct into json string.
// eliminates undefined variable by calling prune on the initial encoding.
pub fn (doc OpenRPC) encode_pretty() !string {
encoded := json.encode_pretty(doc)
// raw_decode := json2.raw_decode(encoded)!
// mut doc_map := raw_decode.as_map()
// pruned_map := prune(doc_map)
// return json2.encode_pretty[Any](pruned_map)
return encoded
}
// // prune recursively prunes a map of Any type, pruning map keys where the value is the default value of the variable.
// // this treats undefined values as null, which is ok for openrpc document encoding.
// pub fn prune(obj Any) Any {
// if obj is map[string]Any {
// mut pruned_map := map[string]Any{}
// for key, val in obj as map[string]Any {
// if key == '_type' {
// continue
// }
// pruned_val := prune(val)
// if pruned_val.str() != '' {
// pruned_map[key] = pruned_val
// } else if key == 'methods' || key == 'params' {
// pruned_map[key] = []Any{}
// }
// }
// if pruned_map.keys().len != 0 {
// return pruned_map
// }
// } else if obj is []Any {
// mut pruned_arr := []Any{}
// for val in obj as []Any {
// pruned_val := prune(val)
// if pruned_val.str() != '' {
// pruned_arr << pruned_val
// }
// }
// if pruned_arr.len != 0 {
// return pruned_arr
// }
// } else if obj is string {
// if obj != '' {
// return obj
// }
// }
// return ''
// }