@simplestack/store 0.6.3 → 0.6.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,5 +1,16 @@
1
1
  # Simple Store
2
2
 
3
+ <div>
4
+ <a href='https://github.com/bholmesdev/simplestack-store' rel='nofollow'>
5
+ <img alt='stars' src='https://img.shields.io/github/stars/bholmesdev/simplestack-store?color=blue'>
6
+ </a>
7
+ <a href='https://www.npmjs.com/package/@simplestack/store' rel='nofollow'>
8
+ <img alt='npm' src='https://img.shields.io/npm/v/@simplestack/store?color=blue'>
9
+ </a>
10
+ </div>
11
+
12
+ [![I fixed Zustand's BIGGEST problem](https://img.youtube.com/vi/gXz-lLIJbMI/0.jpg)](https://www.youtube.com/watch?v=gXz-lLIJbMI)
13
+
3
14
  A simple, `select`-xcellent state management library for React.
4
15
 
5
16
  The goal: make a storage solution as powerful as Zustand or Redux, without complicated functions to set and select state.
@@ -22,7 +33,7 @@ const documentStore = store({
22
33
 
23
34
  function Document() {
24
35
  // Update your UI with the store's current state
25
- const { title, tags } = useStoreValue(documentStore);
36
+ const { title, meta: { tags } } = useStoreValue(documentStore);
26
37
  return (
27
38
  <div>
28
39
  {title} {tags.join(", ")}
@@ -68,7 +79,7 @@ const title = doc.select("title");
68
79
 
69
80
  #### useStoreValue(store)
70
81
 
71
- React hook to subscribe to a store and get its current value.
82
+ A React hook to subscribe to a store and get its current value.
72
83
 
73
84
  - Parameters: `store: Store<T> | undefined`
74
85
  - Returns: `T | undefined`
@@ -102,7 +113,7 @@ These types are exported for TypeScript users.
102
113
 
103
114
  ## Contributing
104
115
 
105
- Contributions are welcome! Please feel free to submit an issue or pull request.
116
+ We are open to contributions! **Before submitting your feature request**, please read the [CONTRIBUTING.md](CONTRIBUTING.md) for our issue and PR process.
106
117
 
107
118
  ## License
108
119
 
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,CAAC,CAAC;AAChE,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC;AAE1E;;;;GAIG;AACH,MAAM,MAAM,MAAM,CAAC,CAAC,SAAS,WAAW,GAAG,cAAc,IACtD,CAAC,GACD,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;AAIrB,MAAM,MAAM,WAAW,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,IAAI,CAAC,SAAS,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,GAC3E,CAAC,GAAG,SAAS,GAEf,MAAM,SAAS,MAAM,CAAC,GACpB,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,GAChB,MAAM,SAAS,MAAM,CAAC,GACtB,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,GAChB,CAAC,CAAC,CAAC,CAAC,CAAC;AAGR,MAAM,MAAM,QAAQ,CAAC,CAAC,SAAS,WAAW,GAAG,cAAc,IAC1D,CAAC,SAAS,WAAW,GACnB,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,KAAK,KAAK,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GACvD,SAAS,CAAC;AAEb,MAAM,MAAM,KAAK,CAAC,CAAC,SAAS,WAAW,GAAG,cAAc,IAAI;IAC3D;;;;;OAKG;IACH,GAAG,EAAE,MAAM,CAAC,CAAC;IACb;;;;;;;;OAQG;IACH,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;IACjC;;;;;;;;;;;;;;;OAeG;IACH,SAAS,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,KAAK,MAAM,IAAI,CAAC;IACxD;;;;;;;;;;;;;;OAcG;IACH,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;CACpB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;AACtD,wBAAgB,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;AACtD,wBAAgB,KAAK,CAAC,OAAO,EAAE,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;AACxD,wBAAgB,KAAK,CAAC,CAAC,SAAS,WAAW,GAAG,cAAc,EAC3D,OAAO,EAAE,CAAC,GACR,KAAK,CAAC,CAAC,CAAC,CAAC;AA4FZ,wBAAgB,MAAM,CAAC,QAAQ,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,MAAM,IAAI,CAAC,cAmBjE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,CAAC,CAAC;AAChE,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC;AAE1E;;;;GAIG;AACH,MAAM,MAAM,MAAM,CAAC,CAAC,SAAS,WAAW,GAAG,cAAc,IACtD,CAAC,GACD,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;AAIrB,MAAM,MAAM,WAAW,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,IAAI,CAAC,SAAS,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,GAC3E,CAAC,GAAG,SAAS,GAEd,MAAM,SAAS,MAAM,CAAC,GACpB,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,GAChB,MAAM,SAAS,MAAM,CAAC,GACrB,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,GAChB,CAAC,CAAC,CAAC,CAAC,CAAC;AAGV,MAAM,MAAM,QAAQ,CAAC,CAAC,SAAS,WAAW,GAAG,cAAc,IAC1D,CAAC,SAAS,WAAW,GAClB,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,KAAK,KAAK,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GACvD,SAAS,CAAC;AAEd,MAAM,MAAM,KAAK,CAAC,CAAC,SAAS,WAAW,GAAG,cAAc,IAAI;IAC3D;;;;;OAKG;IACH,GAAG,EAAE,MAAM,CAAC,CAAC;IACb;;;;;;;;OAQG;IACH,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;IACjC;;;;;;;;;;;;;;;OAeG;IACH,SAAS,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,KAAK,MAAM,IAAI,CAAC;IACxD;;;;;;;;;;;;;;OAcG;IACH,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;CACpB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;AACtD,wBAAgB,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;AACtD,wBAAgB,KAAK,CAAC,OAAO,EAAE,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;AACxD,wBAAgB,KAAK,CAAC,CAAC,SAAS,WAAW,GAAG,cAAc,EAC3D,OAAO,EAAE,CAAC,GACR,KAAK,CAAC,CAAC,CAAC,CAAC;AAoGZ,wBAAgB,MAAM,CAAC,QAAQ,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,MAAM,IAAI,CAAC,cAmBjE"}
package/dist/index.js CHANGED
@@ -6,9 +6,10 @@ export function store(initial) {
6
6
  return createStoreApi(get, set);
7
7
  }
8
8
  const createStoreApi = (get, set) => {
9
- // Track the previous value to avoid unnecessary updates when effects are triggered.
10
- let previousValue;
11
9
  const subscribe = (callback) => {
10
+ // Track the previous value to avoid unnecessary updates when effects are triggered.
11
+ // Each subscriber tracks its own previous value to avoid duplicate callbacks
12
+ let previousValue;
12
13
  return effect(() => {
13
14
  const value = get();
14
15
  if (!Object.is(previousValue, value)) {
@@ -40,6 +41,12 @@ const createStoreApi = (get, set) => {
40
41
  : setter;
41
42
  if (Object.is(prev, next))
42
43
  return state;
44
+ // Handle arrays separately to preserve array type
45
+ if (Array.isArray(state)) {
46
+ const newArray = [...state];
47
+ newArray[key] = next;
48
+ return newArray;
49
+ }
43
50
  return { ...stateObj, [key]: next };
44
51
  });
45
52
  };
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.test.d.ts","sourceRoot":"","sources":["../src/index.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,404 @@
1
+ import { describe, expect, it, vi } from "vitest";
2
+ import { store } from "./index.js";
3
+ import { nextTick } from "./test-utils.js";
4
+ describe("store", () => {
5
+ describe("primitive stores", () => {
6
+ it("should create a store with a number", () => {
7
+ const numStore = store(42);
8
+ expect(numStore.get()).toBe(42);
9
+ });
10
+ it("should create a store with a string", () => {
11
+ const strStore = store("hello");
12
+ expect(strStore.get()).toBe("hello");
13
+ });
14
+ it("should create a store with a boolean", () => {
15
+ const boolStore = store(true);
16
+ expect(boolStore.get()).toBe(true);
17
+ });
18
+ it("should create a store with null", () => {
19
+ const nullStore = store(null);
20
+ expect(nullStore.get()).toBe(null);
21
+ });
22
+ it("should create a store with undefined", () => {
23
+ const undefinedStore = store(undefined);
24
+ expect(undefinedStore.get()).toBe(undefined);
25
+ });
26
+ it("should not have select method on primitive stores", () => {
27
+ const numStore = store(42);
28
+ expect(numStore.select).toBe(undefined);
29
+ });
30
+ });
31
+ describe("set operations", () => {
32
+ it("should set a value directly", () => {
33
+ const countStore = store(0);
34
+ countStore.set(5);
35
+ expect(countStore.get()).toBe(5);
36
+ });
37
+ it("should set a value using a function", () => {
38
+ const countStore = store(0);
39
+ countStore.set((n) => n + 1);
40
+ expect(countStore.get()).toBe(1);
41
+ });
42
+ it("should set a value multiple times using a function", () => {
43
+ const countStore = store(0);
44
+ countStore.set((n) => n + 1);
45
+ countStore.set((n) => n + 1);
46
+ countStore.set((n) => n + 1);
47
+ expect(countStore.get()).toBe(3);
48
+ });
49
+ it("should replace entire object", () => {
50
+ const objStore = store({ name: "Alice", age: 30 });
51
+ objStore.set({ name: "Bob", age: 25 });
52
+ expect(objStore.get()).toEqual({ name: "Bob", age: 25 });
53
+ });
54
+ it("should update object using function", () => {
55
+ const objStore = store({ count: 0 });
56
+ objStore.set((state) => ({ ...state, count: state.count + 1 }));
57
+ expect(objStore.get()).toEqual({ count: 1 });
58
+ });
59
+ });
60
+ describe("object stores", () => {
61
+ it("should create a store with an object", () => {
62
+ const objStore = store({ name: "Alice", age: 30 });
63
+ expect(objStore.get()).toEqual({ name: "Alice", age: 30 });
64
+ });
65
+ it("should create a store with nested objects", () => {
66
+ const nestedStore = store({
67
+ user: { name: "Alice" },
68
+ settings: { theme: "dark" },
69
+ });
70
+ expect(nestedStore.get()).toEqual({
71
+ user: { name: "Alice" },
72
+ settings: { theme: "dark" },
73
+ });
74
+ });
75
+ it("should have select method on object stores", () => {
76
+ const objStore = store({ name: "Alice" });
77
+ expect(typeof objStore.select).toBe("function");
78
+ });
79
+ });
80
+ describe("array stores", () => {
81
+ it("should create a store with an array", () => {
82
+ const arrStore = store([1, 2, 3]);
83
+ expect(arrStore.get()).toEqual([1, 2, 3]);
84
+ });
85
+ it("should update array", () => {
86
+ const arrStore = store([1, 2, 3]);
87
+ arrStore.set([4, 5, 6]);
88
+ expect(arrStore.get()).toEqual([4, 5, 6]);
89
+ });
90
+ it("should have select method on array stores", () => {
91
+ const arrStore = store([1, 2, 3]);
92
+ expect(typeof arrStore.select).toBe("function");
93
+ });
94
+ });
95
+ describe("subscriptions", () => {
96
+ it("should subscribe to changes", async () => {
97
+ const countStore = store(0);
98
+ const callback = vi.fn();
99
+ countStore.subscribe(callback);
100
+ expect(callback).toHaveBeenCalledWith(0);
101
+ callback.mockClear();
102
+ countStore.set(1);
103
+ await nextTick();
104
+ expect(callback).toHaveBeenCalledWith(1);
105
+ });
106
+ it("should call multiple subscribers", async () => {
107
+ const countStore = store(0);
108
+ const callback1 = vi.fn();
109
+ const callback2 = vi.fn();
110
+ countStore.subscribe(callback1);
111
+ countStore.subscribe(callback2);
112
+ expect(callback1).toHaveBeenCalledWith(0);
113
+ expect(callback2).toHaveBeenCalledWith(0);
114
+ callback1.mockClear();
115
+ callback2.mockClear();
116
+ countStore.set(5);
117
+ await nextTick();
118
+ expect(callback1).toHaveBeenCalledWith(5);
119
+ expect(callback2).toHaveBeenCalledWith(5);
120
+ });
121
+ it("should unsubscribe", async () => {
122
+ const countStore = store(0);
123
+ const callback = vi.fn();
124
+ const unsubscribe = countStore.subscribe(callback);
125
+ expect(callback).toHaveBeenCalledWith(0);
126
+ callback.mockClear();
127
+ unsubscribe();
128
+ countStore.set(1);
129
+ await nextTick();
130
+ expect(callback).not.toHaveBeenCalled();
131
+ });
132
+ it("should not trigger callback if value is the same (Object.is)", async () => {
133
+ const countStore = store(5);
134
+ const callback = vi.fn();
135
+ countStore.subscribe(callback);
136
+ expect(callback).toHaveBeenCalledWith(5);
137
+ callback.mockClear();
138
+ countStore.set(5);
139
+ await nextTick();
140
+ expect(callback).not.toHaveBeenCalled();
141
+ });
142
+ it("should trigger on object reference change even with same content", async () => {
143
+ const objStore = store({ count: 1 });
144
+ const callback = vi.fn();
145
+ objStore.subscribe(callback);
146
+ expect(callback).toHaveBeenCalledWith({ count: 1 });
147
+ callback.mockClear();
148
+ objStore.set({ count: 1 });
149
+ await nextTick();
150
+ expect(callback).toHaveBeenCalledWith({ count: 1 });
151
+ });
152
+ it("should handle multiple sequential updates", async () => {
153
+ const countStore = store(0);
154
+ const callback = vi.fn();
155
+ countStore.subscribe(callback);
156
+ expect(callback).toHaveBeenCalledWith(0);
157
+ callback.mockClear();
158
+ countStore.set(1);
159
+ await nextTick();
160
+ countStore.set(2);
161
+ await nextTick();
162
+ countStore.set(3);
163
+ await nextTick();
164
+ expect(callback).toHaveBeenCalledTimes(3);
165
+ expect(callback).toHaveBeenNthCalledWith(1, 1);
166
+ expect(callback).toHaveBeenNthCalledWith(2, 2);
167
+ expect(callback).toHaveBeenNthCalledWith(3, 3);
168
+ });
169
+ });
170
+ describe("select", () => {
171
+ it("should select a key from an object", () => {
172
+ const objStore = store({ name: "Alice", age: 30 });
173
+ const nameStore = objStore.select("name");
174
+ expect(nameStore.get()).toBe("Alice");
175
+ });
176
+ it("should select nested keys", () => {
177
+ const docStore = store({
178
+ title: "Untitled",
179
+ meta: {
180
+ pages: 3,
181
+ tags: ["draft", "internal"],
182
+ },
183
+ });
184
+ const metaStore = docStore.select("meta");
185
+ const tagsStore = metaStore.select("tags");
186
+ expect(tagsStore.get()).toEqual(["draft", "internal"]);
187
+ });
188
+ it("should update parent when selected value changes", () => {
189
+ const objStore = store({ name: "Alice", age: 30 });
190
+ const nameStore = objStore.select("name");
191
+ nameStore.set("Bob");
192
+ expect(nameStore.get()).toBe("Bob");
193
+ expect(objStore.get()).toEqual({ name: "Bob", age: 30 });
194
+ });
195
+ it("should update selected value when parent changes", () => {
196
+ const objStore = store({ name: "Alice", age: 30 });
197
+ const nameStore = objStore.select("name");
198
+ objStore.set({ name: "Charlie", age: 25 });
199
+ expect(nameStore.get()).toBe("Charlie");
200
+ });
201
+ it("should set selected value using a function", () => {
202
+ const objStore = store({ count: 0 });
203
+ const countStore = objStore.select("count");
204
+ countStore.set((n) => n + 1);
205
+ expect(countStore.get()).toBe(1);
206
+ expect(objStore.get()).toEqual({ count: 1 });
207
+ });
208
+ it("should maintain immutability when setting selected value", () => {
209
+ const objStore = store({ name: "Alice", age: 30 });
210
+ const originalRef = objStore.get();
211
+ const nameStore = objStore.select("name");
212
+ nameStore.set("Bob");
213
+ expect(objStore.get()).not.toBe(originalRef);
214
+ expect(objStore.get()).toEqual({ name: "Bob", age: 30 });
215
+ });
216
+ it("should not update parent if selected value is the same (Object.is)", () => {
217
+ const objStore = store({ count: 5 });
218
+ const originalRef = objStore.get();
219
+ const countStore = objStore.select("count");
220
+ countStore.set(5);
221
+ expect(objStore.get()).toBe(originalRef);
222
+ });
223
+ it("should subscribe to selected value changes", async () => {
224
+ const objStore = store({ name: "Alice", age: 30 });
225
+ const nameStore = objStore.select("name");
226
+ const callback = vi.fn();
227
+ nameStore.subscribe(callback);
228
+ expect(callback).toHaveBeenCalledWith("Alice");
229
+ callback.mockClear();
230
+ nameStore.set("Bob");
231
+ await nextTick();
232
+ expect(callback).toHaveBeenCalledWith("Bob");
233
+ });
234
+ it("should trigger selected subscription when parent updates", async () => {
235
+ const objStore = store({ name: "Alice", age: 30 });
236
+ const nameStore = objStore.select("name");
237
+ const callback = vi.fn();
238
+ nameStore.subscribe(callback);
239
+ expect(callback).toHaveBeenCalledWith("Alice");
240
+ callback.mockClear();
241
+ objStore.set({ name: "Bob", age: 30 });
242
+ await nextTick();
243
+ expect(callback).toHaveBeenCalledWith("Bob");
244
+ });
245
+ it("should not trigger selected subscription if selected value unchanged", async () => {
246
+ const objStore = store({ name: "Alice", age: 30 });
247
+ const nameStore = objStore.select("name");
248
+ const callback = vi.fn();
249
+ nameStore.subscribe(callback);
250
+ expect(callback).toHaveBeenCalledWith("Alice");
251
+ callback.mockClear();
252
+ objStore.set({ name: "Alice", age: 31 });
253
+ await nextTick();
254
+ expect(callback).not.toHaveBeenCalled();
255
+ });
256
+ it("should select from array by index", () => {
257
+ const arrStore = store(["a", "b", "c"]);
258
+ const firstStore = arrStore.select(0);
259
+ expect(firstStore.get()).toBe("a");
260
+ });
261
+ it("should update array when selected index changes", () => {
262
+ const arrStore = store(["a", "b", "c"]);
263
+ const firstStore = arrStore.select(0);
264
+ firstStore.set("z");
265
+ expect(firstStore.get()).toBe("z");
266
+ expect(arrStore.get()).toEqual(["z", "b", "c"]);
267
+ });
268
+ it("should handle deeply nested selections", () => {
269
+ const store1 = store({
270
+ level1: {
271
+ level2: {
272
+ level3: {
273
+ value: 42,
274
+ },
275
+ },
276
+ },
277
+ });
278
+ const level1 = store1.select("level1");
279
+ const level2 = level1.select("level2");
280
+ const level3 = level2.select("level3");
281
+ const valueStore = level3.select("value");
282
+ expect(valueStore.get()).toBe(42);
283
+ valueStore.set(100);
284
+ expect(store1.get().level1.level2.level3.value).toBe(100);
285
+ });
286
+ });
287
+ describe("complex scenarios", () => {
288
+ it("should handle the document store example from README", () => {
289
+ const documentStore = store({
290
+ title: "Untitled",
291
+ authors: ["Ada", "Ben"],
292
+ meta: {
293
+ pages: 3,
294
+ tags: ["draft", "internal"],
295
+ },
296
+ });
297
+ const titleStore = documentStore.select("title");
298
+ const tagsStore = documentStore.select("meta").select("tags");
299
+ expect(titleStore.get()).toBe("Untitled");
300
+ expect(tagsStore.get()).toEqual(["draft", "internal"]);
301
+ titleStore.set("My Document");
302
+ tagsStore.set(["published"]);
303
+ expect(documentStore.get()).toEqual({
304
+ title: "My Document",
305
+ authors: ["Ada", "Ben"],
306
+ meta: {
307
+ pages: 3,
308
+ tags: ["published"],
309
+ },
310
+ });
311
+ });
312
+ it("should handle counter increment pattern", () => {
313
+ const counterStore = store(0);
314
+ const increment = () => counterStore.set((n) => n + 1);
315
+ const decrement = () => counterStore.set((n) => n - 1);
316
+ increment();
317
+ increment();
318
+ increment();
319
+ expect(counterStore.get()).toBe(3);
320
+ decrement();
321
+ expect(counterStore.get()).toBe(2);
322
+ });
323
+ it("should handle multiple independent selections", async () => {
324
+ const userStore = store({
325
+ name: "Alice",
326
+ age: 30,
327
+ email: "alice@example.com",
328
+ });
329
+ const nameStore = userStore.select("name");
330
+ const ageStore = userStore.select("age");
331
+ const nameCallback = vi.fn();
332
+ const ageCallback = vi.fn();
333
+ nameStore.subscribe(nameCallback);
334
+ ageStore.subscribe(ageCallback);
335
+ expect(nameCallback).toHaveBeenCalledWith("Alice");
336
+ expect(ageCallback).toHaveBeenCalledWith(30);
337
+ nameCallback.mockClear();
338
+ ageCallback.mockClear();
339
+ ageStore.set(31);
340
+ await nextTick();
341
+ expect(ageCallback).toHaveBeenCalledWith(31);
342
+ expect(nameCallback).not.toHaveBeenCalled();
343
+ });
344
+ it("should preserve other fields when updating via selection", () => {
345
+ const formStore = store({
346
+ username: "",
347
+ password: "",
348
+ rememberMe: false,
349
+ });
350
+ const usernameStore = formStore.select("username");
351
+ usernameStore.set("alice123");
352
+ expect(formStore.get()).toEqual({
353
+ username: "alice123",
354
+ password: "",
355
+ rememberMe: false,
356
+ });
357
+ });
358
+ });
359
+ describe("edge cases", () => {
360
+ it("should handle empty object", () => {
361
+ const emptyStore = store({});
362
+ expect(emptyStore.get()).toEqual({});
363
+ });
364
+ it("should handle empty array", () => {
365
+ const emptyArr = store([]);
366
+ expect(emptyArr.get()).toEqual([]);
367
+ });
368
+ it("should handle store with special characters in keys", () => {
369
+ const specialStore = store({ "my-key": "value", "another.key": 123 });
370
+ const myKeyStore = specialStore.select("my-key");
371
+ expect(myKeyStore.get()).toBe("value");
372
+ });
373
+ it("should handle zero as a valid value", () => {
374
+ const zeroStore = store(0);
375
+ expect(zeroStore.get()).toBe(0);
376
+ const objWithZero = store({ count: 0 });
377
+ const countStore = objWithZero.select("count");
378
+ expect(countStore.get()).toBe(0);
379
+ });
380
+ it("should handle empty string as a valid value", () => {
381
+ const emptyStrStore = store("");
382
+ expect(emptyStrStore.get()).toBe("");
383
+ });
384
+ it("should handle false as a valid value", () => {
385
+ const falseStore = store(false);
386
+ expect(falseStore.get()).toBe(false);
387
+ });
388
+ it("should handle NaN", () => {
389
+ const nanStore = store(Number.NaN);
390
+ // NaN !== NaN, so Object.is(NaN, NaN) is true
391
+ expect(Number.isNaN(nanStore.get())).toBe(true);
392
+ });
393
+ it("should handle objects with symbol keys", () => {
394
+ const sym = Symbol("test");
395
+ const symbolStore = store({ [sym]: "value", normal: "test" });
396
+ expect(symbolStore.get()[sym]).toBe("value");
397
+ });
398
+ it("should handle array with mixed types", () => {
399
+ const mixedArr = store([1, "two", { three: 3 }, null, undefined]);
400
+ expect(mixedArr.get()).toEqual([1, "two", { three: 3 }, null, undefined]);
401
+ });
402
+ });
403
+ });
404
+ //# sourceMappingURL=index.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../src/index.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=integration.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"integration.test.d.ts","sourceRoot":"","sources":["../src/integration.test.tsx"],"names":[],"mappings":""}