@adobe/data 0.9.82 → 0.9.83
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/archetype/archetype.d.ts +23 -0
- package/dist/ecs/archetype/archetype.js.map +1 -1
- package/dist/ecs/database/create-plugin.d.ts +2 -1
- package/dist/ecs/database/create-plugin.js.map +1 -1
- package/dist/ecs/database/database.d.ts +6 -5
- package/dist/ecs/database/database.js.map +1 -1
- package/dist/ecs/database/database.partition.test.d.ts +1 -0
- package/dist/ecs/database/database.partition.test.js +45 -0
- package/dist/ecs/database/database.partition.test.js.map +1 -0
- package/dist/ecs/database/database.partition.type-test.d.ts +1 -0
- package/dist/ecs/database/database.partition.type-test.js +41 -0
- package/dist/ecs/database/database.partition.type-test.js.map +1 -0
- package/dist/ecs/database/deep-extends-chain.type-test.d.ts +255 -255
- package/dist/ecs/database/index.d.ts +0 -1
- package/dist/ecs/database/index.js +0 -1
- package/dist/ecs/database/index.js.map +1 -1
- package/dist/ecs/database/transactional-store/transactional-store.d.ts +6 -5
- package/dist/ecs/store/core/core.d.ts +33 -8
- package/dist/ecs/store/core/create-core.d.ts +12 -2
- package/dist/ecs/store/core/create-core.js +141 -22
- package/dist/ecs/store/core/create-core.js.map +1 -1
- package/dist/ecs/store/core/create-core.partition.test.d.ts +1 -0
- package/dist/ecs/store/core/create-core.partition.test.js +229 -0
- package/dist/ecs/store/core/create-core.partition.test.js.map +1 -0
- package/dist/ecs/store/core/select-entities.js +87 -21
- package/dist/ecs/store/core/select-entities.js.map +1 -1
- package/dist/ecs/store/core/select-entities.partition.test.d.ts +1 -0
- package/dist/ecs/store/core/select-entities.partition.test.js +93 -0
- package/dist/ecs/store/core/select-entities.partition.test.js.map +1 -0
- package/dist/ecs/store/entity-select-options.d.ts +5 -1
- package/dist/ecs/store/partition.d.ts +63 -0
- package/dist/ecs/store/partition.js +3 -0
- package/dist/ecs/store/partition.js.map +1 -0
- package/dist/ecs/store/partition.type-test.d.ts +1 -0
- package/dist/ecs/store/partition.type-test.js +15 -0
- package/dist/ecs/store/partition.type-test.js.map +1 -0
- package/dist/ecs/store/public/create-store.d.ts +3 -1
- package/dist/ecs/store/public/create-store.js +19 -50
- package/dist/ecs/store/public/create-store.js.map +1 -1
- package/dist/ecs/store/public/create-store.partition.test.d.ts +1 -0
- package/dist/ecs/store/public/create-store.partition.test.js +111 -0
- package/dist/ecs/store/public/create-store.partition.test.js.map +1 -0
- package/dist/ecs/store/public/create-store.partition.type-test.d.ts +1 -0
- package/dist/ecs/store/public/create-store.partition.type-test.js +61 -0
- package/dist/ecs/store/public/create-store.partition.type-test.js.map +1 -0
- package/dist/ecs/store/store.d.ts +15 -10
- package/dist/ecs/store/store.js.map +1 -1
- package/dist/ecs/store/transaction-functions.d.ts +3 -3
- package/dist/schema/schema.d.ts +1 -0
- 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
|
@@ -7,7 +7,6 @@ export * from "./reconciling/reconciling-entry.js";
|
|
|
7
7
|
export * from "./observed/create-observed-database.js";
|
|
8
8
|
export * from "./observed/observed-database.js";
|
|
9
9
|
export * from "./database.js";
|
|
10
|
-
export * from "./observe-dependent-value.js";
|
|
11
10
|
export * from "./transactional-store/index.js";
|
|
12
11
|
export * from "./database-schema/index.js";
|
|
13
12
|
export type { Undoable } from "./undoable.js";
|
|
@@ -8,7 +8,6 @@ export * from "./reconciling/reconciling-entry.js";
|
|
|
8
8
|
export * from "./observed/create-observed-database.js";
|
|
9
9
|
export * from "./observed/observed-database.js";
|
|
10
10
|
export * from "./database.js";
|
|
11
|
-
export * from "./observe-dependent-value.js";
|
|
12
11
|
export * from "./transactional-store/index.js";
|
|
13
12
|
export * from "./database-schema/index.js";
|
|
14
13
|
export * from "./combine-plugins.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ecs/database/index.ts"],"names":[],"mappings":"AAAA,uDAAuD;AAEvD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,wBAAwB,CAAC;AACvC,cAAc,8CAA8C,CAAC;AAC7D,cAAc,uCAAuC,CAAC;AACtD,cAAc,oCAAoC,CAAC;AACnD,cAAc,wCAAwC,CAAC;AACvD,cAAc,iCAAiC,CAAC;AAChD,cAAc,eAAe,CAAC;AAC9B,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ecs/database/index.ts"],"names":[],"mappings":"AAAA,uDAAuD;AAEvD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,wBAAwB,CAAC;AACvC,cAAc,8CAA8C,CAAC;AAC7D,cAAc,uCAAuC,CAAC;AACtD,cAAc,oCAAoC,CAAC;AACnD,cAAc,wCAAwC,CAAC;AACvD,cAAc,iCAAiC,CAAC;AAChD,cAAc,eAAe,CAAC;AAC9B,cAAc,gCAAgC,CAAC;AAC/C,cAAc,4BAA4B,CAAC;AAE3C,cAAc,sBAAsB,CAAC"}
|
|
@@ -9,6 +9,7 @@ import { ArchetypeComponents } from "../../store/archetype-components.js";
|
|
|
9
9
|
import { FromSchemas } from "../../../schema/from-schemas.js";
|
|
10
10
|
import { Undoable } from "../undoable.js";
|
|
11
11
|
import { IndexDeclarations } from "../../store/index-types.js";
|
|
12
|
+
import { PartitionKeysOf } from "../../store/partition.js";
|
|
12
13
|
/**
|
|
13
14
|
* The first argument passed to every transaction function. Extends the full
|
|
14
15
|
* store read/write surface with `userId` — the identifier of the peer or user
|
|
@@ -18,10 +19,10 @@ import { IndexDeclarations } from "../../store/index-types.js";
|
|
|
18
19
|
*
|
|
19
20
|
* `userId` is `undefined` in local-only (no-sync) databases.
|
|
20
21
|
*/
|
|
21
|
-
export type TransactionContext<C extends Components, R extends ResourceComponents, A extends ArchetypeComponents<StringKeyof<C>>, IX extends IndexDeclarations<C> = {}> = Store<C, R, A, IX> & {
|
|
22
|
+
export type TransactionContext<C extends Components, R extends ResourceComponents, A extends ArchetypeComponents<StringKeyof<C>>, IX extends IndexDeclarations<C> = {}, PK extends string = never> = Store<C, R, A, IX, PK> & {
|
|
22
23
|
readonly userId: number | string | undefined;
|
|
23
24
|
};
|
|
24
|
-
export interface TransactionalStore<C extends Components = never, R extends ResourceComponents = never, A extends ArchetypeComponents<StringKeyof<C>> = never, IX extends IndexDeclarations<C> = {}> extends ReadonlyStore<C, R, A, IX> {
|
|
25
|
+
export interface TransactionalStore<C extends Components = never, R extends ResourceComponents = never, A extends ArchetypeComponents<StringKeyof<C>> = never, IX extends IndexDeclarations<C> = {}, PK extends string = never> extends ReadonlyStore<C, R, A, IX, PK> {
|
|
25
26
|
/**
|
|
26
27
|
* Execute a transaction on the store.
|
|
27
28
|
* The transactionFunction must NOT directly mutate archetype rows as those changes would not be captured.
|
|
@@ -29,12 +30,12 @@ export interface TransactionalStore<C extends Components = never, R extends Reso
|
|
|
29
30
|
* @param transactionFunction - A function that takes the store as an argument and performs some operations on it.
|
|
30
31
|
* @returns A promise that resolves when the transaction is complete.
|
|
31
32
|
*/
|
|
32
|
-
execute(transactionFunction: (t: TransactionContext<C, R, A>) => Entity | void, options?: {
|
|
33
|
+
execute(transactionFunction: (t: TransactionContext<C, R, A, IX, PK>) => Entity | void, options?: {
|
|
33
34
|
intermediate?: boolean;
|
|
34
35
|
userId?: number | string;
|
|
35
36
|
}): TransactionResult<C>;
|
|
36
|
-
extend<S extends Store.Schema<any, any, any>>(schema: S): TransactionalStore<C & (S extends Store.Schema<infer XC, any, any> ? FromSchemas<XC> : never), R & (S extends Store.Schema<any, infer XR, any> ? FromSchemas<XR> : never), A & (S extends Store.Schema<any, any, infer XA> ? XA : never)>;
|
|
37
|
-
transactionStore: Store<C, R, A>;
|
|
37
|
+
extend<S extends Store.Schema<any, any, any>>(schema: S): TransactionalStore<C & (S extends Store.Schema<infer XC, any, any> ? FromSchemas<XC> : never), R & (S extends Store.Schema<any, infer XR, any> ? FromSchemas<XR> : never), A & (S extends Store.Schema<any, any, infer XA> ? XA : never), IX, PK | (S extends Store.Schema<infer XC, any, any> ? PartitionKeysOf<XC> : never)>;
|
|
38
|
+
transactionStore: Store<C, R, A, IX, PK>;
|
|
38
39
|
}
|
|
39
40
|
export type TransactionInsertOperation<C> = {
|
|
40
41
|
type: "insert";
|
|
@@ -5,6 +5,7 @@ import { RequiredComponents } from "../../required-components.js";
|
|
|
5
5
|
import { StringKeyof } from "../../../types/index.js";
|
|
6
6
|
import { Components } from "../components.js";
|
|
7
7
|
import { OptionalComponents } from "../../optional-components.js";
|
|
8
|
+
import { HasPartitionKey } from "../partition.js";
|
|
8
9
|
export type EntityValues<C> = {
|
|
9
10
|
readonly [K in (RequiredComponents & StringKeyof<C & OptionalComponents>)]: (C & OptionalComponents)[K];
|
|
10
11
|
};
|
|
@@ -12,15 +13,32 @@ export type EntityReadValues<C> = RequiredComponents & {
|
|
|
12
13
|
readonly [K in StringKeyof<C & OptionalComponents> as string extends K ? never : K]?: (C & OptionalComponents)[K];
|
|
13
14
|
};
|
|
14
15
|
export type EntityUpdateValues<C> = Partial<Omit<C, "id">>;
|
|
15
|
-
export type ArchetypeQueryOptions<C extends object> = {
|
|
16
|
-
exclude?: readonly StringKeyof<C & OptionalComponents>[];
|
|
16
|
+
export type ArchetypeQueryOptions<C extends object, PK extends string = never> = {
|
|
17
|
+
exclude?: readonly StringKeyof<C & RequiredComponents & OptionalComponents>[];
|
|
18
|
+
/**
|
|
19
|
+
* Filter to archetypes whose partition component equals the given value.
|
|
20
|
+
* A partition column is const per archetype, so this is decided at
|
|
21
|
+
* archetype granularity (O(archetypes), no row scan). Keyed to the store's
|
|
22
|
+
* partition components only — a non-partition column is not const per
|
|
23
|
+
* archetype, so a value filter on it is not archetype-decidable.
|
|
24
|
+
*/
|
|
25
|
+
where?: {
|
|
26
|
+
readonly [K in Extract<PK, StringKeyof<C & OptionalComponents>>]?: (C & RequiredComponents & OptionalComponents)[K];
|
|
27
|
+
};
|
|
17
28
|
};
|
|
18
|
-
export interface ReadonlyCore<C extends Components = never> {
|
|
29
|
+
export interface ReadonlyCore<C extends Components = never, PK extends string = never> {
|
|
19
30
|
readonly componentSchemas: {
|
|
20
31
|
readonly [K in StringKeyof<C & RequiredComponents & OptionalComponents>]: Schema;
|
|
21
32
|
};
|
|
22
|
-
queryArchetypes<Include extends StringKeyof<C & RequiredComponents & OptionalComponents>>(include: readonly Include[] | ReadonlySet<string>, options?: ArchetypeQueryOptions<C>): readonly ReadonlyArchetype<RequiredComponents & Pick<C & RequiredComponents & OptionalComponents, Include>>[];
|
|
23
|
-
ensureArchetype
|
|
33
|
+
queryArchetypes<Include extends StringKeyof<C & RequiredComponents & OptionalComponents>>(include: readonly Include[] | ReadonlySet<string>, options?: ArchetypeQueryOptions<C, PK>): readonly ReadonlyArchetype<RequiredComponents & Pick<C & RequiredComponents & OptionalComponents, Include>>[];
|
|
34
|
+
ensureArchetype<const CC extends StringKeyof<C & RequiredComponents & OptionalComponents>>(components: readonly CC[] | ReadonlySet<CC>): HasPartitionKey<CC, PK> extends true ? Archetype.Router<RequiredComponents & {
|
|
35
|
+
[K in CC]: (C & RequiredComponents & OptionalComponents)[K];
|
|
36
|
+
}> : ReadonlyArchetype<RequiredComponents & {
|
|
37
|
+
[K in CC]: (C & RequiredComponents & OptionalComponents)[K];
|
|
38
|
+
}>;
|
|
39
|
+
ensureArchetype<const CC extends StringKeyof<C & RequiredComponents & OptionalComponents>>(components: readonly CC[] | ReadonlySet<CC>, partitionValues: {
|
|
40
|
+
readonly [K in Extract<CC, PK>]: (C & RequiredComponents & OptionalComponents)[K];
|
|
41
|
+
}): ReadonlyArchetype<RequiredComponents & {
|
|
24
42
|
[K in CC]: (C & RequiredComponents & OptionalComponents)[K];
|
|
25
43
|
}>;
|
|
26
44
|
locate: (entity: Entity) => {
|
|
@@ -62,9 +80,16 @@ export interface ReadonlyCore<C extends Components = never> {
|
|
|
62
80
|
/**
|
|
63
81
|
* This is the main interface for the low level ECS Core.
|
|
64
82
|
*/
|
|
65
|
-
export interface Core<C extends Components = never> extends ReadonlyCore<C> {
|
|
66
|
-
queryArchetypes<Include extends StringKeyof<C & RequiredComponents & OptionalComponents>>(include: readonly Include[] | ReadonlySet<string>, options?: ArchetypeQueryOptions<C>): readonly Archetype<RequiredComponents & Pick<C & RequiredComponents & OptionalComponents, Include>>[];
|
|
67
|
-
ensureArchetype
|
|
83
|
+
export interface Core<C extends Components = never, PK extends string = never> extends ReadonlyCore<C, PK> {
|
|
84
|
+
queryArchetypes<Include extends StringKeyof<C & RequiredComponents & OptionalComponents>>(include: readonly Include[] | ReadonlySet<string>, options?: ArchetypeQueryOptions<C, PK>): readonly Archetype<RequiredComponents & Pick<C & RequiredComponents & OptionalComponents, Include>>[];
|
|
85
|
+
ensureArchetype<const CC extends StringKeyof<C & RequiredComponents & OptionalComponents>>(components: readonly CC[] | ReadonlySet<CC>): HasPartitionKey<CC, PK> extends true ? Archetype.Router<RequiredComponents & {
|
|
86
|
+
[K in CC]: (C & RequiredComponents & OptionalComponents)[K];
|
|
87
|
+
}> : Archetype<RequiredComponents & {
|
|
88
|
+
[K in CC]: (C & RequiredComponents & OptionalComponents)[K];
|
|
89
|
+
}>;
|
|
90
|
+
ensureArchetype<const CC extends StringKeyof<C & RequiredComponents & OptionalComponents>>(components: readonly CC[] | ReadonlySet<CC>, partitionValues: {
|
|
91
|
+
readonly [K in Extract<CC, PK>]: (C & RequiredComponents & OptionalComponents)[K];
|
|
92
|
+
}): Archetype<RequiredComponents & {
|
|
68
93
|
[K in CC]: (C & RequiredComponents & OptionalComponents)[K];
|
|
69
94
|
}>;
|
|
70
95
|
locate: (entity: Entity) => {
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { Schema } from "../../../schema/index.js";
|
|
2
|
+
import { Archetype } from "../../archetype/archetype.js";
|
|
2
3
|
import { Core } from "./core.js";
|
|
3
4
|
import { Simplify, StringKeyof } from "../../../types/index.js";
|
|
4
5
|
import { ComponentSchemas } from "../../component-schemas.js";
|
|
5
6
|
import { OptionalComponents } from "../../optional-components.js";
|
|
7
|
+
import { PartitionKeysOf } from "../partition.js";
|
|
6
8
|
/**
|
|
7
9
|
* Serialization format version stamped into every `toData` snapshot and
|
|
8
10
|
* checked by `fromData`. A mismatch is thrown rather than silently
|
|
@@ -14,6 +16,14 @@ import { OptionalComponents } from "../../optional-components.js";
|
|
|
14
16
|
* changes in a way older readers cannot load.
|
|
15
17
|
*/
|
|
16
18
|
export declare const ECS_SNAPSHOT_VERSION = 1;
|
|
17
|
-
export declare function createCore<NC extends ComponentSchemas>(newComponentSchemas: NC
|
|
19
|
+
export declare function createCore<NC extends ComponentSchemas>(newComponentSchemas: NC,
|
|
20
|
+
/**
|
|
21
|
+
* Called once, right after each archetype is created (direct or lazily as a
|
|
22
|
+
* partition value-child). The Store layer uses it to decorate the
|
|
23
|
+
* archetype's `insert` in place with index maintenance — so every write
|
|
24
|
+
* path (direct insert, router routing, migration target) shares one
|
|
25
|
+
* maintained insert with no wrapper or Proxy indirection.
|
|
26
|
+
*/
|
|
27
|
+
onArchetypeCreated?: (archetype: Archetype<any>) => void): Core<Simplify<OptionalComponents & {
|
|
18
28
|
[K in StringKeyof<NC>]: Schema.ToType<NC[K]>;
|
|
19
|
-
}>>;
|
|
29
|
+
}>, PartitionKeysOf<NC>>;
|
|
@@ -15,7 +15,15 @@ import { True } from "../../../schema/true/index.js";
|
|
|
15
15
|
* changes in a way older readers cannot load.
|
|
16
16
|
*/
|
|
17
17
|
export const ECS_SNAPSHOT_VERSION = 1;
|
|
18
|
-
export function createCore(newComponentSchemas
|
|
18
|
+
export function createCore(newComponentSchemas,
|
|
19
|
+
/**
|
|
20
|
+
* Called once, right after each archetype is created (direct or lazily as a
|
|
21
|
+
* partition value-child). The Store layer uses it to decorate the
|
|
22
|
+
* archetype's `insert` in place with index maintenance — so every write
|
|
23
|
+
* path (direct insert, router routing, migration target) shares one
|
|
24
|
+
* maintained insert with no wrapper or Proxy indirection.
|
|
25
|
+
*/
|
|
26
|
+
onArchetypeCreated) {
|
|
19
27
|
const componentSchemas = {
|
|
20
28
|
id: Entity.schema,
|
|
21
29
|
nonPersistent: True.schema,
|
|
@@ -25,47 +33,126 @@ export function createCore(newComponentSchemas) {
|
|
|
25
33
|
const nonPersistentLocationTable = createEntityLocationTable(16, true);
|
|
26
34
|
const getLocationTable = (entity) => entity < 0 ? nonPersistentLocationTable : persistentLocationTable;
|
|
27
35
|
const archetypes = [];
|
|
36
|
+
// A component declared `partition: true`: every distinct runtime value gets
|
|
37
|
+
// its own archetype whose column for that component is a const buffer (zero
|
|
38
|
+
// per-row bytes). Read from the *live* component schema so components added
|
|
39
|
+
// after createCore (via the Store layer's `extend`) are detected too. Cost
|
|
40
|
+
// is only paid when *resolving* an archetype (an O(names) scan) — never on
|
|
41
|
+
// the per-row insert hot path, which goes straight to a concrete archetype.
|
|
42
|
+
const isPartition = (name) => componentSchemas[name]?.partition === true;
|
|
43
|
+
// Identity → archetype. Replaces the former linear scan (O(archetypes) per
|
|
44
|
+
// resolve) with an O(1) lookup, and — for partition components — folds the
|
|
45
|
+
// per-archetype const value into the key so value-children are distinct.
|
|
46
|
+
const archetypeByIdentity = new Map();
|
|
47
|
+
const partitionNamesIn = (sortedNames) => sortedNames.filter(isPartition);
|
|
48
|
+
const identityKey = (sortedNames, partitionValues, partitionNames) => {
|
|
49
|
+
const base = sortedNames.join(",");
|
|
50
|
+
if (partitionNames.length === 0)
|
|
51
|
+
return base;
|
|
52
|
+
// `typeof` tag guards "1"(number) vs "1"(string) collisions.
|
|
53
|
+
const vals = partitionNames
|
|
54
|
+
.map((n) => `${n}=${typeof partitionValues[n]}:${String(partitionValues[n])}`)
|
|
55
|
+
.join(",");
|
|
56
|
+
return `${base}|${vals}`;
|
|
57
|
+
};
|
|
28
58
|
const queryArchetypes = (include, options) => {
|
|
29
59
|
const includeArray = Array.from(include);
|
|
60
|
+
const where = options?.where;
|
|
30
61
|
const results = [];
|
|
31
62
|
for (const archetype of archetypes) {
|
|
32
63
|
const hasAllRequired = includeArray.every(comp => archetype.columns[comp] !== undefined);
|
|
33
64
|
const hasNoExcluded = !options?.exclude || options.exclude.every(comp => archetype.columns[comp] === undefined);
|
|
34
|
-
|
|
65
|
+
// Partition `where`: a partition column is const per archetype, so a
|
|
66
|
+
// value filter is decidable at archetype granularity (O(archetypes),
|
|
67
|
+
// no row scan). Read the const via get(0) — valid even at rowCount 0.
|
|
68
|
+
let matchesWhere = true;
|
|
69
|
+
if (where) {
|
|
70
|
+
for (const key in where) {
|
|
71
|
+
const column = archetype.columns[key];
|
|
72
|
+
if (column === undefined || column.get(0) !== where[key]) {
|
|
73
|
+
matchesWhere = false;
|
|
74
|
+
break;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
if (hasAllRequired && hasNoExcluded && matchesWhere) {
|
|
35
79
|
results.push(archetype);
|
|
36
80
|
}
|
|
37
81
|
}
|
|
38
82
|
return results;
|
|
39
83
|
};
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
84
|
+
// Concrete archetype for exactly `componentNames`, resolved by identity and
|
|
85
|
+
// created on first use. A partition component in the set requires its value
|
|
86
|
+
// in `partitionValues`; that value is baked into the column schema as
|
|
87
|
+
// `const`, so the column is a zero-per-row const buffer. This is the single
|
|
88
|
+
// internal primitive behind ensureArchetype, the router, migration, and
|
|
89
|
+
// restore — the *only* place archetypes are created.
|
|
90
|
+
const resolveArchetype = (componentNames, partitionValues) => {
|
|
91
|
+
const namesArr = Array.from(componentNames);
|
|
92
|
+
const sorted = namesArr.slice().sort();
|
|
93
|
+
const partitionNames = partitionNamesIn(sorted);
|
|
94
|
+
for (const n of partitionNames) {
|
|
95
|
+
if (partitionValues?.[n] === undefined) {
|
|
96
|
+
throw new Error(`partition component '${n}' requires a value to resolve a concrete archetype`);
|
|
47
97
|
}
|
|
48
98
|
}
|
|
99
|
+
const key = identityKey(sorted, partitionValues, partitionNames);
|
|
100
|
+
const existing = archetypeByIdentity.get(key);
|
|
101
|
+
if (existing)
|
|
102
|
+
return existing;
|
|
49
103
|
const id = archetypes.length;
|
|
50
104
|
const archetypeComponentSchemas = {};
|
|
51
105
|
let hasId = false;
|
|
52
106
|
let isNonPersistent = false;
|
|
53
|
-
for (const comp of
|
|
54
|
-
if (comp === "id")
|
|
107
|
+
for (const comp of namesArr) {
|
|
108
|
+
if (comp === "id")
|
|
55
109
|
hasId = true;
|
|
56
|
-
|
|
57
|
-
if (comp === "nonPersistent") {
|
|
110
|
+
if (comp === "nonPersistent")
|
|
58
111
|
isNonPersistent = true;
|
|
59
|
-
|
|
60
|
-
archetypeComponentSchemas[comp] =
|
|
112
|
+
const base = componentSchemas[comp];
|
|
113
|
+
archetypeComponentSchemas[comp] = isPartition(comp)
|
|
114
|
+
? { ...base, const: partitionValues[comp] }
|
|
115
|
+
: base;
|
|
61
116
|
}
|
|
62
117
|
if (!hasId) {
|
|
63
118
|
throw new Error("id is required");
|
|
64
119
|
}
|
|
65
120
|
const archetype = ARCHETYPE.createArchetype(archetypeComponentSchemas, id, isNonPersistent ? nonPersistentLocationTable : persistentLocationTable);
|
|
66
121
|
archetypes.push(archetype);
|
|
122
|
+
archetypeByIdentity.set(key, archetype);
|
|
123
|
+
onArchetypeCreated?.(archetype);
|
|
67
124
|
return archetype;
|
|
68
125
|
};
|
|
126
|
+
// Write-only handle over a partition family: reads the partition value(s)
|
|
127
|
+
// from each row, resolves (creating on first use) the concrete child, and
|
|
128
|
+
// inserts there. Its `insert` is the by-keys routing inserter.
|
|
129
|
+
const makeRouter = (componentNames) => {
|
|
130
|
+
const namesArr = Array.from(componentNames);
|
|
131
|
+
const partitionNames = partitionNamesIn(namesArr.slice().sort());
|
|
132
|
+
const partitionValuesOf = (rowData) => {
|
|
133
|
+
const values = {};
|
|
134
|
+
for (const n of partitionNames)
|
|
135
|
+
values[n] = rowData[n];
|
|
136
|
+
return values;
|
|
137
|
+
};
|
|
138
|
+
return {
|
|
139
|
+
components: new Set(namesArr),
|
|
140
|
+
// Routes to the concrete child and calls its `insert`. When the Store
|
|
141
|
+
// layer has decorated inserts with index maintenance (via
|
|
142
|
+
// onArchetypeCreated), the child's `insert` is already the maintained
|
|
143
|
+
// one — so routing needs no special-casing at the Store layer.
|
|
144
|
+
insert: (rowData) => resolveArchetype(namesArr, partitionValuesOf(rowData)).insert(rowData),
|
|
145
|
+
};
|
|
146
|
+
};
|
|
147
|
+
const ensureArchetype = ((componentNames, partitionValues) => {
|
|
148
|
+
if (partitionValues === undefined) {
|
|
149
|
+
const namesArr = Array.from(componentNames);
|
|
150
|
+
if (namesArr.some(isPartition)) {
|
|
151
|
+
return makeRouter(componentNames);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
return resolveArchetype(componentNames, partitionValues);
|
|
155
|
+
});
|
|
69
156
|
const locateInternal = (entity) => {
|
|
70
157
|
return (entity < 0 ? nonPersistentLocationTable : persistentLocationTable).locate(entity);
|
|
71
158
|
};
|
|
@@ -131,7 +218,18 @@ export function createCore(newComponentSchemas) {
|
|
|
131
218
|
(addComponents ??= []).push(key);
|
|
132
219
|
}
|
|
133
220
|
}
|
|
134
|
-
|
|
221
|
+
// A partition value change migrates the entity to a different child
|
|
222
|
+
// archetype even when the component *set* is unchanged, because the
|
|
223
|
+
// partition value is part of archetype identity.
|
|
224
|
+
let partitionValueChanged = false;
|
|
225
|
+
for (const key in components) {
|
|
226
|
+
if (isPartition(key) && currentArchetype.components.has(key)) {
|
|
227
|
+
if (components[key] !== currentArchetype.columns[key].get(currentLocation.row)) {
|
|
228
|
+
partitionValueChanged = true;
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
if (addComponents || removeComponents || partitionValueChanged) {
|
|
135
233
|
// currently changing archetype requires a set, but later we should have an edge map for better performance
|
|
136
234
|
// Alternatively we can have a faster path using addComponent and deleteComponent.
|
|
137
235
|
const newComponents = new Set(currentArchetype.components);
|
|
@@ -145,7 +243,19 @@ export function createCore(newComponentSchemas) {
|
|
|
145
243
|
newComponents.delete(comp);
|
|
146
244
|
}
|
|
147
245
|
}
|
|
148
|
-
|
|
246
|
+
// Target child's partition values: the updated value where provided,
|
|
247
|
+
// else the entity's current (const) value.
|
|
248
|
+
let newPartitionValues;
|
|
249
|
+
const targetPartitionNames = partitionNamesIn([...newComponents].sort());
|
|
250
|
+
if (targetPartitionNames.length > 0) {
|
|
251
|
+
newPartitionValues = {};
|
|
252
|
+
for (const n of targetPartitionNames) {
|
|
253
|
+
newPartitionValues[n] = (n in components)
|
|
254
|
+
? components[n]
|
|
255
|
+
: currentArchetype.columns[n]?.get(currentLocation.row);
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
newArchetype = resolveArchetype(newComponents, newPartitionValues);
|
|
149
259
|
}
|
|
150
260
|
if (newArchetype !== currentArchetype) {
|
|
151
261
|
// create a new row in the new archetype
|
|
@@ -208,9 +318,16 @@ export function createCore(newComponentSchemas) {
|
|
|
208
318
|
// reproduced on load. Only persistent archetypes carry `data`;
|
|
209
319
|
// nonPersistent ones back the negative-ID space, whose location
|
|
210
320
|
// table is never serialized, so their rows aren't persistent.
|
|
211
|
-
archetypesData: archetypes.map((archetype) =>
|
|
212
|
-
|
|
213
|
-
|
|
321
|
+
archetypesData: archetypes.map((archetype) => {
|
|
322
|
+
const componentNames = [...archetype.components];
|
|
323
|
+
const partitionNames = partitionNamesIn(componentNames.slice().sort());
|
|
324
|
+
const partitionValues = partitionNames.length > 0
|
|
325
|
+
? Object.fromEntries(partitionNames.map((n) => [n, archetype.columns[n].get(0)]))
|
|
326
|
+
: undefined;
|
|
327
|
+
return archetype.components.has("nonPersistent")
|
|
328
|
+
? { componentNames, partitionValues }
|
|
329
|
+
: { componentNames, partitionValues, data: archetype.toData(copy) };
|
|
330
|
+
})
|
|
214
331
|
}),
|
|
215
332
|
fromData: (data) => {
|
|
216
333
|
if (data.version !== ECS_SNAPSHOT_VERSION) {
|
|
@@ -236,10 +353,12 @@ export function createCore(newComponentSchemas) {
|
|
|
236
353
|
}
|
|
237
354
|
}
|
|
238
355
|
persistentLocationTable.fromData(data.entityLocationTableData);
|
|
239
|
-
for (const { componentNames, data: archetypeData } of data.archetypesData) {
|
|
356
|
+
for (const { componentNames, partitionValues, data: archetypeData } of data.archetypesData) {
|
|
240
357
|
// Recreating the archetype reserves its id and leaves it
|
|
241
358
|
// empty; only persistent entries carry data to restore.
|
|
242
|
-
|
|
359
|
+
// resolveArchetype (not the public ensureArchetype) so a
|
|
360
|
+
// partition archetype restores as its concrete value-child.
|
|
361
|
+
const archetype = resolveArchetype(componentNames, partitionValues);
|
|
243
362
|
if (archetypeData !== undefined) {
|
|
244
363
|
archetype.fromData(archetypeData);
|
|
245
364
|
}
|
|
@@ -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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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|