Skip to content

applyTrace ​

Applies tracedFabric mutations to the given value. The value should have the same state as the traceFabric value before allied mutations.

WARNING

This function mutates the value directly.

Demo ​

Following the previous example from traceFabric demo, here is an extended one with applyTrace function in use.


Todo list (as JS object)
[
  {
    "name": "📝 Add todo items",
    "done": false
  }
]
Trace (all mutations of the todoList)
[]

The trace will be cleared after applying the changes. All changes made to the todo list will be applied to the non-traced todo list. Please note that initial state of the non-traced todo list is not the same as the traced one.
Copy of the Todo List (non-traced)
[
  {
    "name": "📝 Add todo items",
    "done": false
  }
]

Arguments ​

  • value - the object to which the trace will be directly applied.
  • trace - the trace (array of mutations) to apply to the given value.

Example ​

typescript
const fabric = traceFabric({
  season: 'winter',
  besetDays: [12, 15, 17],
});
const target = {
  season: 'winter',
  besetDays: [12, 15, 17],
};

target.season = 'summer';
target.besetDays.push(20);

applyTrace(target, fabric.trace);

console.log(target);
// {
//   season: "summer",
//   besetDays: [ 12, 15, 17, 20 ],
// }