Module: Fusion::CLI::Serializer
Instance Method Summary collapse
-
#serialize(runtime_value, lenient: false) ⇒ Object
runtime value -> WirePair Only use “lenient: true” in the REPL!.
Instance Method Details
#serialize(runtime_value, lenient: false) ⇒ Object
runtime value -> WirePair Only use “lenient: true” in the REPL!
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/fusion/cli/serializer.rb', line 14 def serialize(runtime_value, lenient: false) = catch(:unserializable) do if runtime_value.is_a?(Interpreter::ErrorVal) data = convert(runtime_value.payload, lenient: lenient || runtime_value.internal_error?).to_json return WirePair.new(status: 1, data: data) else return WirePair.new(status: 0, data: convert(runtime_value, lenient: lenient).to_json) end end internal_error = Interpreter::ErrorVal.internal( kind: "serialization_error", location: "output", operation: "serializing result", input: runtime_value, message: ) serialize(internal_error, lenient: true) end |