Skip to content

Decode causes lost data if there is no "__console_feed_remaining__0" entry #125

Description

@lindapaiste

We've had some problems over on the p5 Web Editor with upgrading from ^3.2.0 to ^3.5.0.

I've traced it back to the Decode function and the changes that were made there to support the limit option.

export function Decode(data: any): Message {
const decoded = replicator.decode(JSON.stringify(data))
// remove __console_feed_remaining__
decoded.data.pop()
return decoded
}

The problem is that sometimes the messages which we are decoding do not have a __console_feed_remaining__0 entry at the end of the data array. This could be due to improper usage on our end. But the Decode function will always remove the last element of the data array regardless of what the element actually is. The code would be safer if it validated the entry before removing it, using code similar to this:

if (typeof data === 'string' && data.includes(REMAINING_KEY)) {
name = REMAINING_KEY
data = data.split(REMAINING_KEY)[1]
}

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions