Skip to content

Commit

Permalink
馃摑 Add documentions about compering old and new version of snapshot
Browse files Browse the repository at this point in the history
As per this discussion:
- #667 (comment)
  • Loading branch information
Dawidpol committed Jul 9, 2024
1 parent dcef549 commit 40c7215
Showing 1 changed file with 21 additions and 0 deletions.
21 changes: 21 additions & 0 deletions docs/middleware/op-submission.md
Original file line number Diff line number Diff line change
Expand Up @@ -157,3 +157,24 @@ backend.use('apply', (request, next) => {

{: .warn :}
The `request.$fixup()` method may throw an error, which should be handled appropriately, usually by passing directly to the `next()` callback.

## Comparing old snapshot version with new version

Frequently, it becomes necessary to verify the changes made. This can be accomplished by leveraging two hooks, `apply` and `commit`, and creating a snapshot clone within the `apply` hook.

```js
backend.use('apply', (request, next) => {
// Here use your favorite deep clone implementation
// sharedb team recommends rfdc
// https://github.com/davidmarkclements/rfdc#readme
request.snapshotBeforeApply = clone(request.snapshot);
next(error);
});

backend.use('commit', (request, next) => {
// Snapshot without ops and $fixupOps applied is now available as request.snapshotBeforeApply
// Snapshot with ops and $fixupOps applied is still available as request.snapshot
console.log(request.snapshotBeforeApply)
next(error);
});
```

0 comments on commit 40c7215

Please sign in to comment.