@adobe/data 0.9.80 → 0.9.81
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/dist/ecs/database/database-read.type-test.d.ts +1 -0
- package/dist/ecs/database/database-read.type-test.js +195 -0
- package/dist/ecs/database/database-read.type-test.js.map +1 -0
- package/dist/ecs/database/database.d.ts +49 -0
- package/dist/ecs/database/database.js.map +1 -1
- package/dist/ecs/database/observe-derive.d.ts +11 -0
- package/dist/ecs/database/observe-derive.js +226 -0
- package/dist/ecs/database/observe-derive.js.map +1 -0
- package/dist/ecs/database/observe-derive.test.d.ts +1 -0
- package/dist/ecs/database/observe-derive.test.js +166 -0
- package/dist/ecs/database/observe-derive.test.js.map +1 -0
- package/dist/ecs/database/observed/create-observed-database.js +2 -0
- package/dist/ecs/database/observed/create-observed-database.js.map +1 -1
- package/dist/ecs/database/observed/observed-database.d.ts +1 -0
- package/dist/ecs/store/core/core.d.ts +22 -1
- package/dist/ecs/store/core/create-core.js +19 -2
- package/dist/ecs/store/core/create-core.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/references/data-lit/package.json +1 -1
- package/references/data-lit-tictactoe/package.json +1 -1
- package/references/data-react/package.json +1 -1
- package/references/data-react-hello/package.json +1 -1
- package/references/data-react-pixie/package.json +1 -1
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
// © 2026 Adobe. MIT License. See /LICENSE for details.
|
|
2
|
+
import { describe, expect, it, beforeEach, vi } from "vitest";
|
|
3
|
+
import { Database } from "./database.js";
|
|
4
|
+
const createTestDatabase = () => Database.create(Database.Plugin.create({
|
|
5
|
+
components: {
|
|
6
|
+
a: { type: "number" },
|
|
7
|
+
b: { type: "number" },
|
|
8
|
+
},
|
|
9
|
+
resources: {
|
|
10
|
+
r: { type: "number", default: 0 },
|
|
11
|
+
},
|
|
12
|
+
archetypes: {
|
|
13
|
+
Foo: ["a", "b"],
|
|
14
|
+
},
|
|
15
|
+
indexes: {
|
|
16
|
+
byA: { key: "a" },
|
|
17
|
+
},
|
|
18
|
+
transactions: {
|
|
19
|
+
makeFoo(store, args) {
|
|
20
|
+
return store.archetypes.Foo.insert(args);
|
|
21
|
+
},
|
|
22
|
+
setA(store, args) {
|
|
23
|
+
store.update(args.e, { a: args.a });
|
|
24
|
+
},
|
|
25
|
+
setB(store, args) {
|
|
26
|
+
store.update(args.e, { b: args.b });
|
|
27
|
+
},
|
|
28
|
+
setR(store, args) {
|
|
29
|
+
store.resources.r = args.r;
|
|
30
|
+
},
|
|
31
|
+
},
|
|
32
|
+
}));
|
|
33
|
+
const flush = () => new Promise((resolve) => queueMicrotask(() => resolve()));
|
|
34
|
+
describe("db.derive", () => {
|
|
35
|
+
let db;
|
|
36
|
+
let foo;
|
|
37
|
+
beforeEach(() => {
|
|
38
|
+
db = createTestDatabase();
|
|
39
|
+
foo = db.transactions.makeFoo({ a: 1, b: 10 });
|
|
40
|
+
});
|
|
41
|
+
it("emits the initial computed value synchronously on subscribe", () => {
|
|
42
|
+
const observer = vi.fn();
|
|
43
|
+
const unsubscribe = db.derive((d) => d.get(foo, "a"))(observer);
|
|
44
|
+
expect(observer).toHaveBeenCalledTimes(1);
|
|
45
|
+
expect(observer).toHaveBeenLastCalledWith(1);
|
|
46
|
+
unsubscribe();
|
|
47
|
+
});
|
|
48
|
+
it("re-emits when a component it read changes", async () => {
|
|
49
|
+
const observer = vi.fn();
|
|
50
|
+
const unsubscribe = db.derive((d) => d.get(foo, "a"))(observer);
|
|
51
|
+
db.transactions.setA({ e: foo, a: 2 });
|
|
52
|
+
await flush();
|
|
53
|
+
expect(observer).toHaveBeenCalledTimes(2);
|
|
54
|
+
expect(observer).toHaveBeenLastCalledWith(2);
|
|
55
|
+
unsubscribe();
|
|
56
|
+
});
|
|
57
|
+
it("does NOT re-emit when a component it did not read changes (projection read scopes the deps)", async () => {
|
|
58
|
+
const observer = vi.fn();
|
|
59
|
+
// reads only `a` via the projection read
|
|
60
|
+
const unsubscribe = db.derive((d) => d.read(foo, ["a"])?.a ?? -1)(observer);
|
|
61
|
+
expect(observer).toHaveBeenCalledTimes(1);
|
|
62
|
+
db.transactions.setB({ e: foo, b: 99 }); // b is unread
|
|
63
|
+
await flush();
|
|
64
|
+
expect(observer).toHaveBeenCalledTimes(1); // still only the initial emission
|
|
65
|
+
db.transactions.setA({ e: foo, a: 3 }); // a IS read
|
|
66
|
+
await flush();
|
|
67
|
+
expect(observer).toHaveBeenCalledTimes(2);
|
|
68
|
+
expect(observer).toHaveBeenLastCalledWith(3);
|
|
69
|
+
unsubscribe();
|
|
70
|
+
});
|
|
71
|
+
it("a whole-entity read re-emits on any component change of that entity", async () => {
|
|
72
|
+
const observer = vi.fn();
|
|
73
|
+
const unsubscribe = db.derive((d) => d.read(foo)?.b ?? -1)(observer);
|
|
74
|
+
db.transactions.setB({ e: foo, b: 77 });
|
|
75
|
+
await flush();
|
|
76
|
+
expect(observer).toHaveBeenLastCalledWith(77);
|
|
77
|
+
unsubscribe();
|
|
78
|
+
});
|
|
79
|
+
it("structurally dedupes: an input change that yields an equal result does not re-emit", async () => {
|
|
80
|
+
const observer = vi.fn();
|
|
81
|
+
// sign of `a` — 1 and 5 both map to "pos"
|
|
82
|
+
const unsubscribe = db.derive((d) => ((d.get(foo, "a") ?? 0) > 0 ? "pos" : "neg"))(observer);
|
|
83
|
+
expect(observer).toHaveBeenCalledTimes(1);
|
|
84
|
+
expect(observer).toHaveBeenLastCalledWith("pos");
|
|
85
|
+
db.transactions.setA({ e: foo, a: 5 }); // still positive
|
|
86
|
+
await flush();
|
|
87
|
+
expect(observer).toHaveBeenCalledTimes(1); // recomputed to "pos" === "pos" → suppressed
|
|
88
|
+
db.transactions.setA({ e: foo, a: -1 }); // flips
|
|
89
|
+
await flush();
|
|
90
|
+
expect(observer).toHaveBeenCalledTimes(2);
|
|
91
|
+
expect(observer).toHaveBeenLastCalledWith("neg");
|
|
92
|
+
unsubscribe();
|
|
93
|
+
});
|
|
94
|
+
it("re-emits on membership change of a select it read", async () => {
|
|
95
|
+
const observer = vi.fn();
|
|
96
|
+
const unsubscribe = db.derive((d) => d.select(["a"]).length)(observer);
|
|
97
|
+
expect(observer).toHaveBeenLastCalledWith(1);
|
|
98
|
+
db.transactions.makeFoo({ a: 100, b: 0 });
|
|
99
|
+
await flush();
|
|
100
|
+
expect(observer).toHaveBeenLastCalledWith(2);
|
|
101
|
+
unsubscribe();
|
|
102
|
+
});
|
|
103
|
+
it("re-emits on a change to a resource it read", async () => {
|
|
104
|
+
const observer = vi.fn();
|
|
105
|
+
const unsubscribe = db.derive((d) => d.resources.r)(observer);
|
|
106
|
+
expect(observer).toHaveBeenLastCalledWith(0);
|
|
107
|
+
db.transactions.setR({ r: 42 });
|
|
108
|
+
await flush();
|
|
109
|
+
expect(observer).toHaveBeenLastCalledWith(42);
|
|
110
|
+
unsubscribe();
|
|
111
|
+
});
|
|
112
|
+
it("re-emits on a change to an index bucket it read", async () => {
|
|
113
|
+
const observer = vi.fn();
|
|
114
|
+
const unsubscribe = db.derive((d) => d.indexes.byA.find({ a: 1 }).length)(observer);
|
|
115
|
+
expect(observer).toHaveBeenLastCalledWith(1);
|
|
116
|
+
db.transactions.makeFoo({ a: 1, b: 0 }); // another entity in bucket a=1
|
|
117
|
+
await flush();
|
|
118
|
+
expect(observer).toHaveBeenLastCalledWith(2);
|
|
119
|
+
unsubscribe();
|
|
120
|
+
});
|
|
121
|
+
it("index read is bucket-precise: a change to a different bucket does not re-run the body", () => {
|
|
122
|
+
// `compute` counts body runs; the per-dep recompute of `find` inside
|
|
123
|
+
// `affected` is separate, so this distinguishes "body re-ran, deduped"
|
|
124
|
+
// from "body never re-ran".
|
|
125
|
+
const compute = vi.fn((d) => d.indexes.byA.find({ a: 1 }).length);
|
|
126
|
+
const unsubscribe = db.derive(compute)(() => { });
|
|
127
|
+
expect(compute).toHaveBeenCalledTimes(1);
|
|
128
|
+
db.transactions.makeFoo({ a: 2, b: 0 }); // a DIFFERENT bucket (a=2)
|
|
129
|
+
expect(compute).toHaveBeenCalledTimes(1); // bucket a=1 unchanged → body not re-run
|
|
130
|
+
db.transactions.makeFoo({ a: 1, b: 0 }); // OUR bucket (a=1)
|
|
131
|
+
expect(compute).toHaveBeenCalledTimes(2); // body re-run
|
|
132
|
+
unsubscribe();
|
|
133
|
+
});
|
|
134
|
+
it("presence select is membership-precise: a value write to a selected column does not re-run the body", () => {
|
|
135
|
+
const compute = vi.fn((d) => d.select(["a"]).length);
|
|
136
|
+
const unsubscribe = db.derive(compute)(() => { });
|
|
137
|
+
expect(compute).toHaveBeenCalledTimes(1);
|
|
138
|
+
db.transactions.setA({ e: foo, a: 999 }); // value write, membership unchanged
|
|
139
|
+
expect(compute).toHaveBeenCalledTimes(1); // no archetype migration → body not re-run
|
|
140
|
+
db.transactions.makeFoo({ a: 5, b: 0 }); // new Foo → membership changes
|
|
141
|
+
expect(compute).toHaveBeenCalledTimes(2); // body re-run
|
|
142
|
+
unsubscribe();
|
|
143
|
+
});
|
|
144
|
+
it("recomputes synchronously, at most once per committed transaction", () => {
|
|
145
|
+
const observer = vi.fn();
|
|
146
|
+
const unsubscribe = db.derive((d) => d.read(foo))(observer);
|
|
147
|
+
observer.mockClear();
|
|
148
|
+
// Each transaction fires exactly one synchronous recompute at its commit
|
|
149
|
+
// boundary (no await needed) — the cadence a per-commit consumer relies on.
|
|
150
|
+
db.transactions.setA({ e: foo, a: 8 });
|
|
151
|
+
expect(observer).toHaveBeenCalledTimes(1);
|
|
152
|
+
db.transactions.setB({ e: foo, b: 9 });
|
|
153
|
+
expect(observer).toHaveBeenCalledTimes(2);
|
|
154
|
+
unsubscribe();
|
|
155
|
+
});
|
|
156
|
+
it("stops emitting after unsubscribe", async () => {
|
|
157
|
+
const observer = vi.fn();
|
|
158
|
+
const unsubscribe = db.derive((d) => d.get(foo, "a"))(observer);
|
|
159
|
+
unsubscribe();
|
|
160
|
+
observer.mockClear();
|
|
161
|
+
db.transactions.setA({ e: foo, a: 123 });
|
|
162
|
+
await flush();
|
|
163
|
+
expect(observer).not.toHaveBeenCalled();
|
|
164
|
+
});
|
|
165
|
+
});
|
|
166
|
+
//# sourceMappingURL=observe-derive.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"observe-derive.test.js","sourceRoot":"","sources":["../../../src/ecs/database/observe-derive.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import { mapEntries } from "../../../internal/object/index.js";
|
|
3
3
|
import { Observe } from "../../../observe/index.js";
|
|
4
4
|
import { observeSelectEntities } from "../observe-select-entities.js";
|
|
5
|
+
import { createDerive } from "../observe-derive.js";
|
|
5
6
|
import { createTransactionalStore } from "../transactional-store/create-transactional-store.js";
|
|
6
7
|
const addToMapSet = (key, map) => (value) => {
|
|
7
8
|
let set = map.get(key);
|
|
@@ -141,6 +142,7 @@ export function createObservedDatabase(store) {
|
|
|
141
142
|
...rest,
|
|
142
143
|
resources,
|
|
143
144
|
observe,
|
|
145
|
+
derive: createDerive(store, observeTransaction),
|
|
144
146
|
execute,
|
|
145
147
|
reset: () => {
|
|
146
148
|
store.reset();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-observed-database.js","sourceRoot":"","sources":["../../../../src/ecs/database/observed/create-observed-database.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"create-observed-database.js","sourceRoot":"","sources":["../../../../src/ecs/database/observed/create-observed-database.ts"],"names":[],"mappings":"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"}
|
|
@@ -28,6 +28,7 @@ export interface ObservedDatabase<C extends Components, R extends ResourceCompon
|
|
|
28
28
|
archetype(id: ArchetypeId): Observe<void>;
|
|
29
29
|
select<Include extends StringKeyof<C>, T extends Include>(include: readonly Include[] | ReadonlySet<string>, options?: any): Observe<readonly Entity[]>;
|
|
30
30
|
};
|
|
31
|
+
derive<T>(compute: (db: any) => T): Observe<T>;
|
|
31
32
|
readonly execute: (handler: (ctx: TransactionContext<C, R, A>) => Entity | void, options?: {
|
|
32
33
|
transient?: boolean;
|
|
33
34
|
userId?: number | string;
|
|
@@ -27,7 +27,28 @@ export interface ReadonlyCore<C extends Components = never> {
|
|
|
27
27
|
archetype: ReadonlyArchetype<RequiredComponents>;
|
|
28
28
|
row: number;
|
|
29
29
|
} | null;
|
|
30
|
-
|
|
30
|
+
/**
|
|
31
|
+
* Read exactly the components of `archetype`. A membership GATE: returns
|
|
32
|
+
* `null` unless the entity is a superset of `archetype`. The result is
|
|
33
|
+
* narrowed to the archetype's own row — reading a component outside
|
|
34
|
+
* `archetype` off the result is a compile error (use a wider archetype, the
|
|
35
|
+
* component-list overload, or `read(entity)`).
|
|
36
|
+
*/
|
|
37
|
+
read<T extends RequiredComponents>(entity: Entity, archetype: ReadonlyArchetype<T> | Archetype<T>): Readonly<T> | null;
|
|
38
|
+
/**
|
|
39
|
+
* Read a chosen subset of an entity's components.
|
|
40
|
+
*
|
|
41
|
+
* A pure PROJECTION, not a membership gate: returns `null` only when the
|
|
42
|
+
* entity does not exist. A requested component the entity does not have
|
|
43
|
+
* comes back absent — the field stays optional in the result, exactly as
|
|
44
|
+
* from the full `read(entity)`.
|
|
45
|
+
*
|
|
46
|
+
* Prefer this over `read(entity)` when only a few fields are needed: it
|
|
47
|
+
* names the exact components touched, so `db.derive` can scope its
|
|
48
|
+
* recompute to just those fields instead of the whole entity. `id` is
|
|
49
|
+
* always readable; the element type is inferred as a literal union.
|
|
50
|
+
*/
|
|
51
|
+
read<const K extends StringKeyof<EntityReadValues<C>>>(entity: Entity, components: readonly K[]): Readonly<Pick<EntityReadValues<C>, K>> | null;
|
|
31
52
|
read(entity: Entity): EntityReadValues<C> | null;
|
|
32
53
|
get<K extends StringKeyof<C>>(entity: Entity, component: K): C[K] | undefined;
|
|
33
54
|
/**
|
|
@@ -69,13 +69,30 @@ export function createCore(newComponentSchemas) {
|
|
|
69
69
|
const locateInternal = (entity) => {
|
|
70
70
|
return (entity < 0 ? nonPersistentLocationTable : persistentLocationTable).locate(entity);
|
|
71
71
|
};
|
|
72
|
-
const readEntity = (entity,
|
|
72
|
+
const readEntity = (entity, archetypeOrComponents) => {
|
|
73
73
|
const location = locateInternal(entity);
|
|
74
74
|
if (location === null) {
|
|
75
75
|
return null;
|
|
76
76
|
}
|
|
77
77
|
const archetype = archetypes[location.archetype];
|
|
78
|
-
|
|
78
|
+
// Component-list form: a pure projection — never gates on membership.
|
|
79
|
+
// Reads ONLY the requested components' columns (never the whole row); an
|
|
80
|
+
// absent component is simply omitted (the field is optional in the type).
|
|
81
|
+
if (Array.isArray(archetypeOrComponents)) {
|
|
82
|
+
const projected = {};
|
|
83
|
+
for (const component of archetypeOrComponents) {
|
|
84
|
+
const column = archetype.columns[component];
|
|
85
|
+
if (column !== undefined) {
|
|
86
|
+
projected[component] = column.get(location.row);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
return projected;
|
|
90
|
+
}
|
|
91
|
+
// Archetype form: a membership gate — null unless the entity is a
|
|
92
|
+
// superset of the archetype. The array case returned above, so a
|
|
93
|
+
// defined `archetypeOrComponents` here is an archetype.
|
|
94
|
+
const archetypeArg = archetypeOrComponents;
|
|
95
|
+
if (archetypeArg && location.archetype !== archetypeArg.id && !archetype.components.isSupersetOf(archetypeArg.components)) {
|
|
79
96
|
return null;
|
|
80
97
|
}
|
|
81
98
|
return getRowData(archetype, location.row);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-core.js","sourceRoot":"","sources":["../../../../src/ecs/store/core/create-core.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"create-core.js","sourceRoot":"","sources":["../../../../src/ecs/store/core/create-core.ts"],"names":[],"mappings":"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"}
|