( yMapOrParent: YMap<any>, idInParent: Id | undefined, obj: IdObj<any>, set: (yMap: YMap<any>, id: Id, value: any) => 1 | void, )
| 158 | }; |
| 159 | |
| 160 | const yMapMatch = ( |
| 161 | yMapOrParent: YMap<any>, |
| 162 | idInParent: Id | undefined, |
| 163 | obj: IdObj<any>, |
| 164 | set: (yMap: YMap<any>, id: Id, value: any) => 1 | void, |
| 165 | ): 1 | void => { |
| 166 | const yMap = isUndefined(idInParent) |
| 167 | ? yMapOrParent |
| 168 | : (yMapOrParent.get(idInParent) ?? |
| 169 | yMapOrParent.set(idInParent, new YMap())); |
| 170 | let changed: 1 | undefined; |
| 171 | objMap(obj, (value, id) => { |
| 172 | if (set(yMap, id, value)) { |
| 173 | changed = 1; |
| 174 | } |
| 175 | }); |
| 176 | yMap.forEach((_: any, id: Id) => { |
| 177 | if (!objHas(obj, id)) { |
| 178 | yMap.delete(id); |
| 179 | changed = 1; |
| 180 | } |
| 181 | }); |
| 182 | if (!isUndefined(idInParent) && !yMap.size) { |
| 183 | yMapOrParent.delete(idInParent); |
| 184 | } |
| 185 | return changed; |
| 186 | }; |
| 187 | |
| 188 | export const createYjsPersister = (( |
| 189 | store: Store, |
no test coverage detected
searching dependent graphs…