@adobe/data 0.9.7 → 0.9.16
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/data.d.ts +1 -1
- package/ecs/database/combine-plugins.d.ts +14 -7
- package/ecs/database/combine-plugins.js +6 -3
- package/ecs/database/combine-plugins.js.map +1 -1
- package/ecs/database/create-plugin.d.ts +37 -17
- package/ecs/database/create-plugin.js +3 -30
- package/ecs/database/create-plugin.js.map +1 -1
- package/ecs/database/create-plugin.test.js +55 -0
- package/ecs/database/create-plugin.test.js.map +1 -1
- package/ecs/database/create-plugin.type-test.js +157 -0
- package/ecs/database/create-plugin.type-test.js.map +1 -1
- package/ecs/database/database-schema/create-database-schema.js +3 -3
- package/ecs/database/database-schema/create-database-schema.js.map +1 -1
- package/ecs/database/database.d.ts +43 -5
- package/ecs/database/database.js.map +1 -1
- package/ecs/database/observe-dependent-value.test.js +39 -31
- package/ecs/database/observe-dependent-value.test.js.map +1 -1
- package/ecs/database/observe-select-entities.performance.test.js +30 -31
- package/ecs/database/observe-select-entities.performance.test.js.map +1 -1
- package/ecs/database/observe-select-entities.test.js +30 -31
- package/ecs/database/observe-select-entities.test.js.map +1 -1
- package/ecs/database/observed/create-observed-database.js +7 -0
- package/ecs/database/observed/create-observed-database.js.map +1 -1
- package/ecs/database/public/create-database.d.ts +5 -34
- package/ecs/database/public/create-database.js +68 -131
- package/ecs/database/public/create-database.js.map +1 -1
- package/ecs/database/public/create-database.test.js +324 -62
- package/ecs/database/public/create-database.test.js.map +1 -1
- package/ecs/database/transactional-store/create-transactional-store.js +16 -1
- package/ecs/database/transactional-store/create-transactional-store.js.map +1 -1
- package/ecs/plugins/scheduler/scheduler.d.ts +2 -2
- package/ecs/plugins/scheduler/scheduler.js +2 -2
- package/ecs/plugins/scheduler/scheduler.js.map +1 -1
- package/ecs/undo-redo-service/create-undo-redo-service.test.js +22 -23
- package/ecs/undo-redo-service/create-undo-redo-service.test.js.map +1 -1
- package/package.json +6 -24
- package/service/async-data-service/create-lazy.d.ts +40 -0
- package/service/async-data-service/create-lazy.js +194 -0
- package/service/async-data-service/create-lazy.js.map +1 -0
- package/service/async-data-service/create-lazy.test.js +477 -0
- package/service/async-data-service/create-lazy.test.js.map +1 -0
- package/service/async-data-service/example.d.ts +60 -0
- package/service/async-data-service/example.js +35 -0
- package/service/async-data-service/example.js.map +1 -0
- package/service/async-data-service/index.d.ts +1 -0
- package/service/async-data-service/index.js +3 -0
- package/service/async-data-service/index.js.map +1 -0
- package/service/{is-data-service.d.ts → async-data-service/is-valid.d.ts} +4 -4
- package/{lit/hooks/component/component.js → service/async-data-service/is-valid.js} +1 -1
- package/service/async-data-service/is-valid.js.map +1 -0
- package/service/async-data-service/public.d.ts +2 -0
- package/service/async-data-service/public.js +4 -0
- package/service/async-data-service/public.js.map +1 -0
- package/service/index.d.ts +1 -1
- package/service/index.js +1 -0
- package/service/index.js.map +1 -1
- package/tsconfig.tsbuildinfo +1 -1
- package/ecs/database/combine-plugins-test.d.ts +0 -39
- package/ecs/database/combine-plugins-test.js +0 -3
- package/ecs/database/combine-plugins-test.js.map +0 -1
- package/ecs/database/create-plugin-cryos-pattern.test.d.ts +0 -3
- package/ecs/database/create-plugin-cryos-pattern.test.js +0 -83
- package/ecs/database/create-plugin-cryos-pattern.test.js.map +0 -1
- package/ecs/database/create-plugin-graphics.test.d.ts +0 -93
- package/ecs/database/create-plugin-graphics.test.js +0 -135
- package/ecs/database/create-plugin-graphics.test.js.map +0 -1
- package/ecs/database/create-plugin-type.type-test.js +0 -563
- package/ecs/database/create-plugin-type.type-test.js.map +0 -1
- package/ecs/database/create-plugin-type.type.test.d.ts +0 -1
- package/ecs/database/create-plugin-type.type.test.js +0 -563
- package/ecs/database/create-plugin-type.type.test.js.map +0 -1
- package/ecs/database/experimental-action-types.d.ts +0 -1
- package/ecs/database/experimental-action-types.js +0 -275
- package/ecs/database/experimental-action-types.js.map +0 -1
- package/ecs/database/from-plugin.type-test.d.ts +0 -1
- package/ecs/database/from-plugin.type-test.js +0 -180
- package/ecs/database/from-plugin.type-test.js.map +0 -1
- package/ecs/database/plugin-types.d.ts +0 -1
- package/ecs/database/plugin-types.js +0 -5
- package/ecs/database/plugin-types.js.map +0 -1
- package/ecs/database/type-investigation.test.d.ts +0 -1
- package/ecs/database/type-investigation.test.js +0 -54
- package/ecs/database/type-investigation.test.js.map +0 -1
- package/lit/decorators/apply-decorator.d.ts +0 -1
- package/lit/decorators/apply-decorator.js +0 -19
- package/lit/decorators/apply-decorator.js.map +0 -1
- package/lit/decorators/apply-service-decorators.d.ts +0 -1
- package/lit/decorators/apply-service-decorators.js +0 -13
- package/lit/decorators/apply-service-decorators.js.map +0 -1
- package/lit/decorators/index.d.ts +0 -3
- package/lit/decorators/index.js +0 -5
- package/lit/decorators/index.js.map +0 -1
- package/lit/decorators/require-service.d.ts +0 -1
- package/lit/decorators/require-service.js +0 -14
- package/lit/decorators/require-service.js.map +0 -1
- package/lit/elements/application-element.d.ts +0 -9
- package/lit/elements/application-element.js +0 -42
- package/lit/elements/application-element.js.map +0 -1
- package/lit/elements/application-host.d.ts +0 -16
- package/lit/elements/application-host.js +0 -39
- package/lit/elements/application-host.js.map +0 -1
- package/lit/elements/database-element.d.ts +0 -10
- package/lit/elements/database-element.js +0 -40
- package/lit/elements/database-element.js.map +0 -1
- package/lit/elements/index.d.ts +0 -3
- package/lit/elements/index.js +0 -5
- package/lit/elements/index.js.map +0 -1
- package/lit/functions/index.d.ts +0 -1
- package/lit/functions/index.js +0 -3
- package/lit/functions/index.js.map +0 -1
- package/lit/functions/iterate-self-and-ancestors.d.ts +0 -1
- package/lit/functions/iterate-self-and-ancestors.js +0 -24
- package/lit/functions/iterate-self-and-ancestors.js.map +0 -1
- package/lit/hooks/attach-decorator.d.ts +0 -4
- package/lit/hooks/attach-decorator.js +0 -26
- package/lit/hooks/attach-decorator.js.map +0 -1
- package/lit/hooks/component/component.d.ts +0 -10
- package/lit/hooks/component/component.js.map +0 -1
- package/lit/hooks/component/stack.d.ts +0 -6
- package/lit/hooks/component/stack.js +0 -16
- package/lit/hooks/component/stack.js.map +0 -1
- package/lit/hooks/index.d.ts +0 -19
- package/lit/hooks/index.js +0 -21
- package/lit/hooks/index.js.map +0 -1
- package/lit/hooks/use-connected.d.ts +0 -2
- package/lit/hooks/use-connected.js +0 -32
- package/lit/hooks/use-connected.js.map +0 -1
- package/lit/hooks/use-debounce.d.ts +0 -8
- package/lit/hooks/use-debounce.js +0 -21
- package/lit/hooks/use-debounce.js.map +0 -1
- package/lit/hooks/use-drag-observe.d.ts +0 -25
- package/lit/hooks/use-drag-observe.js +0 -35
- package/lit/hooks/use-drag-observe.js.map +0 -1
- package/lit/hooks/use-drag-transaction.d.ts +0 -7
- package/lit/hooks/use-drag-transaction.js +0 -35
- package/lit/hooks/use-drag-transaction.js.map +0 -1
- package/lit/hooks/use-draggable.d.ts +0 -15
- package/lit/hooks/use-draggable.js +0 -96
- package/lit/hooks/use-draggable.js.map +0 -1
- package/lit/hooks/use-effect.d.ts +0 -3
- package/lit/hooks/use-effect.js +0 -14
- package/lit/hooks/use-effect.js.map +0 -1
- package/lit/hooks/use-element.d.ts +0 -7
- package/lit/hooks/use-element.js +0 -67
- package/lit/hooks/use-element.js.map +0 -1
- package/lit/hooks/use-memo.d.ts +0 -1
- package/lit/hooks/use-memo.js +0 -13
- package/lit/hooks/use-memo.js.map +0 -1
- package/lit/hooks/use-observable-values.d.ts +0 -4
- package/lit/hooks/use-observable-values.js +0 -9
- package/lit/hooks/use-observable-values.js.map +0 -1
- package/lit/hooks/use-observable.d.ts +0 -2
- package/lit/hooks/use-observable.js +0 -13
- package/lit/hooks/use-observable.js.map +0 -1
- package/lit/hooks/use-ref.d.ts +0 -3
- package/lit/hooks/use-ref.js +0 -7
- package/lit/hooks/use-ref.js.map +0 -1
- package/lit/hooks/use-resize-observer.d.ts +0 -12
- package/lit/hooks/use-resize-observer.js +0 -23
- package/lit/hooks/use-resize-observer.js.map +0 -1
- package/lit/hooks/use-state.d.ts +0 -2
- package/lit/hooks/use-state.js +0 -15
- package/lit/hooks/use-state.js.map +0 -1
- package/lit/hooks/use-updated.d.ts +0 -4
- package/lit/hooks/use-updated.js +0 -40
- package/lit/hooks/use-updated.js.map +0 -1
- package/lit/hooks/use-window-event.d.ts +0 -1
- package/lit/hooks/use-window-event.js +0 -11
- package/lit/hooks/use-window-event.js.map +0 -1
- package/lit/hooks/with-hooks.d.ts +0 -2
- package/lit/hooks/with-hooks.js +0 -16
- package/lit/hooks/with-hooks.js.map +0 -1
- package/lit/index.d.ts +0 -4
- package/lit/index.js +0 -5
- package/lit/index.js.map +0 -1
- package/normalize.test.d.ts +0 -1
- package/normalize.test.js +0 -28
- package/normalize.test.js.map +0 -1
- package/samples/index.d.ts +0 -13
- package/samples/index.js +0 -7
- package/samples/index.js.map +0 -1
- package/samples/todo/elements/todo-list/todo-list-presentation.d.ts +0 -8
- package/samples/todo/elements/todo-list/todo-list-presentation.js +0 -12
- package/samples/todo/elements/todo-list/todo-list-presentation.js.map +0 -1
- package/samples/todo/elements/todo-list/todo-list.css.d.ts +0 -1
- package/samples/todo/elements/todo-list/todo-list.css.js +0 -11
- package/samples/todo/elements/todo-list/todo-list.css.js.map +0 -1
- package/samples/todo/elements/todo-list/todo-list.d.ts +0 -12
- package/samples/todo/elements/todo-list/todo-list.js +0 -44
- package/samples/todo/elements/todo-list/todo-list.js.map +0 -1
- package/samples/todo/elements/todo-row/index.d.ts +0 -1
- package/samples/todo/elements/todo-row/index.js +0 -3
- package/samples/todo/elements/todo-row/index.js.map +0 -1
- package/samples/todo/elements/todo-row/todo-row-presentation.d.ts +0 -18
- package/samples/todo/elements/todo-row/todo-row-presentation.js +0 -50
- package/samples/todo/elements/todo-row/todo-row-presentation.js.map +0 -1
- package/samples/todo/elements/todo-row/todo-row.css.d.ts +0 -1
- package/samples/todo/elements/todo-row/todo-row.css.js +0 -49
- package/samples/todo/elements/todo-row/todo-row.css.js.map +0 -1
- package/samples/todo/elements/todo-row/todo-row.d.ts +0 -14
- package/samples/todo/elements/todo-row/todo-row.js +0 -44
- package/samples/todo/elements/todo-row/todo-row.js.map +0 -1
- package/samples/todo/elements/todo-toolbar/index.d.ts +0 -1
- package/samples/todo/elements/todo-toolbar/index.js +0 -3
- package/samples/todo/elements/todo-toolbar/index.js.map +0 -1
- package/samples/todo/elements/todo-toolbar/todo-toolbar-presentation.d.ts +0 -22
- package/samples/todo/elements/todo-toolbar/todo-toolbar-presentation.js +0 -41
- package/samples/todo/elements/todo-toolbar/todo-toolbar-presentation.js.map +0 -1
- package/samples/todo/elements/todo-toolbar/todo-toolbar.css.d.ts +0 -1
- package/samples/todo/elements/todo-toolbar/todo-toolbar.css.js +0 -34
- package/samples/todo/elements/todo-toolbar/todo-toolbar.css.js.map +0 -1
- package/samples/todo/elements/todo-toolbar/todo-toolbar.d.ts +0 -11
- package/samples/todo/elements/todo-toolbar/todo-toolbar.js +0 -61
- package/samples/todo/elements/todo-toolbar/todo-toolbar.js.map +0 -1
- package/samples/todo/elements/todo-undo-redo/index.d.ts +0 -1
- package/samples/todo/elements/todo-undo-redo/index.js +0 -3
- package/samples/todo/elements/todo-undo-redo/index.js.map +0 -1
- package/samples/todo/elements/todo-undo-redo/todo-undo-redo-presentation.d.ts +0 -17
- package/samples/todo/elements/todo-undo-redo/todo-undo-redo-presentation.js +0 -29
- package/samples/todo/elements/todo-undo-redo/todo-undo-redo-presentation.js.map +0 -1
- package/samples/todo/elements/todo-undo-redo/todo-undo-redo.css.d.ts +0 -1
- package/samples/todo/elements/todo-undo-redo/todo-undo-redo.css.js +0 -12
- package/samples/todo/elements/todo-undo-redo/todo-undo-redo.css.js.map +0 -1
- package/samples/todo/elements/todo-undo-redo/todo-undo-redo.d.ts +0 -11
- package/samples/todo/elements/todo-undo-redo/todo-undo-redo.js +0 -36
- package/samples/todo/elements/todo-undo-redo/todo-undo-redo.js.map +0 -1
- package/samples/todo/services/dependent-state-service/create-dependent-state-service.d.ts +0 -6
- package/samples/todo/services/dependent-state-service/create-dependent-state-service.js +0 -5
- package/samples/todo/services/dependent-state-service/create-dependent-state-service.js.map +0 -1
- package/samples/todo/services/dependent-state-service/dependent-state/all-todos.d.ts +0 -2
- package/samples/todo/services/dependent-state-service/dependent-state/all-todos.js +0 -2
- package/samples/todo/services/dependent-state-service/dependent-state/all-todos.js.map +0 -1
- package/samples/todo/services/dependent-state-service/dependent-state/complete-todos.d.ts +0 -2
- package/samples/todo/services/dependent-state-service/dependent-state/complete-todos.js +0 -2
- package/samples/todo/services/dependent-state-service/dependent-state/complete-todos.js.map +0 -1
- package/samples/todo/services/dependent-state-service/dependent-state/incomplete-todos.d.ts +0 -2
- package/samples/todo/services/dependent-state-service/dependent-state/incomplete-todos.js +0 -2
- package/samples/todo/services/dependent-state-service/dependent-state/incomplete-todos.js.map +0 -1
- package/samples/todo/services/dependent-state-service/dependent-state/index.d.ts +0 -3
- package/samples/todo/services/dependent-state-service/dependent-state/index.js +0 -5
- package/samples/todo/services/dependent-state-service/dependent-state/index.js.map +0 -1
- package/samples/todo/services/dependent-state-service/dependent-state-service.d.ts +0 -2
- package/samples/todo/services/dependent-state-service/dependent-state-service.js +0 -2
- package/samples/todo/services/dependent-state-service/dependent-state-service.js.map +0 -1
- package/samples/todo/services/main-service/create-main-service.d.ts +0 -8
- package/samples/todo/services/main-service/create-main-service.js +0 -39
- package/samples/todo/services/main-service/create-main-service.js.map +0 -1
- package/samples/todo/services/main-service/todo-main-service.d.ts +0 -18
- package/samples/todo/services/main-service/todo-main-service.js +0 -2
- package/samples/todo/services/main-service/todo-main-service.js.map +0 -1
- package/samples/todo/services/state-service/create-todo-database.d.ts +0 -37
- package/samples/todo/services/state-service/create-todo-database.js +0 -10
- package/samples/todo/services/state-service/create-todo-database.js.map +0 -1
- package/samples/todo/services/state-service/create-todo-store.d.ts +0 -37
- package/samples/todo/services/state-service/create-todo-store.js +0 -24
- package/samples/todo/services/state-service/create-todo-store.js.map +0 -1
- package/samples/todo/services/state-service/todo-state-service.d.ts +0 -5
- package/samples/todo/services/state-service/todo-state-service.js +0 -2
- package/samples/todo/services/state-service/todo-state-service.js.map +0 -1
- package/samples/todo/services/state-service/transactions/create-bulk-todos.d.ts +0 -2
- package/samples/todo/services/state-service/transactions/create-bulk-todos.js +0 -10
- package/samples/todo/services/state-service/transactions/create-bulk-todos.js.map +0 -1
- package/samples/todo/services/state-service/transactions/create-todo.d.ts +0 -5
- package/samples/todo/services/state-service/transactions/create-todo.js +0 -13
- package/samples/todo/services/state-service/transactions/create-todo.js.map +0 -1
- package/samples/todo/services/state-service/transactions/create-todo.test.d.ts +0 -1
- package/samples/todo/services/state-service/transactions/create-todo.test.js +0 -16
- package/samples/todo/services/state-service/transactions/create-todo.test.js.map +0 -1
- package/samples/todo/services/state-service/transactions/delete-all-todos.d.ts +0 -2
- package/samples/todo/services/state-service/transactions/delete-all-todos.js +0 -16
- package/samples/todo/services/state-service/transactions/delete-all-todos.js.map +0 -1
- package/samples/todo/services/state-service/transactions/delete-todo.d.ts +0 -3
- package/samples/todo/services/state-service/transactions/delete-todo.js +0 -8
- package/samples/todo/services/state-service/transactions/delete-todo.js.map +0 -1
- package/samples/todo/services/state-service/transactions/delete-todo.test.d.ts +0 -1
- package/samples/todo/services/state-service/transactions/delete-todo.test.js +0 -24
- package/samples/todo/services/state-service/transactions/delete-todo.test.js.map +0 -1
- package/samples/todo/services/state-service/transactions/drag-todo.d.ts +0 -7
- package/samples/todo/services/state-service/transactions/drag-todo.js +0 -17
- package/samples/todo/services/state-service/transactions/drag-todo.js.map +0 -1
- package/samples/todo/services/state-service/transactions/index.d.ts +0 -6
- package/samples/todo/services/state-service/transactions/index.js +0 -9
- package/samples/todo/services/state-service/transactions/index.js.map +0 -1
- package/samples/todo/services/state-service/transactions/reorder-todos.d.ts +0 -6
- package/samples/todo/services/state-service/transactions/reorder-todos.js +0 -11
- package/samples/todo/services/state-service/transactions/reorder-todos.js.map +0 -1
- package/samples/todo/services/state-service/transactions/toggle-complete.d.ts +0 -3
- package/samples/todo/services/state-service/transactions/toggle-complete.js +0 -11
- package/samples/todo/services/state-service/transactions/toggle-complete.js.map +0 -1
- package/samples/todo/services/state-service/transactions/toggle-complete.test.d.ts +0 -1
- package/samples/todo/services/state-service/transactions/toggle-complete.test.js +0 -65
- package/samples/todo/services/state-service/transactions/toggle-complete.test.js.map +0 -1
- package/samples/todo/todo-element.d.ts +0 -4
- package/samples/todo/todo-element.js +0 -4
- package/samples/todo/todo-element.js.map +0 -1
- package/samples/todo/todo-host.d.ts +0 -8
- package/samples/todo/todo-host.js +0 -35
- package/samples/todo/todo-host.js.map +0 -1
- package/samples/todo/todo-main-element.d.ts +0 -10
- package/samples/todo/todo-main-element.js +0 -47
- package/samples/todo/todo-main-element.js.map +0 -1
- package/samples/todo/todo-sample.d.ts +0 -3
- package/samples/todo/todo-sample.js +0 -19
- package/samples/todo/todo-sample.js.map +0 -1
- package/service/is-data-service.js +0 -2
- package/service/is-data-service.js.map +0 -1
- package/typed-buffer/public.d.ts +0 -2
- package/typed-buffer/public.js +0 -4
- package/typed-buffer/public.js.map +0 -1
- /package/{ecs/database/create-plugin-type.type-test.d.ts → service/async-data-service/create-lazy.test.d.ts} +0 -0
package/data.d.ts
CHANGED
|
@@ -3,22 +3,29 @@ import type { Database } from "./database.js";
|
|
|
3
3
|
type IntersectAll<T extends readonly unknown[]> = Simplify<T extends readonly [infer H, ...infer R] ? H & IntersectAll<R> : unknown>;
|
|
4
4
|
type UnionAll<T extends readonly unknown[]> = Simplify<T extends readonly [infer H, ...infer R] ? H | UnionAll<R> : never>;
|
|
5
5
|
export type CombinePlugins<Plugins extends readonly Database.Plugin[]> = Database.Plugin<Simplify<{} & IntersectAll<{
|
|
6
|
-
[K in keyof Plugins]: Plugins[K] extends Database.Plugin<infer C, any, any, any, any, any> ? C : never;
|
|
6
|
+
[K in keyof Plugins]: Plugins[K] extends Database.Plugin<infer C, any, any, any, any, any, any, any> ? C : never;
|
|
7
7
|
}>>, Simplify<{} & IntersectAll<{
|
|
8
|
-
[K in keyof Plugins]: Plugins[K] extends Database.Plugin<any, infer R, any, any, any, any> ? R : never;
|
|
8
|
+
[K in keyof Plugins]: Plugins[K] extends Database.Plugin<any, infer R, any, any, any, any, any, any> ? R : never;
|
|
9
9
|
}>>, Simplify<{} & IntersectAll<{
|
|
10
|
-
[K in keyof Plugins]: Plugins[K] extends Database.Plugin<any, any, infer A, any, any, any> ? A : never;
|
|
10
|
+
[K in keyof Plugins]: Plugins[K] extends Database.Plugin<any, any, infer A, any, any, any, any, any> ? A : never;
|
|
11
11
|
}>>, Simplify<{} & IntersectAll<{
|
|
12
|
-
[K in keyof Plugins]: Plugins[K] extends Database.Plugin<any, any, any, infer TD, any, any> ? TD : never;
|
|
12
|
+
[K in keyof Plugins]: Plugins[K] extends Database.Plugin<any, any, any, infer TD, any, any, any, any> ? TD : never;
|
|
13
13
|
}>>, Extract<Simplify<UnionAll<{
|
|
14
|
-
[K in keyof Plugins]: Plugins[K] extends Database.Plugin<any, any, any, any, infer S, any> ? S : never;
|
|
14
|
+
[K in keyof Plugins]: Plugins[K] extends Database.Plugin<any, any, any, any, infer S, any, any, any> ? S : never;
|
|
15
15
|
}>>, string>, Simplify<{} & IntersectAll<{
|
|
16
|
-
[K in keyof Plugins]: Plugins[K] extends Database.Plugin<any, any, any, any, any, infer AD> ? AD : never;
|
|
16
|
+
[K in keyof Plugins]: Plugins[K] extends Database.Plugin<any, any, any, any, any, infer AD, any, any> ? AD : never;
|
|
17
|
+
}>>, Simplify<{} & IntersectAll<{
|
|
18
|
+
[K in keyof Plugins]: Plugins[K] extends Database.Plugin<any, any, any, any, any, any, infer SVF, any> ? SVF : never;
|
|
19
|
+
}>>, Simplify<{} & IntersectAll<{
|
|
20
|
+
[K in keyof Plugins]: Plugins[K] extends Database.Plugin<any, any, any, any, any, any, any, infer CVF> ? CVF : never;
|
|
17
21
|
}>>>;
|
|
18
22
|
/**
|
|
19
23
|
* Combines multiple plugins into a single plugin.
|
|
20
|
-
* All plugin properties (components, resources, archetypes, transactions, systems, actions)
|
|
24
|
+
* All plugin properties (components, resources, archetypes, computed, transactions, systems, actions, services)
|
|
21
25
|
* require identity (===) when the same key exists across plugins.
|
|
26
|
+
*
|
|
27
|
+
* IMPORTANT: Services are merged in order, preserving the initialization order
|
|
28
|
+
* so that extended plugin services are initialized before current plugin services.
|
|
22
29
|
*/
|
|
23
30
|
export declare function combinePlugins<const Plugins extends readonly Database.Plugin[]>(...plugins: Plugins): CombinePlugins<Plugins>;
|
|
24
31
|
export {};
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
// © 2026 Adobe. MIT License. See /LICENSE for details.
|
|
2
2
|
/**
|
|
3
3
|
* Combines multiple plugins into a single plugin.
|
|
4
|
-
* All plugin properties (components, resources, archetypes, transactions, systems, actions)
|
|
4
|
+
* All plugin properties (components, resources, archetypes, computed, transactions, systems, actions, services)
|
|
5
5
|
* require identity (===) when the same key exists across plugins.
|
|
6
|
+
*
|
|
7
|
+
* IMPORTANT: Services are merged in order, preserving the initialization order
|
|
8
|
+
* so that extended plugin services are initialized before current plugin services.
|
|
6
9
|
*/
|
|
7
10
|
export function combinePlugins(...plugins) {
|
|
8
|
-
const keys = ['components', 'resources', 'archetypes', 'transactions', 'actions', 'systems'];
|
|
11
|
+
const keys = ['services', 'components', 'resources', 'archetypes', 'computed', 'transactions', 'actions', 'systems'];
|
|
9
12
|
const merge = (base, next) => Object.fromEntries(keys.map(key => {
|
|
10
13
|
const baseObj = base[key] ?? {};
|
|
11
14
|
const nextObj = next[key] ?? {};
|
|
@@ -19,7 +22,7 @@ export function combinePlugins(...plugins) {
|
|
|
19
22
|
}
|
|
20
23
|
return [key, merged];
|
|
21
24
|
}));
|
|
22
|
-
const emptyPlugin = { components: {}, resources: {}, archetypes: {}, transactions: {}, actions: {}, systems: {} };
|
|
25
|
+
const emptyPlugin = { components: {}, resources: {}, archetypes: {}, computed: {}, transactions: {}, actions: {}, systems: {}, services: {} };
|
|
23
26
|
// Merge all plugins together
|
|
24
27
|
const result = plugins.reduce(merge, emptyPlugin);
|
|
25
28
|
return result;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"combine-plugins.js","sourceRoot":"","sources":["../../../src/ecs/database/combine-plugins.ts"],"names":[],"mappings":"AAAA,uDAAuD;
|
|
1
|
+
{"version":3,"file":"combine-plugins.js","sourceRoot":"","sources":["../../../src/ecs/database/combine-plugins.ts"],"names":[],"mappings":"AAAA,uDAAuD;AAiCvD;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAE5B,GAAG,OAAgB;IACnB,MAAM,IAAI,GAAG,CAAC,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,SAAS,EAAE,SAAS,CAAU,CAAC;IAE9H,MAAM,KAAK,GAAG,CAAC,IAAS,EAAE,IAAS,EAAE,EAAE,CACrC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;QAChC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QAChC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QAEhC,wCAAwC;QACxC,MAAM,MAAM,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC;QAC9B,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAC7C,IAAI,CAAC,IAAI,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;gBACrC,MAAM,IAAI,KAAK,CACb,4BAA4B,GAAG,IAAI,CAAC,yCAAyC,CAC9E,CAAC;YACJ,CAAC;YACD,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAChB,CAAC;QACD,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC,CAAC;IAEN,MAAM,WAAW,GAAG,EAAE,UAAU,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IAE9I,6BAA6B;IAC7B,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IAElD,OAAO,MAAiC,CAAC;AAC3C,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Database, SystemFunction } from "./database.js";
|
|
1
|
+
import { Database, SystemFunction, ServiceFactories, FromServiceFactories, type PluginComputedFactories } from "./database.js";
|
|
2
2
|
import type { ComponentSchemas } from "../component-schemas.js";
|
|
3
3
|
import type { ResourceSchemas } from "../resource-schemas.js";
|
|
4
4
|
import type { ArchetypeComponents } from "../store/archetype-components.js";
|
|
@@ -18,40 +18,60 @@ type RemoveIndex<T> = Simplify<{
|
|
|
18
18
|
*
|
|
19
19
|
* Properties MUST be defined in this exact order:
|
|
20
20
|
* 1. extends (optional) - Base plugin to extend
|
|
21
|
-
* 2.
|
|
22
|
-
* 3.
|
|
23
|
-
* 4.
|
|
24
|
-
* 5.
|
|
25
|
-
* 6.
|
|
26
|
-
* 7.
|
|
21
|
+
* 2. services (optional) - Service factory functions
|
|
22
|
+
* 3. components (optional) - Component schema definitions
|
|
23
|
+
* 4. resources (optional) - Resource schema definitions
|
|
24
|
+
* 5. archetypes (optional) - Archetype definitions
|
|
25
|
+
* 6. computed (optional) - Computed observe factories (each returns Observe<unknown>)
|
|
26
|
+
* 7. transactions (optional) - Transaction declarations
|
|
27
|
+
* 8. actions (optional) - Action declarations
|
|
28
|
+
* 9. systems (optional) - System declarations
|
|
27
29
|
*
|
|
28
30
|
* Example:
|
|
29
31
|
* ```ts
|
|
30
32
|
* Database.Plugin.create({
|
|
31
33
|
* extends: basePlugin, // 1. extends first
|
|
32
|
-
*
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
*
|
|
37
|
-
*
|
|
34
|
+
* services: { // 2. services last
|
|
35
|
+
* myService: (db) => createMyService(db.resources.config),
|
|
36
|
+
* }
|
|
37
|
+
* components: { ... }, // 3. components
|
|
38
|
+
* resources: { ... }, // 4. resources
|
|
39
|
+
* archetypes: { ... }, // 5. archetypes
|
|
40
|
+
* computed: { ... }, // 6. computed
|
|
41
|
+
* transactions: { ... }, // 7. transactions
|
|
42
|
+
* actions: { ... }, // 8. actions
|
|
43
|
+
* systems: { ... }, // 9. systems
|
|
38
44
|
* })
|
|
39
45
|
* ```
|
|
40
46
|
*
|
|
47
|
+
* **Services**: Factory functions that create singleton services. Services from
|
|
48
|
+
* extended plugins are initialized first, ensuring proper dependency order.
|
|
49
|
+
* Service factories receive the database with access to extended plugin's
|
|
50
|
+
* resources, transactions, actions, and services.
|
|
51
|
+
*
|
|
52
|
+
* **Computed**: Factory functions that return values extending Observe<unknown>. Each receives
|
|
53
|
+
* the full db (CS, RS, A from current plugin and extend). Database keeps ComputedFactories
|
|
54
|
+
* (unknown) for flexibility; createPlugin constrains to PluginComputedFactories.
|
|
55
|
+
*
|
|
41
56
|
* @throws Error if properties are not in the correct order
|
|
42
57
|
*/
|
|
43
|
-
|
|
58
|
+
type FullDBForPlugin<CS, RS, A, TD, S extends string, AD, XP extends Database.Plugin, SVF extends ServiceFactories<Database.FromPlugin<XP>>> = Database<FromSchemas<CS & XP['components']>, FromSchemas<RS & XP['resources']>, A & XP['archetypes'], ToTransactionFunctions<TD & XP['transactions']>, S | StringKeyof<XP['systems']>, ToActionFunctions<AD & XP['actions']>, FromServiceFactories<RemoveIndex<SVF> & XP['services']>>;
|
|
59
|
+
export declare function createPlugin<const XP extends Database.Plugin<{}, {}, {}, {}, never, {}, {}, {}>, const CS extends ComponentSchemas, const RS extends ResourceSchemas, const A extends ArchetypeComponents<StringKeyof<RemoveIndex<CS> & XP['components']>>, const TD extends TransactionDeclarations<FromSchemas<RemoveIndex<CS> & XP['components']>, FromSchemas<RemoveIndex<RS> & XP['resources']>, RemoveIndex<A> & XP['archetypes']>, const AD, const S extends string = never, const SVF extends ServiceFactories<Database.FromPlugin<XP>> = {}, const CVF extends PluginComputedFactories<FullDBForPlugin<RemoveIndex<CS>, RemoveIndex<RS>, RemoveIndex<A>, RemoveIndex<TD>, S, RemoveIndex<AD> & XP['actions'], XP, RemoveIndex<SVF>>> = {}>(plugins: {
|
|
44
60
|
extends?: XP;
|
|
61
|
+
services?: SVF & {
|
|
62
|
+
readonly [K: string]: (db: Database.FromPlugin<XP>) => unknown;
|
|
63
|
+
};
|
|
45
64
|
components?: CS;
|
|
46
65
|
resources?: RS;
|
|
47
66
|
archetypes?: A;
|
|
67
|
+
computed?: CVF & PluginComputedFactories<FullDBForPlugin<RemoveIndex<CS>, RemoveIndex<RS>, RemoveIndex<A>, RemoveIndex<TD>, string, RemoveIndex<AD> & XP['actions'], XP, RemoveIndex<SVF>>>;
|
|
48
68
|
transactions?: TD;
|
|
49
69
|
actions?: AD & {
|
|
50
|
-
readonly [K: string]: (db: Database<FromSchemas<RemoveIndex<CS> & XP['components']>, FromSchemas<RemoveIndex<RS> & XP['resources']>, RemoveIndex<A> & XP['archetypes'], ToTransactionFunctions<RemoveIndex<TD> & XP['transactions']>, string, ToActionFunctions<XP['actions']>>, input?: any) => any;
|
|
70
|
+
readonly [K: string]: (db: Database<FromSchemas<RemoveIndex<CS> & XP['components']>, FromSchemas<RemoveIndex<RS> & XP['resources']>, RemoveIndex<A> & XP['archetypes'], ToTransactionFunctions<RemoveIndex<TD> & XP['transactions']>, string, ToActionFunctions<XP['actions']>, FromServiceFactories<RemoveIndex<SVF> & XP['services']>>, input?: any) => any;
|
|
51
71
|
};
|
|
52
72
|
systems?: {
|
|
53
73
|
readonly [K in S]: {
|
|
54
|
-
readonly create: (db: Database<FromSchemas<RemoveIndex<CS> & XP['components']>, FromSchemas<RemoveIndex<RS> & XP['resources']>, RemoveIndex<A> & XP['archetypes'], ToTransactionFunctions<RemoveIndex<TD> & XP['transactions']>, string, ToActionFunctions<RemoveIndex<AD> & XP['actions']>> & {
|
|
74
|
+
readonly create: (db: Database<FromSchemas<RemoveIndex<CS> & XP['components']>, FromSchemas<RemoveIndex<RS> & XP['resources']>, RemoveIndex<A> & XP['archetypes'], ToTransactionFunctions<RemoveIndex<TD> & XP['transactions']>, string, ToActionFunctions<RemoveIndex<AD> & XP['actions']>, FromServiceFactories<RemoveIndex<SVF> & XP['services']>> & {
|
|
55
75
|
readonly store: Store<FromSchemas<RemoveIndex<CS> & XP['components']>, FromSchemas<RemoveIndex<RS> & XP['resources']>, RemoveIndex<A> & XP['archetypes']>;
|
|
56
76
|
}) => SystemFunction | void;
|
|
57
77
|
readonly schedule?: {
|
|
@@ -63,6 +83,6 @@ export declare function createPlugin<const XP extends Database.Plugin<{}, {}, {}
|
|
|
63
83
|
};
|
|
64
84
|
}): CombinePlugins<[
|
|
65
85
|
XP,
|
|
66
|
-
Database.Plugin<RemoveIndex<CS>, RemoveIndex<RS>, RemoveIndex<A>, RemoveIndex<TD>, S, AD & ActionDeclarations<FromSchemas<RemoveIndex<CS>>, FromSchemas<RemoveIndex<RS>>, RemoveIndex<A>, ToTransactionFunctions<RemoveIndex<TD>>, S>>
|
|
86
|
+
Database.Plugin<RemoveIndex<CS>, RemoveIndex<RS>, RemoveIndex<A>, RemoveIndex<TD>, S, AD & ActionDeclarations<FromSchemas<RemoveIndex<CS>>, FromSchemas<RemoveIndex<RS>>, RemoveIndex<A>, ToTransactionFunctions<RemoveIndex<TD>>, S>, RemoveIndex<SVF>, RemoveIndex<CVF>>
|
|
67
87
|
]>;
|
|
68
88
|
export {};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// © 2026 Adobe. MIT License. See /LICENSE for details.
|
|
2
2
|
import { combinePlugins } from "./combine-plugins.js";
|
|
3
3
|
function validatePropertyOrder(plugins) {
|
|
4
|
-
const expectedOrder = ['extends', 'components', 'resources', 'archetypes', 'transactions', 'actions', 'systems'];
|
|
4
|
+
const expectedOrder = ['extends', 'services', 'components', 'resources', 'archetypes', 'computed', 'transactions', 'actions', 'systems'];
|
|
5
5
|
const actualKeys = Object.keys(plugins);
|
|
6
6
|
const definedKeys = actualKeys.filter(key => key in plugins);
|
|
7
7
|
for (let i = 0; i < definedKeys.length; i++) {
|
|
@@ -21,42 +21,15 @@ function validatePropertyOrder(plugins) {
|
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
23
|
}
|
|
24
|
-
/**
|
|
25
|
-
* Creates a Database.Plugin from a plugin descriptor.
|
|
26
|
-
*
|
|
27
|
-
* **IMPORTANT: Property Order Requirement**
|
|
28
|
-
*
|
|
29
|
-
* Properties MUST be defined in this exact order:
|
|
30
|
-
* 1. extends (optional) - Base plugin to extend
|
|
31
|
-
* 2. components (optional) - Component schema definitions
|
|
32
|
-
* 3. resources (optional) - Resource schema definitions
|
|
33
|
-
* 4. archetypes (optional) - Archetype definitions
|
|
34
|
-
* 5. transactions (optional) - Transaction declarations
|
|
35
|
-
* 6. actions (optional) - Action declarations
|
|
36
|
-
* 7. systems (optional) - System declarations
|
|
37
|
-
*
|
|
38
|
-
* Example:
|
|
39
|
-
* ```ts
|
|
40
|
-
* Database.Plugin.create({
|
|
41
|
-
* extends: basePlugin, // 1. extends first
|
|
42
|
-
* components: { ... }, // 2. components
|
|
43
|
-
* resources: { ... }, // 3. resources
|
|
44
|
-
* archetypes: { ... }, // 4. archetypes
|
|
45
|
-
* transactions: { ... }, // 5. transactions
|
|
46
|
-
* actions: { ... }, // 6. actions
|
|
47
|
-
* systems: { ... } // 7. systems last
|
|
48
|
-
* })
|
|
49
|
-
* ```
|
|
50
|
-
*
|
|
51
|
-
* @throws Error if properties are not in the correct order
|
|
52
|
-
*/
|
|
53
24
|
export function createPlugin(plugins) {
|
|
54
25
|
validatePropertyOrder(plugins);
|
|
55
26
|
// Normalize plugins descriptor to a plugin object in correct order
|
|
56
27
|
const plugin = {
|
|
28
|
+
services: plugins.services ?? {},
|
|
57
29
|
components: plugins.components ?? {},
|
|
58
30
|
resources: plugins.resources ?? {},
|
|
59
31
|
archetypes: plugins.archetypes ?? {},
|
|
32
|
+
computed: plugins.computed ?? {},
|
|
60
33
|
transactions: plugins.transactions ?? {},
|
|
61
34
|
actions: plugins.actions ?? {},
|
|
62
35
|
systems: plugins.systems ?? {},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-plugin.js","sourceRoot":"","sources":["../../../src/ecs/database/create-plugin.ts"],"names":[],"mappings":"AAAA,uDAAuD;AAUvD,OAAO,EAAkB,cAAc,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"create-plugin.js","sourceRoot":"","sources":["../../../src/ecs/database/create-plugin.ts"],"names":[],"mappings":"AAAA,uDAAuD;AAUvD,OAAO,EAAkB,cAAc,EAAE,MAAM,sBAAsB,CAAC;AA4BtE,SAAS,qBAAqB,CAAC,OAAgC;IAC3D,MAAM,aAAa,GAAG,CAAC,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IACzI,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACxC,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,OAAO,CAAC,CAAC;IAE7D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1C,MAAM,GAAG,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QAC3B,MAAM,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACjD,IAAI,aAAa,KAAK,CAAC,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,6CAA6C,GAAG,4BAA4B,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC5H,CAAC;QACD,uDAAuD;QACvD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YACzB,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;YAC/B,MAAM,iBAAiB,GAAG,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACzD,IAAI,iBAAiB,GAAG,aAAa,EAAE,CAAC;gBACpC,MAAM,IAAI,KAAK,CACX,qCAAqC,GAAG,uBAAuB,OAAO,KAAK;oBAC3E,mBAAmB,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACrF,CAAC;YACN,CAAC;QACL,CAAC;IACL,CAAC;AACL,CAAC;AA2DD,MAAM,UAAU,YAAY,CAWxB,OA4CC;IAWD,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAE/B,mEAAmE;IACnE,MAAM,MAAM,GAAQ;QAChB,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,EAAE;QAChC,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,EAAE;QACpC,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,EAAE;QAClC,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,EAAE;QACpC,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,EAAE;QAChC,YAAY,EAAE,OAAO,CAAC,YAAY,IAAI,EAAE;QACxC,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,EAAE;QAC9B,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,EAAE;KACjC,CAAC;IAEF,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QAClB,OAAO,cAAc,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAQ,CAAC;IAC1D,CAAC;IACD,OAAO,MAAa,CAAC;AACzB,CAAC"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import { describe, it, expect } from "vitest";
|
|
3
3
|
import { createPlugin } from "./create-plugin.js";
|
|
4
4
|
import { Database } from "./database.js";
|
|
5
|
+
import { Observe } from "../../observe/index.js";
|
|
5
6
|
describe("Database.Plugin.create", () => {
|
|
6
7
|
describe("property order validation", () => {
|
|
7
8
|
it("should throw error if properties are in wrong order", () => {
|
|
@@ -11,6 +12,12 @@ describe("Database.Plugin.create", () => {
|
|
|
11
12
|
extends: undefined, // extends should come first
|
|
12
13
|
});
|
|
13
14
|
}).toThrow('Property "extends" must come before "components"');
|
|
15
|
+
expect(() => {
|
|
16
|
+
Database.Plugin.create({
|
|
17
|
+
components: {},
|
|
18
|
+
services: {}, // services should come before components
|
|
19
|
+
});
|
|
20
|
+
}).toThrow('Property "services" must come before "components"');
|
|
14
21
|
expect(() => {
|
|
15
22
|
Database.Plugin.create({
|
|
16
23
|
systems: {},
|
|
@@ -23,14 +30,25 @@ describe("Database.Plugin.create", () => {
|
|
|
23
30
|
archetypes: {}, // archetypes should come before transactions
|
|
24
31
|
});
|
|
25
32
|
}).toThrow('Property "archetypes" must come before "transactions"');
|
|
33
|
+
expect(() => {
|
|
34
|
+
Database.Plugin.create({
|
|
35
|
+
components: {},
|
|
36
|
+
resources: {},
|
|
37
|
+
archetypes: {},
|
|
38
|
+
transactions: {},
|
|
39
|
+
computed: {}, // computed should come before transactions
|
|
40
|
+
});
|
|
41
|
+
}).toThrow('Property "computed" must come before "transactions"');
|
|
26
42
|
});
|
|
27
43
|
it("should accept properties in correct order", () => {
|
|
28
44
|
expect(() => {
|
|
29
45
|
Database.Plugin.create({
|
|
30
46
|
extends: undefined,
|
|
47
|
+
services: {},
|
|
31
48
|
components: {},
|
|
32
49
|
resources: {},
|
|
33
50
|
archetypes: {},
|
|
51
|
+
computed: {},
|
|
34
52
|
transactions: {},
|
|
35
53
|
actions: {},
|
|
36
54
|
systems: {},
|
|
@@ -38,6 +56,7 @@ describe("Database.Plugin.create", () => {
|
|
|
38
56
|
}).not.toThrow();
|
|
39
57
|
expect(() => {
|
|
40
58
|
Database.Plugin.create({
|
|
59
|
+
services: {},
|
|
41
60
|
components: {},
|
|
42
61
|
resources: {},
|
|
43
62
|
archetypes: {},
|
|
@@ -47,6 +66,42 @@ describe("Database.Plugin.create", () => {
|
|
|
47
66
|
});
|
|
48
67
|
}).not.toThrow();
|
|
49
68
|
});
|
|
69
|
+
it("should create plugin with computed (Observe factories) in correct order", async () => {
|
|
70
|
+
const plugin = createPlugin({
|
|
71
|
+
components: {},
|
|
72
|
+
resources: { n: { default: 10 } },
|
|
73
|
+
archetypes: {},
|
|
74
|
+
computed: {
|
|
75
|
+
value: (_db) => Observe.fromConstant(42),
|
|
76
|
+
doubleN: (db) => Observe.withMap(db.observe.resources.n, (value) => value * 2),
|
|
77
|
+
},
|
|
78
|
+
transactions: {},
|
|
79
|
+
actions: {},
|
|
80
|
+
systems: {},
|
|
81
|
+
});
|
|
82
|
+
expect(plugin.computed).toBeDefined();
|
|
83
|
+
expect(plugin.computed.value).toBeDefined();
|
|
84
|
+
// computed.value is a factory (db) => Observe<T>, not the Observe itself
|
|
85
|
+
expect(typeof plugin.computed.value).toBe("function");
|
|
86
|
+
const db = Database.create(plugin);
|
|
87
|
+
const value = await Observe.toPromise(db.computed.value);
|
|
88
|
+
expect(value).toBe(42);
|
|
89
|
+
const doubleN = await Observe.toPromise(db.computed.doubleN);
|
|
90
|
+
expect(doubleN).toBe(20);
|
|
91
|
+
});
|
|
92
|
+
it("should allow actions to access services from the same plugin", () => {
|
|
93
|
+
const authService = { token: 'test', isAuthenticated: true };
|
|
94
|
+
const plugin = Database.Plugin.create({
|
|
95
|
+
services: {
|
|
96
|
+
auth: () => authService,
|
|
97
|
+
},
|
|
98
|
+
actions: {
|
|
99
|
+
getAuth: (db) => db.services.auth,
|
|
100
|
+
},
|
|
101
|
+
});
|
|
102
|
+
expect(plugin.services.auth).toBeDefined();
|
|
103
|
+
expect(plugin.actions.getAuth).toBeDefined();
|
|
104
|
+
});
|
|
50
105
|
});
|
|
51
106
|
describe("single descriptor (no dependencies)", () => {
|
|
52
107
|
it("should create plugin with components, resources, and archetypes", () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-plugin.test.js","sourceRoot":"","sources":["../../../src/ecs/database/create-plugin.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"create-plugin.test.js","sourceRoot":"","sources":["../../../src/ecs/database/create-plugin.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import { createPlugin } from "./create-plugin.js";
|
|
3
3
|
import { Database } from "./database.js";
|
|
4
4
|
import { scheduler } from "../index.js";
|
|
5
|
+
import { Observe } from "../../observe/index.js";
|
|
5
6
|
/**
|
|
6
7
|
* Type-only tests for createPlugin type inference and constraints.
|
|
7
8
|
*
|
|
@@ -54,6 +55,28 @@ function validTypeInferenceTests() {
|
|
|
54
55
|
}
|
|
55
56
|
},
|
|
56
57
|
});
|
|
58
|
+
// Test: Valid plugin with computed (db type inferred, no cast; each factory returns Observe<unknown>)
|
|
59
|
+
const validComputedPlugin = createPlugin({
|
|
60
|
+
components: {
|
|
61
|
+
a: { type: "number" },
|
|
62
|
+
b: { type: "string" }
|
|
63
|
+
},
|
|
64
|
+
resources: {
|
|
65
|
+
c: { default: false }
|
|
66
|
+
},
|
|
67
|
+
archetypes: {
|
|
68
|
+
A: ["a", "b"],
|
|
69
|
+
},
|
|
70
|
+
computed: {
|
|
71
|
+
derived: (db) => {
|
|
72
|
+
const _c = db.resources.c;
|
|
73
|
+
return Observe.fromConstant(0);
|
|
74
|
+
},
|
|
75
|
+
},
|
|
76
|
+
transactions: {},
|
|
77
|
+
actions: {},
|
|
78
|
+
systems: {},
|
|
79
|
+
});
|
|
57
80
|
// Test: Valid systems with transactions
|
|
58
81
|
const validSystemPlugin = createPlugin({
|
|
59
82
|
components: {
|
|
@@ -309,6 +332,21 @@ function invalidSystemReference() {
|
|
|
309
332
|
},
|
|
310
333
|
});
|
|
311
334
|
}
|
|
335
|
+
// Test: Invalid computed return type (must extend Observe<unknown>)
|
|
336
|
+
function invalidComputedReturnType() {
|
|
337
|
+
createPlugin({
|
|
338
|
+
components: { a: { type: "number" } },
|
|
339
|
+
resources: {},
|
|
340
|
+
archetypes: {},
|
|
341
|
+
computed: {
|
|
342
|
+
// @ts-expect-error - computed factory must return something extending Observe<unknown>, not a plain number
|
|
343
|
+
bad: (_db) => 42,
|
|
344
|
+
},
|
|
345
|
+
transactions: {},
|
|
346
|
+
actions: {},
|
|
347
|
+
systems: {},
|
|
348
|
+
});
|
|
349
|
+
}
|
|
312
350
|
// Test: Invalid transaction call in action
|
|
313
351
|
function invalidTransactionCallInAction() {
|
|
314
352
|
createPlugin({
|
|
@@ -664,4 +702,123 @@ function checkDatabaseTypeFromExtendedPlugin() {
|
|
|
664
702
|
});
|
|
665
703
|
const db = Database.create(extendedPlugin);
|
|
666
704
|
}
|
|
705
|
+
// Test: Basic service factory inference
|
|
706
|
+
function validServiceFactoryBasic() {
|
|
707
|
+
const plugin = createPlugin({
|
|
708
|
+
services: {
|
|
709
|
+
auth: (_db) => ({ token: 'test', isAuthenticated: true }),
|
|
710
|
+
},
|
|
711
|
+
});
|
|
712
|
+
}
|
|
713
|
+
// Test: Service accessible in systems
|
|
714
|
+
function validServiceAccessInSystems() {
|
|
715
|
+
const plugin = createPlugin({
|
|
716
|
+
services: {
|
|
717
|
+
auth: (_db) => ({ token: 'test', isAuthenticated: true }),
|
|
718
|
+
},
|
|
719
|
+
systems: {
|
|
720
|
+
testSystem: {
|
|
721
|
+
create: (db) => () => {
|
|
722
|
+
},
|
|
723
|
+
},
|
|
724
|
+
},
|
|
725
|
+
});
|
|
726
|
+
}
|
|
727
|
+
// Test: Service factory with extended plugin - db has access to base plugin
|
|
728
|
+
function validServiceFactoryWithExtendedPlugin() {
|
|
729
|
+
const basePlugin = createPlugin({
|
|
730
|
+
resources: {
|
|
731
|
+
environment: { default: null },
|
|
732
|
+
},
|
|
733
|
+
transactions: {
|
|
734
|
+
setEnvironment: (store, env) => {
|
|
735
|
+
store.resources.environment = env;
|
|
736
|
+
},
|
|
737
|
+
},
|
|
738
|
+
});
|
|
739
|
+
const extendedPlugin = createPlugin({
|
|
740
|
+
extends: basePlugin,
|
|
741
|
+
services: {
|
|
742
|
+
// Service factory has access to base plugin's db type
|
|
743
|
+
auth: (db) => {
|
|
744
|
+
// Verify db has access to base plugin's transactions
|
|
745
|
+
// Note: ToTransactionFunctions wraps the input type with AsyncArgsProvider union
|
|
746
|
+
db.transactions.setEnvironment(null);
|
|
747
|
+
return { token: 'test', isAuthenticated: true };
|
|
748
|
+
},
|
|
749
|
+
},
|
|
750
|
+
});
|
|
751
|
+
}
|
|
752
|
+
// Test: Service accessible in actions (same plugin)
|
|
753
|
+
function validServiceAccessInActions() {
|
|
754
|
+
const plugin = createPlugin({
|
|
755
|
+
services: {
|
|
756
|
+
auth: (_db) => ({ token: 'test', isAuthenticated: true }),
|
|
757
|
+
},
|
|
758
|
+
actions: {
|
|
759
|
+
useAuth: (db) => {
|
|
760
|
+
},
|
|
761
|
+
},
|
|
762
|
+
});
|
|
763
|
+
}
|
|
764
|
+
// Test: Extended plugin services accessible in current plugin's actions
|
|
765
|
+
function validExtendedServiceAccessInActions() {
|
|
766
|
+
const basePlugin = createPlugin({
|
|
767
|
+
services: {
|
|
768
|
+
auth: (_db) => ({ token: 'test', isAuthenticated: true }),
|
|
769
|
+
},
|
|
770
|
+
});
|
|
771
|
+
const extendedPlugin = createPlugin({
|
|
772
|
+
extends: basePlugin,
|
|
773
|
+
actions: {
|
|
774
|
+
useAuth: (db) => {
|
|
775
|
+
},
|
|
776
|
+
},
|
|
777
|
+
});
|
|
778
|
+
}
|
|
779
|
+
// Test: Chained extension with services
|
|
780
|
+
function validChainedExtensionWithServices() {
|
|
781
|
+
const level1 = createPlugin({
|
|
782
|
+
resources: {
|
|
783
|
+
env: { default: null },
|
|
784
|
+
},
|
|
785
|
+
});
|
|
786
|
+
const level2 = createPlugin({
|
|
787
|
+
extends: level1,
|
|
788
|
+
services: {
|
|
789
|
+
// Service can access level1's resources
|
|
790
|
+
auth: (db) => {
|
|
791
|
+
return { token: 'test', isAuthenticated: true };
|
|
792
|
+
},
|
|
793
|
+
},
|
|
794
|
+
});
|
|
795
|
+
const level3 = createPlugin({
|
|
796
|
+
extends: level2,
|
|
797
|
+
services: {
|
|
798
|
+
// Service can access level1's resources and level2's services
|
|
799
|
+
session: (db) => {
|
|
800
|
+
return { sessionId: 'abc123' };
|
|
801
|
+
},
|
|
802
|
+
},
|
|
803
|
+
systems: {
|
|
804
|
+
testSystem: {
|
|
805
|
+
create: (db) => () => {
|
|
806
|
+
},
|
|
807
|
+
},
|
|
808
|
+
},
|
|
809
|
+
});
|
|
810
|
+
}
|
|
811
|
+
// Test: Service cannot access current plugin's services (only extended)
|
|
812
|
+
function invalidServiceAccessCurrentPluginServices() {
|
|
813
|
+
createPlugin({
|
|
814
|
+
services: {
|
|
815
|
+
a: (_db) => ({ value: 1 }),
|
|
816
|
+
b: (db) => {
|
|
817
|
+
// @ts-expect-error - Service 'a' is not accessible because it's in the same plugin
|
|
818
|
+
const _value = db.services.a;
|
|
819
|
+
return { value: 2 };
|
|
820
|
+
},
|
|
821
|
+
},
|
|
822
|
+
});
|
|
823
|
+
}
|
|
667
824
|
//# sourceMappingURL=create-plugin.type-test.js.map
|