Current Situation
Right now, the event_to_object JS package within this repo manually declares every attribute that is serializable.
This is primarily to prevent infinite recursive serialization of events. As a result, it currently only attempts to serialize pre-defined "safe" attributes.
Related issues
Proposed Actions
Re-write event_to_object to either have a max-depth of something reasonable, or perform serialization in a way that auto-detects recursive behavior, and skips non-serializable objects.
In terms of auto detection, the core idea would be to keep an temporary list of all events that have been serialized, and make sure to not serialize them twice. Here's some quick and dirty psuedocode...
function convert(event){
let current_objects = []
for object in event:
if !(object in current_objects){
current_objects.add(object)
}
...
}
For things that aren't serializable, we can skip them.
Ref: https://stackoverflow.com/questions/11547672/how-to-stringify-event-object
Current Situation
Right now, the
event_to_objectJS package within this repo manually declares every attribute that is serializable.This is primarily to prevent infinite recursive serialization of events. As a result, it currently only attempts to serialize pre-defined "safe" attributes.
Related issues
event["target"]value for radio input and checkboxes is always'on'#1188event["target"]need to serializename. #1186event["target"]["checked"]does not exist for checkbox inputs #1070Proposed Actions
Re-write
event_to_objectto either have a max-depth of something reasonable, or perform serialization in a way that auto-detects recursive behavior, and skips non-serializable objects.In terms of auto detection, the core idea would be to keep an temporary list of all events that have been serialized, and make sure to not serialize them twice. Here's some quick and dirty psuedocode...
For things that aren't serializable, we can skip them.
Ref: https://stackoverflow.com/questions/11547672/how-to-stringify-event-object