@adobe/data 0.9.5 → 0.9.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/ecs/database/create-plugin-cryos-pattern.test.d.ts +3 -0
- package/ecs/database/create-plugin-cryos-pattern.test.js +83 -0
- package/ecs/database/create-plugin-cryos-pattern.test.js.map +1 -0
- package/ecs/database/create-plugin-graphics.test.d.ts +93 -0
- package/ecs/database/create-plugin-graphics.test.js +135 -0
- package/ecs/database/create-plugin-graphics.test.js.map +1 -0
- package/ecs/database/create-plugin-type.type-test.js +563 -0
- package/ecs/database/create-plugin-type.type-test.js.map +1 -0
- package/ecs/database/create-plugin-type.type.test.js +563 -0
- package/ecs/database/create-plugin-type.type.test.js.map +1 -0
- package/ecs/database/database.d.ts +6 -1
- package/ecs/database/database.js.map +1 -1
- package/ecs/database/experimental-action-types.js +275 -0
- package/ecs/database/experimental-action-types.js.map +1 -0
- package/ecs/database/from-plugin.type-test.js +180 -0
- package/ecs/database/from-plugin.type-test.js.map +1 -0
- package/ecs/database/plugin-types.js +5 -0
- package/ecs/database/plugin-types.js.map +1 -0
- package/ecs/database/type-investigation.test.js +54 -0
- package/ecs/database/type-investigation.test.js.map +1 -0
- package/ecs/store/core/create-core.test.js +21 -0
- package/ecs/store/core/create-core.test.js.map +1 -1
- package/package.json +1 -1
- package/tsconfig.tsbuildinfo +1 -1
- package/typed-buffer/create-array-buffer.js +10 -0
- package/typed-buffer/create-array-buffer.js.map +1 -1
- package/typed-buffer/create-array-buffer.test.js +50 -0
- package/typed-buffer/create-array-buffer.test.js.map +1 -1
- package/typed-buffer/create-const-buffer.js +3 -0
- package/typed-buffer/create-const-buffer.js.map +1 -1
- package/typed-buffer/create-const-buffer.test.js +24 -0
- package/typed-buffer/create-const-buffer.test.js.map +1 -1
- package/typed-buffer/create-number-buffer.js +4 -0
- package/typed-buffer/create-number-buffer.js.map +1 -1
- package/typed-buffer/create-number-buffer.test.js +38 -0
- package/typed-buffer/create-number-buffer.test.js.map +1 -1
- package/typed-buffer/create-struct-buffer.js +11 -0
- package/typed-buffer/create-struct-buffer.js.map +1 -1
- package/typed-buffer/create-struct-buffer.test.js +60 -0
- package/typed-buffer/create-struct-buffer.test.js.map +1 -1
- package/typed-buffer/typed-buffer.d.ts +2 -0
- package/typed-buffer/typed-buffer.js.map +1 -1
- package/assembly/package.json +0 -1
- package/blob/package.json +0 -1
- package/cache/package.json +0 -1
- package/debug-type-test.js +0 -12
- package/debug-type-test.js.map +0 -1
- package/ecs/database/archetype-type-safety-test.d.ts +0 -21
- package/ecs/database/archetype-type-safety-test.js +0 -36
- package/ecs/database/archetype-type-safety-test.js.map +0 -1
- package/ecs/database/create-database-schema-test.js +0 -150
- package/ecs/database/create-database-schema-test.js.map +0 -1
- package/ecs/database/create-plugin-v2.d.ts +0 -79
- package/ecs/database/create-plugin-v2.js +0 -68
- package/ecs/database/create-plugin-v2.js.map +0 -1
- package/ecs/database/create-plugin-v2.test.js +0 -362
- package/ecs/database/create-plugin-v2.test.js.map +0 -1
- package/ecs/database/create-plugin.OLD.d.ts +0 -138
- package/ecs/database/create-plugin.OLD.js +0 -59
- package/ecs/database/create-plugin.OLD.js.map +0 -1
- package/ecs/database/database-with-systems.test.js +0 -292
- package/ecs/database/database-with-systems.test.js.map +0 -1
- package/ecs/database/database.plugin.create.test.OLD.js +0 -601
- package/ecs/database/database.plugin.create.test.OLD.js.map +0 -1
- package/ecs/database/database.plugin.create.test.js +0 -321
- package/ecs/database/database.plugin.create.test.js.map +0 -1
- package/ecs/database/database.plugin.test.d.ts +0 -1
- package/ecs/database/database.plugin.test.js +0 -90
- package/ecs/database/database.plugin.test.js.map +0 -1
- package/ecs/database/database.test copy.d.ts +0 -1
- package/ecs/database/database.test copy.js +0 -199
- package/ecs/database/database.test copy.js.map +0 -1
- package/ecs/database/multi-param-inference-poc.test.d.ts +0 -1
- package/ecs/database/multi-param-inference-poc.test.js +0 -96
- package/ecs/database/multi-param-inference-poc.test.js.map +0 -1
- package/ecs/database/old-plugin-create-with-dependencies-array.d.ts +0 -61
- package/ecs/database/old-plugin-create-with-dependencies-array.js +0 -76
- package/ecs/database/old-plugin-create-with-dependencies-array.js.map +0 -1
- package/ecs/database/overload-inference-poc.test.d.ts +0 -1
- package/ecs/database/overload-inference-poc.test.js +0 -109
- package/ecs/database/overload-inference-poc.test.js.map +0 -1
- package/ecs/database/schedule-type-check-demo.d.ts +0 -10
- package/ecs/database/schedule-type-check-demo.js +0 -71
- package/ecs/database/schedule-type-check-demo.js.map +0 -1
- package/ecs/database/test-archetype-validation.d.ts +0 -9
- package/ecs/database/test-archetype-validation.js +0 -14
- package/ecs/database/test-archetype-validation.js.map +0 -1
- package/ecs/database/test-exactkeys.d.ts +0 -1
- package/ecs/database/test-exactkeys.js +0 -17
- package/ecs/database/test-exactkeys.js.map +0 -1
- package/ecs/database/transactional-store/coalesce-transactions.test.js +0 -433
- package/ecs/database/transactional-store/coalesce-transactions.test.js.map +0 -1
- package/ecs/database/type-inference-demo.d.ts +0 -75
- package/ecs/database/type-inference-demo.js +0 -73
- package/ecs/database/type-inference-demo.js.map +0 -1
- package/ecs/database/type-inference-poc.test.d.ts +0 -1
- package/ecs/database/type-inference-poc.test.js +0 -73
- package/ecs/database/type-inference-poc.test.js.map +0 -1
- package/ecs/package.json +0 -1
- package/ecs/plugins/scheduler/create-scheduler-plugin.d.ts +0 -8
- package/ecs/plugins/scheduler/create-scheduler-plugin.js +0 -54
- package/ecs/plugins/scheduler/create-scheduler-plugin.js.map +0 -1
- package/ecs/plugins/scheduler/create-scheduler-plugin.test.d.ts +0 -1
- package/ecs/plugins/scheduler/create-scheduler-plugin.test.js +0 -198
- package/ecs/plugins/scheduler/create-scheduler-plugin.test.js.map +0 -1
- package/ecs/plugins/scheduler/type-inference-test.d.ts +0 -1
- package/ecs/plugins/scheduler/type-inference-test.js +0 -2
- package/ecs/plugins/scheduler/type-inference-test.js.map +0 -1
- package/ecs/store/entity-functions.d.ts +0 -7
- package/ecs/store/entity-functions.js +0 -2
- package/ecs/store/entity-functions.js.map +0 -1
- package/ecs/store/functions.d.ts +0 -2
- package/ecs/store/functions.js +0 -2
- package/ecs/store/functions.js.map +0 -1
- package/ecs/system/system-declaration.d.ts +0 -7
- package/ecs/system/system-declaration.js +0 -23
- package/ecs/system/system-declaration.js.map +0 -1
- package/ecs/system/system-declarations.d.ts +0 -4
- package/ecs/system/system-declarations.js +0 -23
- package/ecs/system/system-declarations.js.map +0 -1
- package/ecs/system/system-factory/public/create copy.d.ts +0 -12
- package/ecs/system/system-factory/public/create copy.js +0 -8
- package/ecs/system/system-factory/public/create copy.js.map +0 -1
- package/ecs/system/system-factory/public/create.d.ts +0 -12
- package/ecs/system/system-factory/public/create.js +0 -8
- package/ecs/system/system-factory/public/create.js.map +0 -1
- package/ecs/system/system-factory/public/create.test.d.ts +0 -1
- package/ecs/system/system-factory/public/create.test.js +0 -42
- package/ecs/system/system-factory/public/create.test.js.map +0 -1
- package/ecs/system/system-factory/public/index.d.ts +0 -1
- package/ecs/system/system-factory/public/index.js +0 -2
- package/ecs/system/system-factory/public/index.js.map +0 -1
- package/ecs/system/system-factory/system-factory.d.ts +0 -17
- package/ecs/system/system-factory/system-factory.js +0 -23
- package/ecs/system/system-factory/system-factory.js.map +0 -1
- package/ecs/system/system-factory.d.ts +0 -9
- package/ecs/system/system-factory.js +0 -23
- package/ecs/system/system-factory.js.map +0 -1
- package/ecs/system/system-interface.d.ts +0 -5
- package/ecs/system/system-interface.js +0 -2
- package/ecs/system/system-interface.js.map +0 -1
- package/ecs/system/system.d.ts +0 -4
- package/ecs/system/system.js +0 -23
- package/ecs/system/system.js.map +0 -1
- package/ecs/system/systems-type.d.ts +0 -2
- package/ecs/system/systems-type.js +0 -2
- package/ecs/system/systems-type.js.map +0 -1
- package/ecs/system/systems.d.ts +0 -2
- package/ecs/system/systems.js +0 -23
- package/ecs/system/systems.js.map +0 -1
- package/ecs/system/world-schema/public/create.d.ts +0 -12
- package/ecs/system/world-schema/public/create.js +0 -8
- package/ecs/system/world-schema/public/create.js.map +0 -1
- package/ecs/system/world-schema/public/create.test.d.ts +0 -1
- package/ecs/system/world-schema/public/create.test.js +0 -42
- package/ecs/system/world-schema/public/create.test.js.map +0 -1
- package/ecs/system/world-schema/public/index.d.ts +0 -1
- package/ecs/system/world-schema/public/index.js +0 -2
- package/ecs/system/world-schema/public/index.js.map +0 -1
- package/ecs/system/world-schema/system-factory.d.ts +0 -17
- package/ecs/system/world-schema/system-factory.js +0 -23
- package/ecs/system/world-schema/system-factory.js.map +0 -1
- package/ecs/world/calculate-system-order.d.ts +0 -18
- package/ecs/world/calculate-system-order.js +0 -113
- package/ecs/world/calculate-system-order.js.map +0 -1
- package/ecs/world/calculate-system-order.test.d.ts +0 -1
- package/ecs/world/calculate-system-order.test.js +0 -168
- package/ecs/world/calculate-system-order.test.js.map +0 -1
- package/ecs/world/create-world-schema-test.d.ts +0 -1
- package/ecs/world/create-world-schema-test.js +0 -294
- package/ecs/world/create-world-schema-test.js.map +0 -1
- package/ecs/world/create-world-type-test.d.ts +0 -1
- package/ecs/world/create-world-type-test.js +0 -129
- package/ecs/world/create-world-type-test.js.map +0 -1
- package/ecs/world/create-world.d.ts +0 -19
- package/ecs/world/create-world.js +0 -80
- package/ecs/world/create-world.js.map +0 -1
- package/ecs/world/create-world.test.d.ts +0 -1
- package/ecs/world/create-world.test.js +0 -292
- package/ecs/world/create-world.test.js.map +0 -1
- package/ecs/world/public/world-schema/public/create.d.ts +0 -12
- package/ecs/world/public/world-schema/public/create.js +0 -8
- package/ecs/world/public/world-schema/public/create.js.map +0 -1
- package/ecs/world/public/world-schema/public/create.test.d.ts +0 -1
- package/ecs/world/public/world-schema/public/create.test.js +0 -42
- package/ecs/world/public/world-schema/public/create.test.js.map +0 -1
- package/ecs/world/public/world-schema/public/index.d.ts +0 -1
- package/ecs/world/public/world-schema/public/index.js +0 -2
- package/ecs/world/public/world-schema/public/index.js.map +0 -1
- package/ecs/world/public/world-schema/world-schema.d.ts +0 -17
- package/ecs/world/public/world-schema/world-schema.js +0 -23
- package/ecs/world/public/world-schema/world-schema.js.map +0 -1
- package/ecs/world/system-declaration.d.ts +0 -1
- package/ecs/world/system-declaration.js +0 -23
- package/ecs/world/system-declaration.js.map +0 -1
- package/ecs/world/system-schedule-typing-test.d.ts +0 -1
- package/ecs/world/system-schedule-typing-test.js +0 -83
- package/ecs/world/system-schedule-typing-test.js.map +0 -1
- package/ecs/world/world-schema/public/create.d.ts +0 -12
- package/ecs/world/world-schema/public/create.js +0 -10
- package/ecs/world/world-schema/public/create.js.map +0 -1
- package/ecs/world/world-schema/public/create.test.d.ts +0 -1
- package/ecs/world/world-schema/public/create.test.js +0 -41
- package/ecs/world/world-schema/public/create.test.js.map +0 -1
- package/ecs/world/world-schema/public/index.d.ts +0 -1
- package/ecs/world/world-schema/public/index.js +0 -2
- package/ecs/world/world-schema/public/index.js.map +0 -1
- package/ecs/world/world-schema/system-factory.d.ts +0 -17
- package/ecs/world/world-schema/system-factory.js +0 -23
- package/ecs/world/world-schema/system-factory.js.map +0 -1
- package/ecs/world/world-schema/world-schema.d.ts +0 -19
- package/ecs/world/world-schema/world-schema.js +0 -23
- package/ecs/world/world-schema/world-schema.js.map +0 -1
- package/ecs/world/world.d.ts +0 -86
- package/ecs/world/world.js +0 -81
- package/ecs/world/world.js.map +0 -1
- package/ecs/world/world.test.d.ts +0 -1
- package/ecs/world/world.test.js +0 -176
- package/ecs/world/world.test.js.map +0 -1
- package/functions/package.json +0 -1
- package/lit/elements/application-element copy.d.ts +0 -9
- package/lit/elements/application-element copy.js +0 -62
- package/lit/elements/application-element copy.js.map +0 -1
- package/lit/package.json +0 -1
- package/math/package.json +0 -1
- package/observe/package.json +0 -1
- package/old-ecs/package.json +0 -1
- package/perftest/package.json +0 -1
- package/samples/package.json +0 -1
- package/schema/package.json +0 -1
- package/service/package.json +0 -1
- package/table/package.json +0 -1
- package/typed-buffer/package.json +0 -1
- package/types/package.json +0 -1
- /package/{debug-type-test.d.ts → ecs/database/create-plugin-type.type-test.d.ts} +0 -0
- /package/ecs/database/{create-database-schema-test.d.ts → create-plugin-type.type.test.d.ts} +0 -0
- /package/ecs/database/{create-plugin-v2.test.d.ts → experimental-action-types.d.ts} +0 -0
- /package/ecs/database/{database-with-systems.test.d.ts → from-plugin.type-test.d.ts} +0 -0
- /package/ecs/database/{database.plugin.create.test.OLD.d.ts → plugin-types.d.ts} +0 -0
- /package/ecs/database/{database.plugin.create.test.d.ts → type-investigation.test.d.ts} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"create-plugin-v2.test.js","sourceRoot":"","sources":["../../../src/ecs/database/create-plugin-v2.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,138 +0,0 @@
|
|
|
1
|
-
import type { Database } from "./database.js";
|
|
2
|
-
import type { ComponentSchemas } from "../component-schemas.js";
|
|
3
|
-
import type { ResourceSchemas } from "../resource-schemas.js";
|
|
4
|
-
import type { ArchetypeComponents } from "../store/archetype-components.js";
|
|
5
|
-
import type { ActionDeclarations, ToActionFunctions } from "../store/action-functions.js";
|
|
6
|
-
import type { FromSchemas } from "../../schema/index.js";
|
|
7
|
-
import type { StringKeyof } from "../../types/types.js";
|
|
8
|
-
type SystemFunction = () => void | Promise<void>;
|
|
9
|
-
type RemoveIndexSignature<T> = {
|
|
10
|
-
[K in keyof T as string extends K ? never : number extends K ? never : symbol extends K ? never : K]: T[K];
|
|
11
|
-
};
|
|
12
|
-
export type SystemDeclarations = {
|
|
13
|
-
readonly [K in string]: {
|
|
14
|
-
readonly create: (db: Database<any, any, any, any, any>) => SystemFunction;
|
|
15
|
-
readonly schedule?: {
|
|
16
|
-
readonly before?: readonly string[];
|
|
17
|
-
readonly after?: readonly string[];
|
|
18
|
-
};
|
|
19
|
-
};
|
|
20
|
-
};
|
|
21
|
-
export type PluginSchema<CS extends ComponentSchemas = {}, RS extends ResourceSchemas = {}, A extends ArchetypeComponents<any> = {}, TD extends ActionDeclarations<any, any, any> = {}, SYS extends SystemDeclarations = {}> = {
|
|
22
|
-
components?: CS;
|
|
23
|
-
resources?: RS;
|
|
24
|
-
archetypes?: A;
|
|
25
|
-
transactions?: TD;
|
|
26
|
-
systems?: SYS;
|
|
27
|
-
};
|
|
28
|
-
export declare function createPlugin<const CS1 extends ComponentSchemas, const RS1 extends ResourceSchemas, const A1 extends ArchetypeComponents<any>, const TD1 extends ActionDeclarations<any, any, any>, const SYS1 extends {
|
|
29
|
-
readonly [K in string]: {
|
|
30
|
-
readonly create: (db: Database<FromSchemas<CS1>, FromSchemas<RS1>, A1, ToActionFunctions<TD1>, string>) => SystemFunction;
|
|
31
|
-
readonly schedule?: {
|
|
32
|
-
readonly before?: readonly string[];
|
|
33
|
-
readonly after?: readonly string[];
|
|
34
|
-
};
|
|
35
|
-
};
|
|
36
|
-
}>(arg1: PluginSchema<CS1, RS1, A1, TD1, SYS1>): Database.Plugin.Intersect<[Database.Plugin<CS1, RS1, A1, TD1, StringKeyof<SYS1>>]>;
|
|
37
|
-
export declare function createPlugin<const CS1 extends ComponentSchemas, const RS1 extends ResourceSchemas, const A1 extends ArchetypeComponents<any>, const TD1 extends ActionDeclarations<any, any, any>, const SYS1 extends {
|
|
38
|
-
readonly [K in string]: {
|
|
39
|
-
readonly create: (db: Database<FromSchemas<RemoveIndexSignature<CS1>>, FromSchemas<RemoveIndexSignature<RS1>>, A1, ToActionFunctions<TD1>, string>) => SystemFunction;
|
|
40
|
-
readonly schedule?: {
|
|
41
|
-
readonly before?: readonly string[];
|
|
42
|
-
readonly after?: readonly string[];
|
|
43
|
-
};
|
|
44
|
-
};
|
|
45
|
-
}, const CS2 extends ComponentSchemas, const RS2 extends ResourceSchemas, const A2 extends ArchetypeComponents<any>, const TD2 extends ActionDeclarations<any, any, any>, const SYS2 extends {
|
|
46
|
-
readonly [K in string]: {
|
|
47
|
-
readonly create: (db: Database<FromSchemas<RemoveIndexSignature<CS1 & CS2>>, FromSchemas<RemoveIndexSignature<RS1 & RS2>>, A1 | A2, ToActionFunctions<TD1 & TD2>, StringKeyof<SYS1 & SYS2>>) => SystemFunction;
|
|
48
|
-
readonly schedule?: {
|
|
49
|
-
readonly before?: readonly string[];
|
|
50
|
-
readonly after?: readonly string[];
|
|
51
|
-
};
|
|
52
|
-
};
|
|
53
|
-
}>(arg1: PluginSchema<CS1, RS1, A1, TD1, SYS1>, arg2: PluginSchema<CS2, RS2, A2, TD2, SYS2>): Database.Plugin.Intersect<[
|
|
54
|
-
Database.Plugin<CS1, RS1, A1, TD1, StringKeyof<SYS1>>,
|
|
55
|
-
Database.Plugin<CS2, RS2, A2, TD2, StringKeyof<SYS2>>
|
|
56
|
-
]>;
|
|
57
|
-
export declare function createPlugin<const P1 extends Database.Plugin<any, any, any, any, any>, const CS2 extends ComponentSchemas, const RS2 extends ResourceSchemas, const A2 extends ArchetypeComponents<any>, const TD2 extends ActionDeclarations<any, any, any>, const SYS2 extends SystemDeclarations>(arg1: P1, arg2: PluginSchema<CS2, RS2, A2, TD2, SYS2>): Database.Plugin.Intersect<[P1, Database.Plugin<CS2, RS2, A2, TD2, StringKeyof<SYS2>>]>;
|
|
58
|
-
export declare function createPlugin<const CS1 extends ComponentSchemas, const RS1 extends ResourceSchemas, const A1 extends ArchetypeComponents<any>, const TD1 extends ActionDeclarations<any, any, any>, const SYS1 extends {
|
|
59
|
-
readonly [K in string]: {
|
|
60
|
-
readonly create: (db: Database<FromSchemas<RemoveIndexSignature<CS1>>, FromSchemas<RemoveIndexSignature<RS1>>, A1, ToActionFunctions<TD1>, string>) => SystemFunction;
|
|
61
|
-
readonly schedule?: {
|
|
62
|
-
readonly before?: readonly string[];
|
|
63
|
-
readonly after?: readonly string[];
|
|
64
|
-
};
|
|
65
|
-
};
|
|
66
|
-
}, const CS2 extends ComponentSchemas, const RS2 extends ResourceSchemas, const A2 extends ArchetypeComponents<any>, const TD2 extends ActionDeclarations<any, any, any>, const SYS2 extends {
|
|
67
|
-
readonly [K in string]: {
|
|
68
|
-
readonly create: (db: Database<FromSchemas<RemoveIndexSignature<CS1 & CS2>>, FromSchemas<RemoveIndexSignature<RS1 & RS2>>, A1 | A2, ToActionFunctions<TD1 & TD2>, StringKeyof<SYS1 & SYS2>>) => SystemFunction;
|
|
69
|
-
readonly schedule?: {
|
|
70
|
-
readonly before?: readonly string[];
|
|
71
|
-
readonly after?: readonly string[];
|
|
72
|
-
};
|
|
73
|
-
};
|
|
74
|
-
}, const CS3 extends ComponentSchemas, const RS3 extends ResourceSchemas, const A3 extends ArchetypeComponents<any>, const TD3 extends ActionDeclarations<any, any, any>, const SYS3 extends {
|
|
75
|
-
readonly [K in string]: {
|
|
76
|
-
readonly create: (db: Database<FromSchemas<RemoveIndexSignature<CS1 & CS2 & CS3>>, FromSchemas<RemoveIndexSignature<RS1 & RS2 & RS3>>, A1 | A2 | A3, ToActionFunctions<TD1 & TD2 & TD3>, StringKeyof<SYS1 & SYS2 & SYS3>>) => SystemFunction;
|
|
77
|
-
readonly schedule?: {
|
|
78
|
-
readonly before?: readonly string[];
|
|
79
|
-
readonly after?: readonly string[];
|
|
80
|
-
};
|
|
81
|
-
};
|
|
82
|
-
}>(arg1: PluginSchema<CS1, RS1, A1, TD1, SYS1>, arg2: PluginSchema<CS2, RS2, A2, TD2, SYS2>, arg3: PluginSchema<CS3, RS3, A3, TD3, SYS3>): Database.Plugin.Intersect<[
|
|
83
|
-
Database.Plugin<CS1, RS1, A1, TD1, StringKeyof<SYS1>>,
|
|
84
|
-
Database.Plugin<CS2, RS2, A2, TD2, StringKeyof<SYS2>>,
|
|
85
|
-
Database.Plugin<CS3, RS3, A3, TD3, StringKeyof<SYS3>>
|
|
86
|
-
]>;
|
|
87
|
-
export declare function createPlugin<const P1 extends Database.Plugin<any, any, any, any, any>, const P2 extends Database.Plugin<any, any, any, any, any>, const CS3 extends ComponentSchemas, const RS3 extends ResourceSchemas, const A3 extends ArchetypeComponents<any>, const TD3 extends ActionDeclarations<any, any, any>, const SYS3 extends SystemDeclarations>(arg1: P1, arg2: P2, arg3: PluginSchema<CS3, RS3, A3, TD3, SYS3>): Database.Plugin.Intersect<[P1, P2, Database.Plugin<CS3, RS3, A3, TD3, StringKeyof<SYS3>>]>;
|
|
88
|
-
export declare function createPlugin<const P1 extends Database.Plugin<any, any, any, any, any>, const CS2 extends ComponentSchemas, const RS2 extends ResourceSchemas, const A2 extends ArchetypeComponents<any>, const TD2 extends ActionDeclarations<any, any, any>, const SYS2 extends SystemDeclarations, const CS3 extends ComponentSchemas, const RS3 extends ResourceSchemas, const A3 extends ArchetypeComponents<any>, const TD3 extends ActionDeclarations<any, any, any>, const SYS3 extends SystemDeclarations>(arg1: P1, arg2: PluginSchema<CS2, RS2, A2, TD2, SYS2>, arg3: PluginSchema<CS3, RS3, A3, TD3, SYS3>): Database.Plugin.Intersect<[
|
|
89
|
-
P1,
|
|
90
|
-
Database.Plugin<CS2, RS2, A2, TD2, StringKeyof<SYS2>>,
|
|
91
|
-
Database.Plugin<CS3, RS3, A3, TD3, StringKeyof<SYS3>>
|
|
92
|
-
]>;
|
|
93
|
-
export declare function createPlugin<const CS1 extends ComponentSchemas, const RS1 extends ResourceSchemas, const A1 extends ArchetypeComponents<any>, const TD1 extends ActionDeclarations<any, any, any>, const SYS1 extends {
|
|
94
|
-
readonly [K in string]: {
|
|
95
|
-
readonly create: (db: Database<FromSchemas<RemoveIndexSignature<CS1>>, FromSchemas<RemoveIndexSignature<RS1>>, A1, ToActionFunctions<TD1>, string>) => SystemFunction;
|
|
96
|
-
readonly schedule?: {
|
|
97
|
-
readonly before?: readonly string[];
|
|
98
|
-
readonly after?: readonly string[];
|
|
99
|
-
};
|
|
100
|
-
};
|
|
101
|
-
}, const CS2 extends ComponentSchemas, const RS2 extends ResourceSchemas, const A2 extends ArchetypeComponents<any>, const TD2 extends ActionDeclarations<any, any, any>, const SYS2 extends {
|
|
102
|
-
readonly [K in string]: {
|
|
103
|
-
readonly create: (db: Database<FromSchemas<RemoveIndexSignature<CS1 & CS2>>, FromSchemas<RemoveIndexSignature<RS1 & RS2>>, A1 | A2, ToActionFunctions<TD1 & TD2>, StringKeyof<SYS1 & SYS2>>) => SystemFunction;
|
|
104
|
-
readonly schedule?: {
|
|
105
|
-
readonly before?: readonly string[];
|
|
106
|
-
readonly after?: readonly string[];
|
|
107
|
-
};
|
|
108
|
-
};
|
|
109
|
-
}, const CS3 extends ComponentSchemas, const RS3 extends ResourceSchemas, const A3 extends ArchetypeComponents<any>, const TD3 extends ActionDeclarations<any, any, any>, const SYS3 extends {
|
|
110
|
-
readonly [K in string]: {
|
|
111
|
-
readonly create: (db: Database<FromSchemas<RemoveIndexSignature<CS1 & CS2 & CS3>>, FromSchemas<RemoveIndexSignature<RS1 & RS2 & RS3>>, A1 | A2 | A3, ToActionFunctions<TD1 & TD2 & TD3>, StringKeyof<SYS1 & SYS2 & SYS3>>) => SystemFunction;
|
|
112
|
-
readonly schedule?: {
|
|
113
|
-
readonly before?: readonly string[];
|
|
114
|
-
readonly after?: readonly string[];
|
|
115
|
-
};
|
|
116
|
-
};
|
|
117
|
-
}, const CS4 extends ComponentSchemas, const RS4 extends ResourceSchemas, const A4 extends ArchetypeComponents<any>, const TD4 extends ActionDeclarations<any, any, any>, const SYS4 extends {
|
|
118
|
-
readonly [K in string]: {
|
|
119
|
-
readonly create: (db: Database<FromSchemas<RemoveIndexSignature<CS1 & CS2 & CS3 & CS4>>, FromSchemas<RemoveIndexSignature<RS1 & RS2 & RS3 & RS4>>, A1 | A2 | A3 | A4, ToActionFunctions<TD1 & TD2 & TD3 & TD4>, StringKeyof<SYS1 & SYS2 & SYS3 & SYS4>>) => SystemFunction;
|
|
120
|
-
readonly schedule?: {
|
|
121
|
-
readonly before?: readonly string[];
|
|
122
|
-
readonly after?: readonly string[];
|
|
123
|
-
};
|
|
124
|
-
};
|
|
125
|
-
}>(arg1: PluginSchema<CS1, RS1, A1, TD1, SYS1>, arg2: PluginSchema<CS2, RS2, A2, TD2, SYS2>, arg3: PluginSchema<CS3, RS3, A3, TD3, SYS3>, arg4: PluginSchema<CS4, RS4, A4, TD4, SYS4>): Database.Plugin.Intersect<[
|
|
126
|
-
Database.Plugin<CS1, RS1, A1, TD1, StringKeyof<SYS1>>,
|
|
127
|
-
Database.Plugin<CS2, RS2, A2, TD2, StringKeyof<SYS2>>,
|
|
128
|
-
Database.Plugin<CS3, RS3, A3, TD3, StringKeyof<SYS3>>,
|
|
129
|
-
Database.Plugin<CS4, RS4, A4, TD4, StringKeyof<SYS4>>
|
|
130
|
-
]>;
|
|
131
|
-
export declare function createPlugin<const P1 extends Database.Plugin<any, any, any, any, any>, const P2 extends Database.Plugin<any, any, any, any, any>, const P3 extends Database.Plugin<any, any, any, any, any>, const CS4 extends ComponentSchemas, const RS4 extends ResourceSchemas, const A4 extends ArchetypeComponents<any>, const TD4 extends ActionDeclarations<any, any, any>, const SYS4 extends SystemDeclarations>(arg1: P1, arg2: P2, arg3: P3, arg4: PluginSchema<CS4, RS4, A4, TD4, SYS4>): Database.Plugin.Intersect<[P1, P2, P3, Database.Plugin<CS4, RS4, A4, TD4, StringKeyof<SYS4>>]>;
|
|
132
|
-
export declare function createPlugin<const P1 extends Database.Plugin<any, any, any, any, any>, const P2 extends Database.Plugin<any, any, any, any, any>, const CS3 extends ComponentSchemas, const RS3 extends ResourceSchemas, const A3 extends ArchetypeComponents<any>, const TD3 extends ActionDeclarations<any, any, any>, const SYS3 extends SystemDeclarations, const CS4 extends ComponentSchemas, const RS4 extends ResourceSchemas, const A4 extends ArchetypeComponents<any>, const TD4 extends ActionDeclarations<any, any, any>, const SYS4 extends SystemDeclarations>(arg1: P1, arg2: P2, arg3: PluginSchema<CS3, RS3, A3, TD3, SYS3>, arg4: PluginSchema<CS4, RS4, A4, TD4, SYS4>): Database.Plugin.Intersect<[
|
|
133
|
-
P1,
|
|
134
|
-
P2,
|
|
135
|
-
Database.Plugin<CS3, RS3, A3, TD3, StringKeyof<SYS3>>,
|
|
136
|
-
Database.Plugin<CS4, RS4, A4, TD4, StringKeyof<SYS4>>
|
|
137
|
-
]>;
|
|
138
|
-
export {};
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
/*MIT License
|
|
2
|
-
|
|
3
|
-
© Copyright 2025 Adobe. All rights reserved.
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.*/
|
|
22
|
-
// Implementation
|
|
23
|
-
export function createPlugin(...args) {
|
|
24
|
-
const result = args.reduce((acc, curr) => ({
|
|
25
|
-
components: { ...acc.components, ...curr.components },
|
|
26
|
-
resources: { ...acc.resources, ...curr.resources },
|
|
27
|
-
archetypes: { ...acc.archetypes, ...curr.archetypes },
|
|
28
|
-
transactions: { ...acc.transactions, ...curr.transactions },
|
|
29
|
-
systems: { ...acc.systems, ...curr.systems },
|
|
30
|
-
}), {
|
|
31
|
-
components: {},
|
|
32
|
-
resources: {},
|
|
33
|
-
archetypes: {},
|
|
34
|
-
transactions: {},
|
|
35
|
-
systems: {},
|
|
36
|
-
});
|
|
37
|
-
// Validate system schedule references
|
|
38
|
-
if (result.systems) {
|
|
39
|
-
const systemNames = new Set(Object.keys(result.systems));
|
|
40
|
-
for (const [systemName, systemDef] of Object.entries(result.systems)) {
|
|
41
|
-
const schedule = systemDef?.schedule;
|
|
42
|
-
if (schedule) {
|
|
43
|
-
const validateRefs = (refs, type) => {
|
|
44
|
-
if (refs) {
|
|
45
|
-
for (const ref of refs) {
|
|
46
|
-
if (!systemNames.has(ref)) {
|
|
47
|
-
throw new Error(`System "${systemName}" references non-existent system "${ref}" in schedule.${type}`);
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
};
|
|
52
|
-
validateRefs(schedule.before, 'before');
|
|
53
|
-
validateRefs(schedule.after, 'after');
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
return result;
|
|
58
|
-
}
|
|
59
|
-
//# sourceMappingURL=create-plugin.OLD.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"create-plugin.OLD.js","sourceRoot":"","sources":["../../../src/ecs/database/create-plugin.OLD.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;WAoBW;AA4PX,iBAAiB;AACjB,MAAM,UAAU,YAAY,CAAC,GAAG,IAAW;IACvC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;QACvC,UAAU,EAAE,EAAE,GAAG,GAAG,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE;QACrD,SAAS,EAAE,EAAE,GAAG,GAAG,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE;QAClD,UAAU,EAAE,EAAE,GAAG,GAAG,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE;QACrD,YAAY,EAAE,EAAE,GAAG,GAAG,CAAC,YAAY,EAAE,GAAG,IAAI,CAAC,YAAY,EAAE;QAC3D,OAAO,EAAE,EAAE,GAAG,GAAG,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE;KAC/C,CAAC,EAAE;QACA,UAAU,EAAE,EAAE;QACd,SAAS,EAAE,EAAE;QACb,UAAU,EAAE,EAAE;QACd,YAAY,EAAE,EAAE;QAChB,OAAO,EAAE,EAAE;KACd,CAAC,CAAC;IAEH,sCAAsC;IACtC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACjB,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QACzD,KAAK,MAAM,CAAC,UAAU,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;YACnE,MAAM,QAAQ,GAAI,SAAiB,EAAE,QAAQ,CAAC;YAC9C,IAAI,QAAQ,EAAE,CAAC;gBACX,MAAM,YAAY,GAAG,CAAC,IAA0B,EAAE,IAAwB,EAAE,EAAE;oBAC1E,IAAI,IAAI,EAAE,CAAC;wBACP,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;4BACrB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gCACxB,MAAM,IAAI,KAAK,CACX,WAAW,UAAU,qCAAqC,GAAG,iBAAiB,IAAI,EAAE,CACvF,CAAC;4BACN,CAAC;wBACL,CAAC;oBACL,CAAC;gBACL,CAAC,CAAC;gBACF,YAAY,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;gBACxC,YAAY,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YAC1C,CAAC;QACL,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAC;AAClB,CAAC"}
|
|
@@ -1,292 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect } from "vitest";
|
|
2
|
-
import { Database } from "./database.js";
|
|
3
|
-
describe("Database with systems", () => {
|
|
4
|
-
it("should create empty database with no systems", () => {
|
|
5
|
-
const db = Database.create();
|
|
6
|
-
expect(db.system.functions).toEqual({});
|
|
7
|
-
expect(db.system.order).toEqual([]);
|
|
8
|
-
});
|
|
9
|
-
it("should create database from plugin with systems", () => {
|
|
10
|
-
const executionLog = [];
|
|
11
|
-
const plugin = Database.Plugin.create({
|
|
12
|
-
components: {
|
|
13
|
-
position: { type: "object", default: { x: 0, y: 0, z: 0 } }
|
|
14
|
-
}
|
|
15
|
-
}, {
|
|
16
|
-
systems: {
|
|
17
|
-
updateSystem: {
|
|
18
|
-
create: (_db) => () => {
|
|
19
|
-
executionLog.push("update");
|
|
20
|
-
}
|
|
21
|
-
},
|
|
22
|
-
renderSystem: {
|
|
23
|
-
create: (_db) => () => {
|
|
24
|
-
executionLog.push("render");
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
});
|
|
29
|
-
const db = Database.create(plugin);
|
|
30
|
-
expect(db.system.functions.updateSystem).toBeDefined();
|
|
31
|
-
expect(db.system.functions.renderSystem).toBeDefined();
|
|
32
|
-
expect(db.system.order).toHaveLength(1);
|
|
33
|
-
expect(db.system.order[0]).toHaveLength(2);
|
|
34
|
-
// Execute systems
|
|
35
|
-
db.system.functions.updateSystem();
|
|
36
|
-
db.system.functions.renderSystem();
|
|
37
|
-
expect(executionLog).toEqual(["update", "render"]);
|
|
38
|
-
});
|
|
39
|
-
it("should respect system scheduling dependencies", () => {
|
|
40
|
-
const executionLog = [];
|
|
41
|
-
const plugin = Database.Plugin.create({
|
|
42
|
-
components: {
|
|
43
|
-
position: { type: "object", default: { x: 0, y: 0, z: 0 } }
|
|
44
|
-
},
|
|
45
|
-
systems: {
|
|
46
|
-
inputSystem: {
|
|
47
|
-
create: (_db) => () => {
|
|
48
|
-
executionLog.push("input");
|
|
49
|
-
}
|
|
50
|
-
},
|
|
51
|
-
physicsSystem: {
|
|
52
|
-
create: (_db) => () => {
|
|
53
|
-
executionLog.push("physics");
|
|
54
|
-
},
|
|
55
|
-
schedule: {
|
|
56
|
-
after: ["inputSystem"]
|
|
57
|
-
}
|
|
58
|
-
},
|
|
59
|
-
renderSystem: {
|
|
60
|
-
create: (_db) => () => {
|
|
61
|
-
executionLog.push("render");
|
|
62
|
-
},
|
|
63
|
-
schedule: {
|
|
64
|
-
after: ["physicsSystem"]
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
});
|
|
69
|
-
const db = Database.create(plugin);
|
|
70
|
-
// Should have 3 tiers: input -> physics -> render
|
|
71
|
-
expect(db.system.order).toHaveLength(3);
|
|
72
|
-
expect(db.system.order[0]).toEqual(["inputSystem"]);
|
|
73
|
-
expect(db.system.order[1]).toEqual(["physicsSystem"]);
|
|
74
|
-
expect(db.system.order[2]).toEqual(["renderSystem"]);
|
|
75
|
-
// Execute in order
|
|
76
|
-
for (const tier of db.system.order) {
|
|
77
|
-
for (const systemName of tier) {
|
|
78
|
-
db.system.functions[systemName]();
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
expect(executionLog).toEqual(["input", "physics", "render"]);
|
|
82
|
-
});
|
|
83
|
-
it("should support parallel system execution in same tier", () => {
|
|
84
|
-
const plugin = Database.Plugin.create({
|
|
85
|
-
components: {},
|
|
86
|
-
archetypes: {},
|
|
87
|
-
systems: {
|
|
88
|
-
system1: {
|
|
89
|
-
create: (_db) => () => { }
|
|
90
|
-
},
|
|
91
|
-
system2: {
|
|
92
|
-
create: (_db) => () => { }
|
|
93
|
-
},
|
|
94
|
-
system3: {
|
|
95
|
-
create: (_db) => () => { }
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
});
|
|
99
|
-
const db = Database.create(plugin);
|
|
100
|
-
// All independent systems should be in one tier
|
|
101
|
-
expect(db.system.order).toHaveLength(1);
|
|
102
|
-
expect(db.system.order[0]).toHaveLength(3);
|
|
103
|
-
});
|
|
104
|
-
it("should support async systems", async () => {
|
|
105
|
-
const executionLog = [];
|
|
106
|
-
const plugin = Database.Plugin.create({
|
|
107
|
-
components: {},
|
|
108
|
-
archetypes: {},
|
|
109
|
-
systems: {
|
|
110
|
-
asyncSystem: {
|
|
111
|
-
create: (_db) => async () => {
|
|
112
|
-
await new Promise(resolve => setTimeout(resolve, 10));
|
|
113
|
-
executionLog.push("async");
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
});
|
|
118
|
-
const db = Database.create(plugin);
|
|
119
|
-
await db.system.functions.asyncSystem();
|
|
120
|
-
expect(executionLog).toEqual(["async"]);
|
|
121
|
-
});
|
|
122
|
-
it("should allow systems to access database", () => {
|
|
123
|
-
const plugin = Database.Plugin.create({
|
|
124
|
-
components: {
|
|
125
|
-
position: { type: "object", default: { x: 0, y: 0, z: 0 } }
|
|
126
|
-
},
|
|
127
|
-
resources: {
|
|
128
|
-
time: { default: 0 }
|
|
129
|
-
},
|
|
130
|
-
archetypes: {
|
|
131
|
-
Entity: ["position"]
|
|
132
|
-
},
|
|
133
|
-
systems: {
|
|
134
|
-
updateSystem: {
|
|
135
|
-
create: (db) => () => {
|
|
136
|
-
// System can access database
|
|
137
|
-
const entities = db.select(["position"]);
|
|
138
|
-
expect(Array.isArray(entities)).toBe(true);
|
|
139
|
-
expect(db.resources.time).toBe(0);
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
});
|
|
144
|
-
const db = Database.create(plugin);
|
|
145
|
-
db.system.functions.updateSystem();
|
|
146
|
-
});
|
|
147
|
-
it("should extend database with new systems", () => {
|
|
148
|
-
const executionLog = [];
|
|
149
|
-
const basePlugin = Database.Plugin.create({
|
|
150
|
-
components: {
|
|
151
|
-
position: { type: "object", default: { x: 0, y: 0, z: 0 } }
|
|
152
|
-
},
|
|
153
|
-
systems: {
|
|
154
|
-
updateSystem: {
|
|
155
|
-
create: (_db) => () => {
|
|
156
|
-
executionLog.push("update");
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
});
|
|
161
|
-
const extensionPlugin = Database.Plugin.create({
|
|
162
|
-
components: {
|
|
163
|
-
velocity: { type: "object", default: { x: 0, y: 0, z: 0 } }
|
|
164
|
-
},
|
|
165
|
-
systems: {
|
|
166
|
-
physicsSystem: {
|
|
167
|
-
create: (_db) => () => {
|
|
168
|
-
executionLog.push("physics");
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
});
|
|
173
|
-
const db = Database.create(basePlugin);
|
|
174
|
-
const extended = db.extend(extensionPlugin);
|
|
175
|
-
expect(extended.system.functions.updateSystem).toBeDefined();
|
|
176
|
-
expect(extended.system.functions.physicsSystem).toBeDefined();
|
|
177
|
-
// Both systems should be available
|
|
178
|
-
extended.system.functions.updateSystem();
|
|
179
|
-
extended.system.functions.physicsSystem();
|
|
180
|
-
expect(executionLog).toEqual(["update", "physics"]);
|
|
181
|
-
});
|
|
182
|
-
it("should maintain system order when extending", () => {
|
|
183
|
-
const basePlugin = Database.Plugin.create({
|
|
184
|
-
components: {},
|
|
185
|
-
archetypes: {},
|
|
186
|
-
systems: {
|
|
187
|
-
system1: {
|
|
188
|
-
create: (_db) => () => { }
|
|
189
|
-
}
|
|
190
|
-
}
|
|
191
|
-
});
|
|
192
|
-
const extensionPlugin = Database.Plugin.create({
|
|
193
|
-
components: {},
|
|
194
|
-
archetypes: {},
|
|
195
|
-
systems: {
|
|
196
|
-
system2: {
|
|
197
|
-
create: (_db) => () => { },
|
|
198
|
-
schedule: {
|
|
199
|
-
after: ["system1"]
|
|
200
|
-
}
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
});
|
|
204
|
-
const db = Database.create(basePlugin);
|
|
205
|
-
const extended = db.extend(extensionPlugin);
|
|
206
|
-
// system2 should be scheduled after system1
|
|
207
|
-
expect(extended.system.order).toHaveLength(2);
|
|
208
|
-
expect(extended.system.order[0]).toEqual(["system1"]);
|
|
209
|
-
expect(extended.system.order[1]).toEqual(["system2"]);
|
|
210
|
-
});
|
|
211
|
-
it("should extend database without systems and return same instance", () => {
|
|
212
|
-
const plugin = Database.Plugin.create({
|
|
213
|
-
components: {
|
|
214
|
-
position: { type: "object", default: { x: 0, y: 0, z: 0 } }
|
|
215
|
-
}
|
|
216
|
-
});
|
|
217
|
-
const extensionPlugin = Database.Plugin.create({
|
|
218
|
-
components: {
|
|
219
|
-
velocity: { type: "object", default: { x: 0, y: 0, z: 0 } }
|
|
220
|
-
}
|
|
221
|
-
});
|
|
222
|
-
const db = Database.create(plugin);
|
|
223
|
-
const extended = db.extend(extensionPlugin);
|
|
224
|
-
// When no systems involved, should return same instance
|
|
225
|
-
expect(extended).toBe(db);
|
|
226
|
-
});
|
|
227
|
-
it("should create new database instance when extending with systems", () => {
|
|
228
|
-
const basePlugin = Database.Plugin.create({
|
|
229
|
-
components: {
|
|
230
|
-
position: { type: "object", default: { x: 0, y: 0, z: 0 } }
|
|
231
|
-
},
|
|
232
|
-
systems: {
|
|
233
|
-
system1: {
|
|
234
|
-
create: (_db) => () => { }
|
|
235
|
-
}
|
|
236
|
-
}
|
|
237
|
-
});
|
|
238
|
-
const extensionPlugin = Database.Plugin.create({
|
|
239
|
-
components: {},
|
|
240
|
-
systems: {
|
|
241
|
-
system2: {
|
|
242
|
-
create: (_db) => () => { }
|
|
243
|
-
}
|
|
244
|
-
}
|
|
245
|
-
});
|
|
246
|
-
const db = Database.create(basePlugin);
|
|
247
|
-
const extended = db.extend(extensionPlugin);
|
|
248
|
-
// When systems are involved, should create new instance
|
|
249
|
-
expect(extended).not.toBe(db);
|
|
250
|
-
});
|
|
251
|
-
it("should support plugin composition through dependencies", () => {
|
|
252
|
-
const executionLog = [];
|
|
253
|
-
const inputPlugin = Database.Plugin.create({
|
|
254
|
-
components: {},
|
|
255
|
-
systems: {
|
|
256
|
-
inputSystem: {
|
|
257
|
-
create: (_db) => () => {
|
|
258
|
-
executionLog.push("input");
|
|
259
|
-
}
|
|
260
|
-
}
|
|
261
|
-
}
|
|
262
|
-
});
|
|
263
|
-
const physicsPlugin = Database.Plugin.create(inputPlugin, {
|
|
264
|
-
components: {
|
|
265
|
-
velocity: { type: "object", default: { x: 0, y: 0, z: 0 } }
|
|
266
|
-
}
|
|
267
|
-
}, {
|
|
268
|
-
systems: {
|
|
269
|
-
physicsSystem: {
|
|
270
|
-
create: (_db) => () => {
|
|
271
|
-
executionLog.push("physics");
|
|
272
|
-
},
|
|
273
|
-
schedule: {
|
|
274
|
-
after: ["inputSystem"]
|
|
275
|
-
}
|
|
276
|
-
}
|
|
277
|
-
}
|
|
278
|
-
});
|
|
279
|
-
const db = Database.create(physicsPlugin);
|
|
280
|
-
// Should have both systems
|
|
281
|
-
expect(db.system.functions.inputSystem).toBeDefined();
|
|
282
|
-
expect(db.system.functions.physicsSystem).toBeDefined();
|
|
283
|
-
// Execute in order
|
|
284
|
-
for (const tier of db.system.order) {
|
|
285
|
-
for (const systemName of tier) {
|
|
286
|
-
db.system.functions[systemName]();
|
|
287
|
-
}
|
|
288
|
-
}
|
|
289
|
-
expect(executionLog).toEqual(["input", "physics"]);
|
|
290
|
-
});
|
|
291
|
-
});
|
|
292
|
-
//# sourceMappingURL=database-with-systems.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"database-with-systems.test.js","sourceRoot":"","sources":["../../../src/ecs/database/database-with-systems.test.ts"],"names":[],"mappings":"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"}
|