(state: T, previous: T)
| 1 | import type { StoreState } from '~/modules/store'; |
| 2 | |
| 3 | export function treeChanges<T extends Record<string, any> = StoreState>(state: T, previous: T) { |
| 4 | return { |
| 5 | hasChanged<K extends keyof T>(key: K): boolean { |
| 6 | return state[key] !== previous[key]; |
| 7 | }, |
| 8 | hasChangedTo<K extends keyof T>(key: K, value: T[K] | T[K][]): boolean { |
| 9 | const current = state[key]; |
| 10 | const previousValue = previous[key]; |
| 11 | |
| 12 | if (Array.isArray(value)) { |
| 13 | return value.includes(current) && !value.includes(previousValue); |
| 14 | } |
| 15 | |
| 16 | return current === value && previousValue !== value; |
| 17 | }, |
| 18 | previous, |
| 19 | }; |
| 20 | } |
no outgoing calls
no test coverage detected
searching dependent graphs…