From ab145bc52ee48a3f2afddb86df0420849ffa5a7c Mon Sep 17 00:00:00 2001 From: AJ Caldwell Date: Sun, 1 Sep 2024 22:42:01 -0700 Subject: [PATCH] Add enableSvelteTracking --- src/config/enableSvelteTracking.ts | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 src/config/enableSvelteTracking.ts diff --git a/src/config/enableSvelteTracking.ts b/src/config/enableSvelteTracking.ts new file mode 100644 index 00000000..79934507 --- /dev/null +++ b/src/config/enableSvelteTracking.ts @@ -0,0 +1,22 @@ +import { internal } from '@legendapp/state'; +import { configureLegendState } from '@legendapp/state/config'; +import { SvelteMap } from 'svelte/reactivity'; + +export function enableSvelteTracking() { + const { get, set } = internal; + const map = new SvelteMap(); + let version = 0; + + configureLegendState({ + observableFunctions: { + get: (node, options) => { + map.get(node); + return get(node, options); + }, + set: (node, newValue) => { + map.set(node, version++); + set(node, newValue); + }, + }, + }); +}