@praxisjs/store 2.0.4 → 2.0.6
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/CHANGELOG.md +40 -0
- package/dist/apply-plugins.d.ts.map +1 -1
- package/dist/apply-plugins.js +71 -38
- package/dist/apply-plugins.js.map +1 -1
- package/dist/decorators.d.ts.map +1 -1
- package/dist/decorators.js +26 -20
- package/dist/decorators.js.map +1 -1
- package/package.json +14 -5
- package/src/apply-plugins.ts +72 -38
- package/src/decorators.ts +25 -24
- package/dist/__tests__/create-store.test.d.ts +0 -2
- package/dist/__tests__/create-store.test.d.ts.map +0 -1
- package/dist/__tests__/create-store.test.js +0 -226
- package/dist/__tests__/create-store.test.js.map +0 -1
- package/dist/__tests__/decorators.test.d.ts +0 -2
- package/dist/__tests__/decorators.test.d.ts.map +0 -1
- package/dist/__tests__/decorators.test.js +0 -162
- package/dist/__tests__/decorators.test.js.map +0 -1
- package/dist/__tests__/plugins.test.d.ts +0 -2
- package/dist/__tests__/plugins.test.d.ts.map +0 -1
- package/dist/__tests__/plugins.test.js +0 -358
- package/dist/__tests__/plugins.test.js.map +0 -1
- package/dist/create-store.d.ts +0 -7
- package/dist/create-store.d.ts.map +0 -1
- package/dist/create-store.js +0 -127
- package/dist/create-store.js.map +0 -1
- package/src/__tests__/create-store.test.ts +0 -282
- package/src/__tests__/decorators.test.ts +0 -197
- package/src/__tests__/plugins.test.ts +0 -445
- package/src/create-store.ts +0 -134
- package/tsconfig.json +0 -8
|
@@ -1,226 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect } from "vitest";
|
|
2
|
-
import { effect } from "@praxisjs/core/internal";
|
|
3
|
-
import { createStore } from "../create-store";
|
|
4
|
-
function makeCounter() {
|
|
5
|
-
return createStore({
|
|
6
|
-
count: 0,
|
|
7
|
-
step: 1,
|
|
8
|
-
increment() {
|
|
9
|
-
this.count +=
|
|
10
|
-
this.step;
|
|
11
|
-
},
|
|
12
|
-
decrement() {
|
|
13
|
-
this.count--;
|
|
14
|
-
},
|
|
15
|
-
})();
|
|
16
|
-
}
|
|
17
|
-
describe("createStore", () => {
|
|
18
|
-
it("returns a factory that provides the store proxy", () => {
|
|
19
|
-
const store = makeCounter();
|
|
20
|
-
expect(store).toBeDefined();
|
|
21
|
-
});
|
|
22
|
-
it("reads signal state via property access", () => {
|
|
23
|
-
const store = makeCounter();
|
|
24
|
-
expect(store.count).toBe(0);
|
|
25
|
-
});
|
|
26
|
-
it("sets signal state via property assignment", () => {
|
|
27
|
-
const store = makeCounter();
|
|
28
|
-
store.count = 5;
|
|
29
|
-
expect(store.count).toBe(5);
|
|
30
|
-
});
|
|
31
|
-
it("calls methods bound to the store proxy", () => {
|
|
32
|
-
const store = makeCounter();
|
|
33
|
-
store.increment();
|
|
34
|
-
expect(store.count).toBe(1);
|
|
35
|
-
});
|
|
36
|
-
it("$state returns a plain snapshot of all state", () => {
|
|
37
|
-
const store = makeCounter();
|
|
38
|
-
const state = store.$state();
|
|
39
|
-
expect(state).toEqual({ count: 0, step: 1 });
|
|
40
|
-
});
|
|
41
|
-
it("$patch updates multiple keys at once", () => {
|
|
42
|
-
const store = makeCounter();
|
|
43
|
-
store.$patch({ count: 10, step: 5 });
|
|
44
|
-
expect(store.count).toBe(10);
|
|
45
|
-
expect(store.step).toBe(5);
|
|
46
|
-
});
|
|
47
|
-
it("$reset restores initial values", () => {
|
|
48
|
-
const store = makeCounter();
|
|
49
|
-
store.count = 99;
|
|
50
|
-
store.$reset();
|
|
51
|
-
expect(store.count).toBe(0);
|
|
52
|
-
});
|
|
53
|
-
it("$subscribe calls listener with state snapshot on each change", () => {
|
|
54
|
-
const store = makeCounter();
|
|
55
|
-
const snapshots = [];
|
|
56
|
-
store.$subscribe((s) => snapshots.push(s.count));
|
|
57
|
-
store.count = 42;
|
|
58
|
-
store.count = 99;
|
|
59
|
-
expect(snapshots).toEqual([0, 42, 99]);
|
|
60
|
-
});
|
|
61
|
-
it("definition getters are exposed on the store proxy", () => {
|
|
62
|
-
const definition = {
|
|
63
|
-
a: 2,
|
|
64
|
-
b: 3,
|
|
65
|
-
get sum() { return this.a + this.b; },
|
|
66
|
-
};
|
|
67
|
-
const store = createStore(definition)();
|
|
68
|
-
expect(store.sum).toBe(5);
|
|
69
|
-
});
|
|
70
|
-
it("setting a non-signal key via proxy returns false silently", () => {
|
|
71
|
-
const store = makeCounter();
|
|
72
|
-
// symbol keys are skipped — should not throw
|
|
73
|
-
expect(() => {
|
|
74
|
-
store[Symbol("noop")] = 1;
|
|
75
|
-
}).not.toThrow();
|
|
76
|
-
});
|
|
77
|
-
it("$patch ignores unknown keys", () => {
|
|
78
|
-
const store = makeCounter();
|
|
79
|
-
expect(() => { store.$patch({ unknownKey: 123 }); }).not.toThrow();
|
|
80
|
-
expect(store.count).toBe(0);
|
|
81
|
-
});
|
|
82
|
-
it("setting a non-signal string key via proxy returns false", () => {
|
|
83
|
-
const store = makeCounter();
|
|
84
|
-
// "nonExistent" is a string key but is not a signal — set returns false
|
|
85
|
-
const result = Reflect.set(store, "nonExistent", 42);
|
|
86
|
-
expect(result).toBe(false);
|
|
87
|
-
});
|
|
88
|
-
it("getting an unknown key returns undefined", () => {
|
|
89
|
-
const store = makeCounter();
|
|
90
|
-
const val = store.doesNotExist;
|
|
91
|
-
expect(val).toBeUndefined();
|
|
92
|
-
});
|
|
93
|
-
it("multiple $subscribe listeners all receive updates", () => {
|
|
94
|
-
const store = makeCounter();
|
|
95
|
-
const snapshotsA = [];
|
|
96
|
-
const snapshotsB = [];
|
|
97
|
-
store.$subscribe((s) => snapshotsA.push(s.count));
|
|
98
|
-
store.$subscribe((s) => snapshotsB.push(s.count));
|
|
99
|
-
store.count = 5;
|
|
100
|
-
expect(snapshotsA).toContain(5);
|
|
101
|
-
expect(snapshotsB).toContain(5);
|
|
102
|
-
});
|
|
103
|
-
it("$subscribe unsubscribe stops delivery to that listener", () => {
|
|
104
|
-
const store = makeCounter();
|
|
105
|
-
const snapshots = [];
|
|
106
|
-
const unsub = store.$subscribe((s) => snapshots.push(s.count));
|
|
107
|
-
store.count = 1;
|
|
108
|
-
unsub();
|
|
109
|
-
store.count = 2;
|
|
110
|
-
// After unsub, count=2 should NOT be in snapshots
|
|
111
|
-
expect(snapshots).toContain(1);
|
|
112
|
-
expect(snapshots).not.toContain(2);
|
|
113
|
-
});
|
|
114
|
-
it("getting via a symbol key returns undefined", () => {
|
|
115
|
-
const store = makeCounter();
|
|
116
|
-
const sym = Symbol("test");
|
|
117
|
-
const val = Reflect.get(store, sym);
|
|
118
|
-
expect(val).toBeUndefined();
|
|
119
|
-
});
|
|
120
|
-
it("$state() snapshot includes getter values", () => {
|
|
121
|
-
const store = createStore({
|
|
122
|
-
a: 2,
|
|
123
|
-
b: 3,
|
|
124
|
-
get sum() {
|
|
125
|
-
return this.a + this.b;
|
|
126
|
-
},
|
|
127
|
-
})();
|
|
128
|
-
// $state returns only signal-backed fields (not getters)
|
|
129
|
-
const state = store.$state();
|
|
130
|
-
expect(state).toHaveProperty("a", 2);
|
|
131
|
-
expect(state).toHaveProperty("b", 3);
|
|
132
|
-
});
|
|
133
|
-
it("$patch({ count: undefined }) — skips that key (count unchanged)", () => {
|
|
134
|
-
const store = makeCounter();
|
|
135
|
-
store.$patch({ count: undefined });
|
|
136
|
-
expect(store.count).toBe(0);
|
|
137
|
-
});
|
|
138
|
-
it("$patch({ count: null }) — sets count to null (valid update)", () => {
|
|
139
|
-
const store = makeCounter();
|
|
140
|
-
store.$patch({ count: null });
|
|
141
|
-
expect(store.count).toBeNull();
|
|
142
|
-
});
|
|
143
|
-
it("getter reads two signals — getter result updates when either signal changes", () => {
|
|
144
|
-
// Use a non-enumerable getter so it is NOT captured by Object.entries
|
|
145
|
-
// and instead goes through the live desc.get.call(store) path.
|
|
146
|
-
const definition = { a: 10, b: 20 };
|
|
147
|
-
Object.defineProperty(definition, "total", {
|
|
148
|
-
enumerable: false,
|
|
149
|
-
configurable: true,
|
|
150
|
-
get() {
|
|
151
|
-
return this.a +
|
|
152
|
-
this.b;
|
|
153
|
-
},
|
|
154
|
-
});
|
|
155
|
-
const store = createStore(definition)();
|
|
156
|
-
const s = store;
|
|
157
|
-
expect(s.total).toBe(30);
|
|
158
|
-
Reflect.set(store, "a", 5);
|
|
159
|
-
expect(s.total).toBe(25);
|
|
160
|
-
Reflect.set(store, "b", 5);
|
|
161
|
-
expect(s.total).toBe(10);
|
|
162
|
-
});
|
|
163
|
-
it("$subscribe listener called with the correct new value", () => {
|
|
164
|
-
const store = makeCounter();
|
|
165
|
-
const received = [];
|
|
166
|
-
store.$subscribe((s) => received.push(s.count));
|
|
167
|
-
store.count = 7;
|
|
168
|
-
expect(received).toContain(7);
|
|
169
|
-
});
|
|
170
|
-
it("$reset restores all signals to initial values after multiple mutations", () => {
|
|
171
|
-
const store = makeCounter();
|
|
172
|
-
store.count = 10;
|
|
173
|
-
store.step = 5;
|
|
174
|
-
store.$reset();
|
|
175
|
-
expect(store.count).toBe(0);
|
|
176
|
-
expect(store.step).toBe(1);
|
|
177
|
-
});
|
|
178
|
-
it("two store factory calls with same definition — produce independent stores", () => {
|
|
179
|
-
const definition = { count: 0 };
|
|
180
|
-
const storeA = createStore({ ...definition })();
|
|
181
|
-
const storeB = createStore({ ...definition })();
|
|
182
|
-
storeA.count = 42;
|
|
183
|
-
expect(storeA.count).toBe(42);
|
|
184
|
-
expect(storeB.count).toBe(0); // independent — storeB unaffected
|
|
185
|
-
});
|
|
186
|
-
});
|
|
187
|
-
describe("createStore — grouped updates and stable actions", () => {
|
|
188
|
-
function makeStore() {
|
|
189
|
-
return createStore({ a: 1, b: 2, c: 3, bump() { return; } })();
|
|
190
|
-
}
|
|
191
|
-
function countRuns(read) {
|
|
192
|
-
let runs = 0;
|
|
193
|
-
effect(() => {
|
|
194
|
-
read();
|
|
195
|
-
runs++;
|
|
196
|
-
});
|
|
197
|
-
runs = 0;
|
|
198
|
-
return () => runs;
|
|
199
|
-
}
|
|
200
|
-
it("returns the same wrapper for an action on every read", () => {
|
|
201
|
-
const s = makeStore();
|
|
202
|
-
expect(s.bump).toBe(s.bump);
|
|
203
|
-
});
|
|
204
|
-
it("$patch re-runs dependents once for several keys", () => {
|
|
205
|
-
const s = makeStore();
|
|
206
|
-
const runs = countRuns(() => { void s.a; void s.b; void s.c; });
|
|
207
|
-
s.$patch({ a: 10, b: 20, c: 30 });
|
|
208
|
-
expect(runs()).toBe(1);
|
|
209
|
-
expect([s.a, s.b, s.c]).toEqual([10, 20, 30]);
|
|
210
|
-
});
|
|
211
|
-
it("$reset re-runs dependents once for several keys", () => {
|
|
212
|
-
const s = makeStore();
|
|
213
|
-
s.$patch({ a: 10, b: 20, c: 30 });
|
|
214
|
-
const runs = countRuns(() => { void s.a; void s.b; void s.c; });
|
|
215
|
-
s.$reset();
|
|
216
|
-
expect(runs()).toBe(1);
|
|
217
|
-
expect([s.a, s.b, s.c]).toEqual([1, 2, 3]);
|
|
218
|
-
});
|
|
219
|
-
it("writing a key inside an effect does not subscribe that effect to it", () => {
|
|
220
|
-
const s = makeStore();
|
|
221
|
-
const runs = countRuns(() => { s.a = 5; });
|
|
222
|
-
s.a = 99;
|
|
223
|
-
expect(runs()).toBe(0);
|
|
224
|
-
});
|
|
225
|
-
});
|
|
226
|
-
//# sourceMappingURL=create-store.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"create-store.test.js","sourceRoot":"","sources":["../../src/__tests__/create-store.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"decorators.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/decorators.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,162 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect } from "vitest";
|
|
2
|
-
import { Storable, Store, store, ReactiveStore } from "../decorators";
|
|
3
|
-
describe("@Storable decorator", () => {
|
|
4
|
-
it("registers the class without throwing", () => {
|
|
5
|
-
class CounterStore extends ReactiveStore {
|
|
6
|
-
value = 0;
|
|
7
|
-
}
|
|
8
|
-
expect(() => { Storable()(CounterStore, {}); }).not.toThrow();
|
|
9
|
-
});
|
|
10
|
-
it("returns void and the original class remains directly instantiable", () => {
|
|
11
|
-
class MyStore extends ReactiveStore {
|
|
12
|
-
value = 42;
|
|
13
|
-
}
|
|
14
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
15
|
-
const result = Storable()(MyStore, {});
|
|
16
|
-
expect(result).toBeUndefined();
|
|
17
|
-
expect(() => new MyStore()).not.toThrow();
|
|
18
|
-
expect(new MyStore().value).toBe(42);
|
|
19
|
-
});
|
|
20
|
-
it("does not expose dirty-state internals on store instances", () => {
|
|
21
|
-
class MyStore extends ReactiveStore {
|
|
22
|
-
}
|
|
23
|
-
expect(Object.prototype.hasOwnProperty.call(new MyStore(), "_stateDirty"))
|
|
24
|
-
.toBe(false);
|
|
25
|
-
});
|
|
26
|
-
});
|
|
27
|
-
function makeFieldCtx(name) {
|
|
28
|
-
const initializers = [];
|
|
29
|
-
return {
|
|
30
|
-
ctx: {
|
|
31
|
-
name,
|
|
32
|
-
kind: "field",
|
|
33
|
-
addInitializer(fn) { initializers.push(fn); },
|
|
34
|
-
},
|
|
35
|
-
run(instance) { initializers.forEach((fn) => { fn.call(instance); }); },
|
|
36
|
-
};
|
|
37
|
-
}
|
|
38
|
-
describe("@Store field decorator", () => {
|
|
39
|
-
it("injects a singleton store instance via getter", () => {
|
|
40
|
-
class AppStore extends ReactiveStore {
|
|
41
|
-
name = "app";
|
|
42
|
-
}
|
|
43
|
-
Storable()(AppStore, {});
|
|
44
|
-
const { ctx, run } = makeFieldCtx("store");
|
|
45
|
-
Store(AppStore)(undefined, ctx);
|
|
46
|
-
const instance = {};
|
|
47
|
-
run(instance);
|
|
48
|
-
expect(instance.store).toBeInstanceOf(AppStore);
|
|
49
|
-
expect(instance.store.name).toBe("app");
|
|
50
|
-
});
|
|
51
|
-
it("returns the same instance on repeated access (singleton)", () => {
|
|
52
|
-
class SharedStore extends ReactiveStore {
|
|
53
|
-
}
|
|
54
|
-
Storable()(SharedStore, {});
|
|
55
|
-
const { ctx, run } = makeFieldCtx("sharedStore");
|
|
56
|
-
Store(SharedStore)(undefined, ctx);
|
|
57
|
-
const a = {};
|
|
58
|
-
const b = {};
|
|
59
|
-
run(a);
|
|
60
|
-
run(b);
|
|
61
|
-
expect(a.sharedStore).toBe(b.sharedStore);
|
|
62
|
-
});
|
|
63
|
-
it("@Store(ClassWithoutStorable) — creates a new instance (no crash, no pre-registration needed)", () => {
|
|
64
|
-
class NotRegistered {
|
|
65
|
-
value = 99;
|
|
66
|
-
}
|
|
67
|
-
const { ctx, run } = makeFieldCtx("svc");
|
|
68
|
-
Store(NotRegistered)(undefined, ctx);
|
|
69
|
-
const instance = {};
|
|
70
|
-
run(instance);
|
|
71
|
-
expect(instance.svc).toBeInstanceOf(NotRegistered);
|
|
72
|
-
});
|
|
73
|
-
it("two @Store fields on the same class each get the correct store type", () => {
|
|
74
|
-
class StoreAlpha extends ReactiveStore {
|
|
75
|
-
kind = "alpha";
|
|
76
|
-
}
|
|
77
|
-
class StoreBeta extends ReactiveStore {
|
|
78
|
-
kind = "beta";
|
|
79
|
-
}
|
|
80
|
-
Storable()(StoreAlpha, {});
|
|
81
|
-
Storable()(StoreBeta, {});
|
|
82
|
-
const { ctx: ctxA, run: runA } = makeFieldCtx("alpha");
|
|
83
|
-
const { ctx: ctxB, run: runB } = makeFieldCtx("beta");
|
|
84
|
-
Store(StoreAlpha)(undefined, ctxA);
|
|
85
|
-
Store(StoreBeta)(undefined, ctxB);
|
|
86
|
-
const instance = {};
|
|
87
|
-
runA(instance);
|
|
88
|
-
runB(instance);
|
|
89
|
-
expect(instance.alpha).toBeInstanceOf(StoreAlpha);
|
|
90
|
-
expect(instance.beta).toBeInstanceOf(StoreBeta);
|
|
91
|
-
expect(instance.alpha.kind).toBe("alpha");
|
|
92
|
-
expect(instance.beta.kind).toBe("beta");
|
|
93
|
-
});
|
|
94
|
-
it("singleton is shared across multiple component instances", () => {
|
|
95
|
-
class CounterStore extends ReactiveStore {
|
|
96
|
-
count = 0;
|
|
97
|
-
}
|
|
98
|
-
Storable()(CounterStore, {});
|
|
99
|
-
const { ctx, run } = makeFieldCtx("counter");
|
|
100
|
-
Store(CounterStore)(undefined, ctx);
|
|
101
|
-
const obj1 = {};
|
|
102
|
-
const obj2 = {};
|
|
103
|
-
run(obj1);
|
|
104
|
-
run(obj2);
|
|
105
|
-
expect(obj1.counter).toBe(obj2.counter);
|
|
106
|
-
});
|
|
107
|
-
it("shares the same instance as store() (same registry)", () => {
|
|
108
|
-
class FlagsStore extends ReactiveStore {
|
|
109
|
-
enabled = true;
|
|
110
|
-
}
|
|
111
|
-
Storable()(FlagsStore, {});
|
|
112
|
-
const { ctx, run } = makeFieldCtx("flags");
|
|
113
|
-
Store(FlagsStore)(undefined, ctx);
|
|
114
|
-
const obj = {};
|
|
115
|
-
run(obj);
|
|
116
|
-
expect(obj.flags).toBe(store(FlagsStore));
|
|
117
|
-
});
|
|
118
|
-
});
|
|
119
|
-
// ── store() ────────────────────────────────────────────────────────────────
|
|
120
|
-
describe("store()", () => {
|
|
121
|
-
it("returns a store instance without requiring a class field", () => {
|
|
122
|
-
class ProfileStore extends ReactiveStore {
|
|
123
|
-
name = "alice";
|
|
124
|
-
}
|
|
125
|
-
Storable()(ProfileStore, {});
|
|
126
|
-
const instance = store(ProfileStore);
|
|
127
|
-
expect(instance).toBeInstanceOf(ProfileStore);
|
|
128
|
-
expect(instance.name).toBe("alice");
|
|
129
|
-
});
|
|
130
|
-
it("returns the same singleton instance on repeated calls", () => {
|
|
131
|
-
class TimerStore extends ReactiveStore {
|
|
132
|
-
ticks = 0;
|
|
133
|
-
}
|
|
134
|
-
Storable()(TimerStore, {});
|
|
135
|
-
expect(store(TimerStore)).toBe(store(TimerStore));
|
|
136
|
-
});
|
|
137
|
-
it("lazily creates the instance on first call", () => {
|
|
138
|
-
class LazyStore extends ReactiveStore {
|
|
139
|
-
ready = false;
|
|
140
|
-
}
|
|
141
|
-
Storable()(LazyStore, {});
|
|
142
|
-
const instance = store(LazyStore);
|
|
143
|
-
expect(instance).toBeInstanceOf(LazyStore);
|
|
144
|
-
});
|
|
145
|
-
it("works without @Storable — creates a plain instance", () => {
|
|
146
|
-
class BareStore extends ReactiveStore {
|
|
147
|
-
value = 7;
|
|
148
|
-
}
|
|
149
|
-
const instance = store(BareStore);
|
|
150
|
-
expect(instance).toBeInstanceOf(BareStore);
|
|
151
|
-
expect(instance.value).toBe(7);
|
|
152
|
-
});
|
|
153
|
-
it("mutations on the returned instance are reflected on subsequent calls", () => {
|
|
154
|
-
class ThemeStore extends ReactiveStore {
|
|
155
|
-
dark = false;
|
|
156
|
-
}
|
|
157
|
-
Storable()(ThemeStore, {});
|
|
158
|
-
store(ThemeStore).dark = true;
|
|
159
|
-
expect(store(ThemeStore).dark).toBe(true);
|
|
160
|
-
});
|
|
161
|
-
});
|
|
162
|
-
//# sourceMappingURL=decorators.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"decorators.test.js","sourceRoot":"","sources":["../../src/__tests__/decorators.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"plugins.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/plugins.test.ts"],"names":[],"mappings":""}
|