merge
The merge
method is a convenience method that applies the mergeable content from two MergeableStores to each other in order to bring them to the same state.
merge(mergeableStore: MergeableStore): MergeableStore
Type | Description | |
---|---|---|
mergeableStore | MergeableStore | A reference to the other |
returns | MergeableStore | A reference to this |
This method is symmetrical: applying store1
to store2
will have exactly the same effect as applying store2
to store1
.
Example
This example merges two MergeableStore
objects together. Note how the final part of the timestamps on each Cell
give you a clue that the data comes from changes made to different MergeableStore
objects.
import {createMergeableStore} from 'tinybase';
const store1 = createMergeableStore('store1');
store1.setTables({pets: {fido: {species: 'dog', color: 'brown'}}});
const store2 = createMergeableStore('store2');
store2.setTables({pets: {felix: {species: 'cat', color: 'tan'}}});
store1.merge(store2);
console.log(store1.getContent());
// ->
[
{
pets: {
felix: {color: 'tan', species: 'cat'},
fido: {color: 'brown', species: 'dog'},
},
},
{},
];
console.log(store2.getContent());
// ->
[
{
pets: {
felix: {color: 'tan', species: 'cat'},
fido: {color: 'brown', species: 'dog'},
},
},
{},
];
console.log(store2.getMergeableContent());
// ->
[
[
{
pets: [
{
felix: [
{
color: ['tan', 'Nn1JUF----0CnH-J', 2576658292],
species: ['cat', 'Nn1JUF-----CnH-J', 3409607562],
},
'',
4146239216,
],
fido: [
{
color: ['brown', 'Nn1JUF----0FnHIC', 1240535355],
species: ['dog', 'Nn1JUF-----FnHIC', 290599168],
},
'',
3989065420,
],
},
'',
4155188296,
],
},
'',
972931118,
],
[{}, '', 0],
];
Since
v5.0.0