Skip to content

Commit

Permalink
Merge pull request #670 from share/change-docs
Browse files Browse the repository at this point in the history
馃摑 Add documentation about compering old and new version of snapshot
  • Loading branch information
alecgibson committed Jul 9, 2024
2 parents dcef549 + 1ab5a28 commit 161d8b5
Showing 1 changed file with 23 additions and 0 deletions.
23 changes: 23 additions & 0 deletions docs/middleware/op-submission.md
Original file line number Diff line number Diff line change
Expand Up @@ -157,3 +157,26 @@ 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
// Alternatively use your favourite deep-clone library
function deepClone(obj) {
return JSON.parse(JSON.stringify(obj));
}

backend.use('apply', (request, next) => {
request.snapshotBeforeApply = deepClone(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 161d8b5

Please sign in to comment.