* Creates a wrapper for methods that modify a collection (array, Map, Set). * The wrapper calls the method and marks the change tracker as modified.
( methodFn: (...args: Array<unknown>) => unknown, changeTracker: ChangeTracker<T>, markChanged: (tracker: ChangeTracker<T>) => void, )
| 233 | * The wrapper calls the method and marks the change tracker as modified. |
| 234 | */ |
| 235 | function createModifyingMethodHandler<T extends object>( |
| 236 | methodFn: (...args: Array<unknown>) => unknown, |
| 237 | changeTracker: ChangeTracker<T>, |
| 238 | markChanged: (tracker: ChangeTracker<T>) => void, |
| 239 | ): (...args: Array<unknown>) => unknown { |
| 240 | return function (...args: Array<unknown>) { |
| 241 | const result = methodFn.apply(changeTracker.copy_, args) |
| 242 | markChanged(changeTracker) |
| 243 | return result |
| 244 | } |
| 245 | } |
| 246 | |
| 247 | /** |
| 248 | * Creates handlers for Map/Set iterator methods (entries, keys, values, forEach). |
no test coverage detected
searching dependent graphs…