tree 4e2e16fa9ee983fb5028bf7bc18279599c6136cb
parent 53c69dfa0d2f31a8662309906b411579c10af2ca
author Todd Volkert <tvolkert@users.noreply.github.com> 1486507816 -0800
committer GitHub <noreply@github.com> 1486507816 -0800

Deeply encode objects in `encode()` (#23)

This changes `encode()` to deeply encode the specified object
rather than performing a shallow encode. Previously, it relied
on `JSONEncoder` to do the work of walking the object graph and
calling `toEncodable` whenever it found a non-JSON type. Now,
callers can call `encode()` on the top-level object and get back
a deeply JSON-typed object that can be converted to JSON without
the need for a `toEncodable` callback.

This will be used during replay, when we'll compare an invocation
to the list of recorded invocations, each of which exists as a
JSON-type map.

Since we now control the encoding process entirely ourselves,
this also changes `encode()` to return `Future<dynamic>` rather than
`dynamic`, which in turn allows both `InvocationEvent.serialize()` and
`ResultReference.serializedValue` to return futures as well.
Doing so allows for more technical correctness when serializing
result references.

Part of #11