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 34 |
# File 'lib/fusion/cli/serializer.rb', line 14 def serialize(runtime_value, lenient: false) = catch(:unserializable) do if runtime_value.is_a?(Interpreter::ErrorVal) error = runtime_value data = convert(error.payload, lenient: lenient || error.runtime?).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 runtime_error = Interpreter::ErrorVal.from_runtime( kind: "serialization_error", origin: "output", operation: "serializing result", input: runtime_value, message: ) serialize(runtime_error, lenient: true) end |