@adobe/data 0.1.2 → 0.2.0
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/.cursorrules +28 -0
- package/.eslintrc.cjs +48 -0
- package/.github/CONTRIBUTING.md +47 -0
- package/CODE_OF_CONDUCT.md +79 -0
- package/LICENSE +21 -0
- package/README.md +2 -2
- package/asconfig.json +22 -0
- package/assembly/index.ts +85 -0
- package/assembly/tsconfig.json +17 -0
- package/c/build_run.sh +2 -0
- package/c/vector_addition +0 -0
- package/c/vector_addition.c +125 -0
- package/{cache/functions/types.js → config/license.js} +0 -2
- package/docs/perftest.html +28 -0
- package/index.html +10 -0
- package/package.json +50 -27
- package/scripts/deploy-docs.sh +41 -0
- package/{assembly-test/assembly.test.js → src/assembly-test/assembly.test.ts} +4 -4
- package/src/cache/async-cache.ts +38 -0
- package/{cache/blob-store.test.js → src/cache/blob-store.test.ts} +41 -7
- package/src/cache/blob-store.ts +278 -0
- package/src/cache/data-cache.test.ts +61 -0
- package/src/cache/data-cache.ts +183 -0
- package/src/cache/expiring-data-cache.test.ts +81 -0
- package/src/cache/expiring-data-cache.ts +61 -0
- package/src/cache/fallback-async-cache.ts +49 -0
- package/src/cache/functions/async-data-function.ts +25 -0
- package/src/cache/functions/functions.test.ts +84 -0
- package/{cache/functions/get-cached.test.js → src/cache/functions/get-cached.test.ts} +24 -7
- package/{cache/functions/get-cached.js → src/cache/functions/get-cached.ts} +12 -6
- package/{cache/functions/hashing/blob-to-hash.js → src/cache/functions/hashing/blob-to-hash.ts} +20 -18
- package/{cache/functions/hashing/buffer-to-hash.js → src/cache/functions/hashing/buffer-to-hash.ts} +7 -7
- package/src/cache/functions/hashing/hashing.test.ts +95 -0
- package/{cache/functions/hashing/index.js → src/cache/functions/hashing/index.ts} +1 -1
- package/{cache/functions/hashing/json-to-hash.js → src/cache/functions/hashing/json-to-hash.ts} +3 -3
- package/{cache/functions/hashing/string-to-hash.js → src/cache/functions/hashing/string-to-hash.ts} +11 -10
- package/{cache/functions/index.js → src/cache/functions/index.ts} +2 -4
- package/{cache/functions/memoize.js → src/cache/functions/memoize.ts} +22 -15
- package/src/cache/functions/prevent-parallel-execution.ts +50 -0
- package/src/cache/get-persistent-cache.ts +62 -0
- package/{cache/index.js → src/cache/index.ts} +9 -3
- package/src/cache/managed-array.ts +243 -0
- package/{cache/managed-async-cache.browser.test.js → src/cache/managed-async-cache.browser.test.ts} +27 -24
- package/src/cache/managed-async-cache.ts +78 -0
- package/src/cache/memory-allocator.ts +176 -0
- package/src/cache/memory-async-cache.ts +51 -0
- package/src/data.ts +38 -0
- package/src/ecs/README.md +21 -0
- package/src/ecs/archetype/archetype.ts +39 -0
- package/src/ecs/archetype/create-archetype.test.ts +115 -0
- package/src/ecs/archetype/create-archetype.ts +52 -0
- package/src/ecs/archetype/delete-row.test.ts +110 -0
- package/src/ecs/archetype/delete-row.ts +37 -0
- package/src/ecs/archetype/index.ts +24 -0
- package/src/ecs/component-schemas.ts +24 -0
- package/src/ecs/core-components.ts +443 -0
- package/src/ecs/database/create-database.test.ts +745 -0
- package/src/ecs/database/create-database.ts +205 -0
- package/src/ecs/database/database.ts +81 -0
- package/src/ecs/database/index.ts +24 -0
- package/src/ecs/database/observe-dependent-value.test.ts +198 -0
- package/src/ecs/database/observe-dependent-value.ts +78 -0
- package/src/ecs/database/transactional-store/create-transactional-store.test.ts +250 -0
- package/src/ecs/database/transactional-store/create-transactional-store.ts +281 -0
- package/{ecs/ecs/ecs-types.js → src/ecs/database/transactional-store/index.ts} +1 -2
- package/src/ecs/database/transactional-store/transactional-store.ts +80 -0
- package/src/ecs/entity-location-table/create-entity-location-table.test.ts +170 -0
- package/src/ecs/entity-location-table/create-entity-location-table.ts +96 -0
- package/src/ecs/entity-location-table/entity-location-table.ts +30 -0
- package/src/ecs/entity-location-table/entity-location.ts +34 -0
- package/src/ecs/entity-location-table/index.ts +23 -0
- package/src/ecs/entity.ts +26 -0
- package/src/ecs/index.ts +26 -0
- package/src/ecs/store/core/core.ts +71 -0
- package/src/ecs/store/core/create-core.test.ts +440 -0
- package/src/ecs/store/core/create-core.ts +168 -0
- package/{cache/async-cache.js → src/ecs/store/core/index.ts} +1 -2
- package/src/ecs/store/create-store.test.ts +562 -0
- package/src/ecs/store/create-store.ts +97 -0
- package/src/ecs/store/index.ts +23 -0
- package/{types/types.js → src/ecs/store/resource-components.ts} +2 -6
- package/src/ecs/store/store.ts +55 -0
- package/src/equals-shallow.test.ts +133 -0
- package/src/equals-shallow.ts +37 -0
- package/src/equals.test.ts +175 -0
- package/src/equals.ts +70 -0
- package/src/index.ts +27 -0
- package/src/internal/array-buffer-like/copy.ts +469 -0
- package/src/internal/array-buffer-like/grow.ts +53 -0
- package/{core/index.js → src/internal/array-buffer-like/index.ts} +4 -4
- package/src/internal/array-buffer-like/is-array-buffer.ts +445 -0
- package/src/internal/array-buffer-like/is-shared-array-buffer.ts +445 -0
- package/{core/functions/is-async-generator.js → src/internal/async-generator/is-async-generator.ts} +2 -2
- package/{core/schema.js → src/internal/data-view-32/create-data-view-32.ts} +8 -11
- package/src/internal/data-view-32/data-view-32.ts +447 -0
- package/{ecs/action-ecs/index.js → src/internal/data-view-32/index.ts} +2 -2
- package/src/internal/function/memoize-factory.ts +12 -0
- package/src/internal/object/index.ts +23 -0
- package/{cache/functions/bind-functions.js → src/internal/object/map-entries.ts} +6 -11
- package/src/internal/promise/is-promise.ts +28 -0
- package/src/internal/typed-array/get-byte-size.ts +50 -0
- package/src/internal/typed-array/index.ts +24 -0
- package/src/internal/typed-array/typed-array-constructer.ts +32 -0
- package/src/internal/typed-array/typed-array.ts +25 -0
- package/src/is-data.ts +47 -0
- package/src/lit/decorators/apply-decorator.ts +24 -0
- package/src/lit/decorators/apply-service-decorators.ts +13 -0
- package/src/lit/decorators/index.ts +24 -0
- package/src/lit/decorators/require-service.ts +19 -0
- package/src/lit/elements/index.ts +3 -0
- package/src/lit/elements/service-application.ts +26 -0
- package/src/lit/elements/service-context.ts +3 -0
- package/src/lit/elements/service-element.ts +18 -0
- package/src/lit/hooks/component/component.ts +10 -0
- package/src/lit/hooks/component/stack.ts +17 -0
- package/src/lit/hooks/index.ts +13 -0
- package/src/lit/hooks/use-connected.ts +39 -0
- package/src/lit/hooks/use-effect.ts +17 -0
- package/src/lit/hooks/use-element.ts +8 -0
- package/src/lit/hooks/use-memo.ts +14 -0
- package/src/lit/hooks/use-observable-values.ts +9 -0
- package/src/lit/hooks/use-observable.ts +13 -0
- package/src/lit/hooks/use-ref.ts +6 -0
- package/src/lit/hooks/use-resize-observer.ts +27 -0
- package/src/lit/hooks/use-state.ts +17 -0
- package/src/lit/hooks/use-window-event.ts +14 -0
- package/src/lit/hooks/with-hooks.ts +20 -0
- package/src/lit/index.ts +3 -0
- package/src/mutable-clone.ts +29 -0
- package/{core/data.test.js → src/normalize.test.ts} +22 -22
- package/src/normalize.ts +37 -0
- package/src/observe/create-observable-event.ts +47 -0
- package/src/observe/create-observable-state.ts +51 -0
- package/src/observe/create-persisted-state.test.ts +143 -0
- package/src/observe/create-persisted-state.ts +60 -0
- package/src/observe/create-query-state.ts +70 -0
- package/{observe/from-array.js → src/observe/from-array.ts} +14 -3
- package/{service/service.js → src/observe/from-constant.ts} +13 -4
- package/{observe/from-element-id.js → src/observe/from-element-id.ts} +44 -39
- package/src/observe/from-element-properties-and-events.ts +47 -0
- package/{observe/from-element-property.js → src/observe/from-element-property.ts} +33 -25
- package/src/observe/from-promise-with-error.ts +51 -0
- package/src/observe/from-promise.ts +49 -0
- package/src/observe/from-properties.ts +67 -0
- package/{observe/index.js → src/observe/index.ts} +4 -1
- package/src/observe/observe.test.ts +467 -0
- package/src/observe/to-promise.ts +40 -0
- package/src/observe/to-properties.ts +41 -0
- package/src/observe/types.ts +40 -0
- package/src/observe/with-async-map.ts +37 -0
- package/src/observe/with-batch.test.ts +141 -0
- package/src/observe/with-batch.ts +67 -0
- package/{core/data.js → src/observe/with-cache.ts} +32 -26
- package/src/observe/with-copy.ts +32 -0
- package/src/observe/with-deduplicate-data.ts +43 -0
- package/src/observe/with-deduplicate.ts +41 -0
- package/src/observe/with-default.ts +48 -0
- package/src/observe/with-lazy.test.ts +68 -0
- package/{core/functions/is-promise.js → src/observe/with-lazy.ts} +17 -5
- package/{observe/with-map-data.js → src/observe/with-map-data.ts} +9 -3
- package/src/observe/with-map.ts +36 -0
- package/src/observe/with-optional.ts +47 -0
- package/src/observe/with-unwrap.ts +54 -0
- package/src/old-ecs/action-ecs/action-ecs.test.ts +420 -0
- package/src/old-ecs/action-ecs/action-ecs.ts +274 -0
- package/src/old-ecs/action-ecs/action-types.ts +178 -0
- package/{core/functions/index.js → src/old-ecs/action-ecs/index.ts} +8 -5
- package/{service/sequential-action.js → src/old-ecs/action-ecs/sequential-action.ts} +19 -4
- package/src/old-ecs/core-ecs/core-ecs-serialization.test.ts +244 -0
- package/src/old-ecs/core-ecs/core-ecs-types.ts +183 -0
- package/src/old-ecs/core-ecs/core-ecs.test.ts +474 -0
- package/src/old-ecs/core-ecs/core-ecs.ts +640 -0
- package/src/old-ecs/core-ecs/index.ts +30 -0
- package/src/old-ecs/ecs/ecs-types.ts +189 -0
- package/src/old-ecs/ecs/ecs-where-functions.ts +95 -0
- package/src/old-ecs/ecs/ecs.test.ts +461 -0
- package/src/old-ecs/ecs/ecs.ts +279 -0
- package/{ecs/core-ecs/core-ecs-types.js → src/old-ecs/ecs/index.ts} +2 -2
- package/src/old-ecs/entity.ts +26 -0
- package/{ecs/index.js → src/old-ecs/index.ts} +1 -1
- package/{ecs/transaction-ecs/index.js → src/old-ecs/transaction-ecs/index.ts} +0 -1
- package/src/old-ecs/transaction-ecs/transaction-ecs.test.ts +725 -0
- package/src/old-ecs/transaction-ecs/transaction-ecs.ts +283 -0
- package/src/old-ecs/transaction-ecs/transaction-types.ts +248 -0
- package/src/old-ecs/transaction-ecs/transactions.ts +243 -0
- package/src/perftest/ecs-perf.ts +255 -0
- package/src/perftest/helper-functions.ts +31 -0
- package/src/perftest/horizon-perf.ts +132 -0
- package/{perftest/index.js → src/perftest/index.ts} +9 -7
- package/src/perftest/perf-test.ts +193 -0
- package/src/perftest/perf.md +90 -0
- package/src/perftest/vanilla-perf.ts +136 -0
- package/src/schema/boolean.ts +5 -0
- package/src/schema/dynamic/deep-merge.test.ts +100 -0
- package/src/schema/dynamic/deep-merge.ts +67 -0
- package/src/schema/dynamic/enumerate-patches.test.ts +235 -0
- package/src/schema/dynamic/enumerate-patches.ts +90 -0
- package/src/schema/dynamic/get-dynamic-schema.test.ts +129 -0
- package/src/schema/dynamic/get-dynamic-schema.ts +48 -0
- package/src/schema/dynamic/index.ts +22 -0
- package/src/schema/f32.ts +30 -0
- package/src/schema/i32.ts +31 -0
- package/src/schema/index.ts +32 -0
- package/{cache/functions/omit.js → src/schema/nullable.ts} +10 -7
- package/src/schema/schema.ts +229 -0
- package/src/schema/time.ts +5 -0
- package/src/schema/true.ts +26 -0
- package/src/schema/tuple.ts +5 -0
- package/src/schema/u32.ts +31 -0
- package/src/schema/validation/is-valid.test.ts +43 -0
- package/{core/functions/array-equals.js → src/schema/validation/is-valid.ts} +8 -10
- package/src/schema/validation/validate.test.ts +120 -0
- package/src/schema/validation/validate.ts +41 -0
- package/{core/functions/with-validation.test.js → src/schema/validation/with-validation.test.ts} +28 -12
- package/{core/functions/with-validation.js → src/schema/validation/with-validation.ts} +14 -10
- package/src/schema.test.ts +55 -0
- package/src/service/add-observable-actions.ts +207 -0
- package/{service/index.js → src/service/index.ts} +4 -4
- package/src/service/is-service.ts +7 -0
- package/src/service/progressive-result.ts +141 -0
- package/src/service/service.ts +27 -0
- package/src/table/add-row.ts +42 -0
- package/src/table/create-table.ts +36 -0
- package/src/table/delete-row.ts +42 -0
- package/src/table/ensure-capacity.ts +37 -0
- package/src/table/get-row-data.ts +31 -0
- package/src/table/index.ts +29 -0
- package/src/table/row-index.ts +26 -0
- package/src/table/table.ts +32 -0
- package/src/table/update-row.ts +35 -0
- package/src/tsconfig.json +6 -0
- package/src/typed-buffer/copy-to-gpu-buffer.ts +23 -0
- package/{cache/expiring-data-cache.js → src/typed-buffer/create-array-buffer.ts} +31 -25
- package/src/typed-buffer/create-number-buffer.ts +90 -0
- package/src/typed-buffer/create-struct-buffer.ts +93 -0
- package/src/typed-buffer/create-typed-buffer.ts +49 -0
- package/src/typed-buffer/index.ts +26 -0
- package/src/typed-buffer/structs/assert-struct.ts +37 -0
- package/src/typed-buffer/structs/create-read-struct.test.ts +202 -0
- package/src/typed-buffer/structs/create-read-struct.ts +77 -0
- package/src/typed-buffer/structs/create-write-struct.ts +73 -0
- package/src/typed-buffer/structs/get-field-offset.ts +36 -0
- package/src/typed-buffer/structs/get-struct-layout.test.ts +146 -0
- package/src/typed-buffer/structs/get-struct-layout.ts +222 -0
- package/src/typed-buffer/structs/index.ts +22 -0
- package/src/typed-buffer/structs/read-struct.ts +25 -0
- package/src/typed-buffer/structs/struct-layout.ts +465 -0
- package/src/typed-buffer/structs/write-struct.test.ts +195 -0
- package/src/typed-buffer/structs/write-struct.ts +25 -0
- package/src/typed-buffer/typed-buffer.test.ts +253 -0
- package/src/typed-buffer/typed-buffer.ts +41 -0
- package/src/types/assert.ts +22 -0
- package/src/types/equal.ts +24 -0
- package/{types/index.js → src/types/index.ts} +3 -1
- package/src/types/types.ts +166 -0
- package/tsconfig-base.json +25 -0
- package/tsconfig.json +8 -0
- package/typedoc.json +22 -0
- package/vite.config.js +16 -0
- package/assembly/index.d.ts +0 -30
- package/assembly/index.js +0 -18
- package/assembly/index.wasm +0 -0
- package/assembly/index.wasm.map +0 -1
- package/assembly-test/assembly.test.d.ts +0 -1
- package/assembly-test/assembly.test.js.map +0 -1
- package/cache/async-cache.d.ts +0 -15
- package/cache/async-cache.js.map +0 -1
- package/cache/blob-store.d.ts +0 -94
- package/cache/blob-store.js +0 -191
- package/cache/blob-store.js.map +0 -1
- package/cache/blob-store.test.d.ts +0 -1
- package/cache/blob-store.test.js.map +0 -1
- package/cache/data-cache.d.ts +0 -38
- package/cache/data-cache.js +0 -96
- package/cache/data-cache.js.map +0 -1
- package/cache/data-cache.test.d.ts +0 -1
- package/cache/data-cache.test.js +0 -50
- package/cache/data-cache.test.js.map +0 -1
- package/cache/expiring-data-cache.d.ts +0 -6
- package/cache/expiring-data-cache.js.map +0 -1
- package/cache/expiring-data-cache.test.d.ts +0 -1
- package/cache/expiring-data-cache.test.js +0 -62
- package/cache/expiring-data-cache.test.js.map +0 -1
- package/cache/fallback-async-cache.d.ts +0 -7
- package/cache/fallback-async-cache.js +0 -22
- package/cache/fallback-async-cache.js.map +0 -1
- package/cache/functions/bind-functions.d.ts +0 -6
- package/cache/functions/bind-functions.js.map +0 -1
- package/cache/functions/functions.test.d.ts +0 -1
- package/cache/functions/functions.test.js +0 -79
- package/cache/functions/functions.test.js.map +0 -1
- package/cache/functions/get-cached.d.ts +0 -11
- package/cache/functions/get-cached.js.map +0 -1
- package/cache/functions/get-cached.test.d.ts +0 -1
- package/cache/functions/get-cached.test.js.map +0 -1
- package/cache/functions/hashing/blob-to-hash.d.ts +0 -4
- package/cache/functions/hashing/blob-to-hash.js.map +0 -1
- package/cache/functions/hashing/buffer-to-hash.d.ts +0 -4
- package/cache/functions/hashing/buffer-to-hash.js.map +0 -1
- package/cache/functions/hashing/hashing.test.d.ts +0 -1
- package/cache/functions/hashing/hashing.test.js +0 -95
- package/cache/functions/hashing/hashing.test.js.map +0 -1
- package/cache/functions/hashing/index.d.ts +0 -4
- package/cache/functions/hashing/index.js.map +0 -1
- package/cache/functions/hashing/json-to-hash.d.ts +0 -4
- package/cache/functions/hashing/json-to-hash.js.map +0 -1
- package/cache/functions/hashing/string-to-hash.d.ts +0 -4
- package/cache/functions/hashing/string-to-hash.js.map +0 -1
- package/cache/functions/index.d.ts +0 -5
- package/cache/functions/index.js.map +0 -1
- package/cache/functions/memoize.d.ts +0 -12
- package/cache/functions/memoize.js.map +0 -1
- package/cache/functions/omit.d.ts +0 -1
- package/cache/functions/omit.js.map +0 -1
- package/cache/functions/prevent-parallel-execution.d.ts +0 -7
- package/cache/functions/prevent-parallel-execution.js +0 -25
- package/cache/functions/prevent-parallel-execution.js.map +0 -1
- package/cache/functions/types.d.ts +0 -1
- package/cache/functions/types.js.map +0 -1
- package/cache/get-persistent-cache.d.ts +0 -12
- package/cache/get-persistent-cache.js +0 -23
- package/cache/get-persistent-cache.js.map +0 -1
- package/cache/index.d.ts +0 -3
- package/cache/index.js.map +0 -1
- package/cache/managed-array.d.ts +0 -23
- package/cache/managed-array.js +0 -160
- package/cache/managed-array.js.map +0 -1
- package/cache/managed-async-cache.browser.test.d.ts +0 -1
- package/cache/managed-async-cache.browser.test.js.map +0 -1
- package/cache/managed-async-cache.d.ts +0 -4
- package/cache/managed-async-cache.js +0 -45
- package/cache/managed-async-cache.js.map +0 -1
- package/cache/memory-allocator.d.ts +0 -23
- package/cache/memory-allocator.js +0 -94
- package/cache/memory-allocator.js.map +0 -1
- package/cache/memory-async-cache.d.ts +0 -6
- package/cache/memory-async-cache.js +0 -23
- package/cache/memory-async-cache.js.map +0 -1
- package/core/data.d.ts +0 -22
- package/core/data.js.map +0 -1
- package/core/data.test.d.ts +0 -1
- package/core/data.test.js.map +0 -1
- package/core/functions/array-equals.d.ts +0 -1
- package/core/functions/array-equals.js.map +0 -1
- package/core/functions/deep-merge.d.ts +0 -31
- package/core/functions/deep-merge.js +0 -51
- package/core/functions/deep-merge.js.map +0 -1
- package/core/functions/deep-merge.test.d.ts +0 -1
- package/core/functions/deep-merge.test.js +0 -94
- package/core/functions/deep-merge.test.js.map +0 -1
- package/core/functions/index.d.ts +0 -4
- package/core/functions/index.js.map +0 -1
- package/core/functions/is-async-generator.d.ts +0 -1
- package/core/functions/is-async-generator.js.map +0 -1
- package/core/functions/is-promise.d.ts +0 -1
- package/core/functions/is-promise.js.map +0 -1
- package/core/functions/with-validation.d.ts +0 -5
- package/core/functions/with-validation.js.map +0 -1
- package/core/functions/with-validation.test.d.ts +0 -1
- package/core/functions/with-validation.test.js.map +0 -1
- package/core/index.d.ts +0 -3
- package/core/index.js.map +0 -1
- package/core/schema.d.ts +0 -86
- package/core/schema.js.map +0 -1
- package/core/schema.test.d.ts +0 -1
- package/core/schema.test.js +0 -16
- package/core/schema.test.js.map +0 -1
- package/ecs/action-ecs/action-ecs.d.ts +0 -19
- package/ecs/action-ecs/action-ecs.js +0 -203
- package/ecs/action-ecs/action-ecs.js.map +0 -1
- package/ecs/action-ecs/action-ecs.test.d.ts +0 -1
- package/ecs/action-ecs/action-ecs.test.js +0 -362
- package/ecs/action-ecs/action-ecs.test.js.map +0 -1
- package/ecs/action-ecs/action-types.d.ts +0 -106
- package/ecs/action-ecs/action-types.js +0 -19
- package/ecs/action-ecs/action-types.js.map +0 -1
- package/ecs/action-ecs/index.d.ts +0 -2
- package/ecs/action-ecs/index.js.map +0 -1
- package/ecs/core-ecs/core-ecs-serialization.test.d.ts +0 -1
- package/ecs/core-ecs/core-ecs-serialization.test.js +0 -230
- package/ecs/core-ecs/core-ecs-serialization.test.js.map +0 -1
- package/ecs/core-ecs/core-ecs-types.d.ts +0 -141
- package/ecs/core-ecs/core-ecs-types.js.map +0 -1
- package/ecs/core-ecs/core-ecs.d.ts +0 -7
- package/ecs/core-ecs/core-ecs.js +0 -492
- package/ecs/core-ecs/core-ecs.js.map +0 -1
- package/ecs/core-ecs/core-ecs.test.d.ts +0 -1
- package/ecs/core-ecs/core-ecs.test.js +0 -404
- package/ecs/core-ecs/core-ecs.test.js.map +0 -1
- package/ecs/core-ecs/index.d.ts +0 -1
- package/ecs/core-ecs/index.js +0 -2
- package/ecs/core-ecs/index.js.map +0 -1
- package/ecs/ecs/ecs-types.d.ts +0 -132
- package/ecs/ecs/ecs-types.js.map +0 -1
- package/ecs/ecs/ecs-where-functions.d.ts +0 -6
- package/ecs/ecs/ecs-where-functions.js +0 -91
- package/ecs/ecs/ecs-where-functions.js.map +0 -1
- package/ecs/ecs/ecs.d.ts +0 -13
- package/ecs/ecs/ecs.js +0 -177
- package/ecs/ecs/ecs.js.map +0 -1
- package/ecs/ecs/ecs.test.d.ts +0 -1
- package/ecs/ecs/ecs.test.js +0 -399
- package/ecs/ecs/ecs.test.js.map +0 -1
- package/ecs/ecs/index.d.ts +0 -3
- package/ecs/ecs/index.js +0 -3
- package/ecs/ecs/index.js.map +0 -1
- package/ecs/index.d.ts +0 -4
- package/ecs/index.js.map +0 -1
- package/ecs/transaction-ecs/index.d.ts +0 -2
- package/ecs/transaction-ecs/index.js.map +0 -1
- package/ecs/transaction-ecs/transaction-ecs.d.ts +0 -11
- package/ecs/transaction-ecs/transaction-ecs.js +0 -184
- package/ecs/transaction-ecs/transaction-ecs.js.map +0 -1
- package/ecs/transaction-ecs/transaction-ecs.test.d.ts +0 -1
- package/ecs/transaction-ecs/transaction-ecs.test.js +0 -599
- package/ecs/transaction-ecs/transaction-ecs.test.js.map +0 -1
- package/ecs/transaction-ecs/transaction-types.d.ts +0 -135
- package/ecs/transaction-ecs/transaction-types.js +0 -2
- package/ecs/transaction-ecs/transaction-types.js.map +0 -1
- package/ecs/transaction-ecs/transactions.d.ts +0 -5
- package/ecs/transaction-ecs/transactions.js +0 -158
- package/ecs/transaction-ecs/transactions.js.map +0 -1
- package/index.d.ts +0 -1
- package/index.js +0 -23
- package/index.js.map +0 -1
- package/observe/create-observable-event.d.ts +0 -10
- package/observe/create-observable-event.js +0 -22
- package/observe/create-observable-event.js.map +0 -1
- package/observe/create-observable-state.d.ts +0 -7
- package/observe/create-observable-state.js +0 -27
- package/observe/create-observable-state.js.map +0 -1
- package/observe/create-persisted-state.d.ts +0 -11
- package/observe/create-persisted-state.js +0 -31
- package/observe/create-persisted-state.js.map +0 -1
- package/observe/create-persisted-state.test.d.ts +0 -1
- package/observe/create-persisted-state.test.js +0 -124
- package/observe/create-persisted-state.test.js.map +0 -1
- package/observe/from-array.d.ts +0 -5
- package/observe/from-array.js.map +0 -1
- package/observe/from-constant.d.ts +0 -5
- package/observe/from-constant.js +0 -12
- package/observe/from-constant.js.map +0 -1
- package/observe/from-element-id.d.ts +0 -7
- package/observe/from-element-id.js.map +0 -1
- package/observe/from-element-properties-and-events.d.ts +0 -2
- package/observe/from-element-properties-and-events.js +0 -18
- package/observe/from-element-properties-and-events.js.map +0 -1
- package/observe/from-element-property.d.ts +0 -11
- package/observe/from-element-property.js.map +0 -1
- package/observe/from-promise-with-error.d.ts +0 -7
- package/observe/from-promise-with-error.js +0 -27
- package/observe/from-promise-with-error.js.map +0 -1
- package/observe/from-promise.d.ts +0 -6
- package/observe/from-promise.js +0 -22
- package/observe/from-promise.js.map +0 -1
- package/observe/from-properties.d.ts +0 -10
- package/observe/from-properties.js +0 -33
- package/observe/from-properties.js.map +0 -1
- package/observe/index.d.ts +0 -27
- package/observe/index.js.map +0 -1
- package/observe/observe.test.d.ts +0 -7
- package/observe/observe.test.js +0 -417
- package/observe/observe.test.js.map +0 -1
- package/observe/to-promise.d.ts +0 -8
- package/observe/to-promise.js +0 -18
- package/observe/to-promise.js.map +0 -1
- package/observe/to-properties.d.ts +0 -11
- package/observe/to-properties.js +0 -9
- package/observe/to-properties.js.map +0 -1
- package/observe/types.d.ts +0 -17
- package/observe/types.js +0 -2
- package/observe/types.js.map +0 -1
- package/observe/with-async-map.d.ts +0 -6
- package/observe/with-async-map.js +0 -12
- package/observe/with-async-map.js.map +0 -1
- package/observe/with-cache.d.ts +0 -6
- package/observe/with-cache.js +0 -33
- package/observe/with-cache.js.map +0 -1
- package/observe/with-copy.d.ts +0 -5
- package/observe/with-copy.js +0 -10
- package/observe/with-copy.js.map +0 -1
- package/observe/with-deduplicate-data.d.ts +0 -7
- package/observe/with-deduplicate-data.js +0 -18
- package/observe/with-deduplicate-data.js.map +0 -1
- package/observe/with-deduplicate.d.ts +0 -6
- package/observe/with-deduplicate.js +0 -19
- package/observe/with-deduplicate.js.map +0 -1
- package/observe/with-default.d.ts +0 -6
- package/observe/with-default.js +0 -21
- package/observe/with-default.js.map +0 -1
- package/observe/with-map-data.d.ts +0 -7
- package/observe/with-map-data.js.map +0 -1
- package/observe/with-map.d.ts +0 -5
- package/observe/with-map.js +0 -11
- package/observe/with-map.js.map +0 -1
- package/observe/with-optional.d.ts +0 -5
- package/observe/with-optional.js +0 -20
- package/observe/with-optional.js.map +0 -1
- package/observe/with-unwrap.d.ts +0 -5
- package/observe/with-unwrap.js +0 -26
- package/observe/with-unwrap.js.map +0 -1
- package/perftest/ecs-perf.d.ts +0 -49
- package/perftest/ecs-perf.js +0 -230
- package/perftest/ecs-perf.js.map +0 -1
- package/perftest/helper-functions.d.ts +0 -1
- package/perftest/helper-functions.js +0 -31
- package/perftest/helper-functions.js.map +0 -1
- package/perftest/horizon-perf.d.ts +0 -22
- package/perftest/horizon-perf.js +0 -126
- package/perftest/horizon-perf.js.map +0 -1
- package/perftest/index.d.ts +0 -1
- package/perftest/index.js.map +0 -1
- package/perftest/perf-test.d.ts +0 -18
- package/perftest/perf-test.js +0 -124
- package/perftest/perf-test.js.map +0 -1
- package/perftest/vanilla-perf.d.ts +0 -38
- package/perftest/vanilla-perf.js +0 -128
- package/perftest/vanilla-perf.js.map +0 -1
- package/schemas/index.d.ts +0 -1
- package/schemas/index.js +0 -23
- package/schemas/index.js.map +0 -1
- package/schemas/schemas.d.ts +0 -45
- package/schemas/schemas.js +0 -39
- package/schemas/schemas.js.map +0 -1
- package/service/add-observable-actions.d.ts +0 -29
- package/service/add-observable-actions.js +0 -108
- package/service/add-observable-actions.js.map +0 -1
- package/service/index.d.ts +0 -4
- package/service/index.js.map +0 -1
- package/service/progressive-result.d.ts +0 -96
- package/service/progressive-result.js +0 -99
- package/service/progressive-result.js.map +0 -1
- package/service/sequential-action.d.ts +0 -18
- package/service/sequential-action.js.map +0 -1
- package/service/service.d.ts +0 -4
- package/service/service.js.map +0 -1
- package/tsconfig.tsbuildinfo +0 -1
- package/types/index.d.ts +0 -1
- package/types/index.js.map +0 -1
- package/types/types.d.ts +0 -61
- package/types/types.js.map +0 -1
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { Observe } from "./types.js";
|
|
2
|
-
/**
|
|
3
|
-
* Uses DOM MutationObserver to watch for the addition or removal of an element with a specific id.
|
|
4
|
-
* @param id The id of the element to watch for.
|
|
5
|
-
* @returns a new Observe<Element | null> which yields null if element does not exist.
|
|
6
|
-
*/
|
|
7
|
-
export declare function fromElementId<T extends HTMLElement = HTMLElement>(ancestor: HTMLElement | ShadowRoot, id: string): Observe<T | null>;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"from-element-id.js","sourceRoot":"","sources":["../../src/observe/from-element-id.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;WAoBW;AACX,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGlD;;;;GAIG;AAEH,MAAM,UAAU,aAAa,CAC3B,QAAkC,EAClC,EAAU;IAEV,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACd,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IACD,OAAO,CAAC,QAAQ,EAAE,EAAE;QAClB,IAAI,WAAW,GAAa,IAAI,CAAC;QACjC,MAAM,MAAM,GAAG,GAAG,EAAE;YAClB,MAAM,UAAU,GAAG,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAa,CAAC;YAC3D,IAAI,CAAC,WAAW,IAAI,UAAU,KAAK,WAAW,EAAE,CAAC;gBAC/C,WAAW,GAAG,UAAU,CAAC;gBACzB,QAAQ,CAAC,UAAU,CAAC,CAAC;YACvB,CAAC;QACH,CAAC,CAAC;QACF,MAAM,EAAE,CAAC;QACT,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,CAAC,SAAS,EAAE,EAAE;YAC1D,IAAI,OAAO,GAAG,KAAK,CAAC;YACpB,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;gBACjC,IAAI,QAAQ,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;oBAClC,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;wBACvC,IAAK,IAAU,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;4BAC1B,OAAO,GAAG,IAAI,CAAC;wBACjB,CAAC;oBACH,CAAC;oBACD,IAAI,CAAC,OAAO,EAAE,CAAC;wBACb,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,YAAY,EAAE,CAAC;4BACzC,IAAK,IAAU,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;gCAC1B,OAAO,GAAG,IAAI,CAAC;4BACjB,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YACD,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,EAAE,CAAC;YACX,CAAC;QACH,CAAC,CAAC,CAAC;QACH,gBAAgB,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QACvE,OAAO,GAAG,EAAE;YACV,gBAAgB,CAAC,UAAU,EAAE,CAAC;QAChC,CAAC,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
// private helper function to create an observable from an element property and events.
|
|
2
|
-
export function fromElementPropertyAndEvents(element, property, events) {
|
|
3
|
-
return (observer) => {
|
|
4
|
-
const listener = () => {
|
|
5
|
-
observer(element[property]);
|
|
6
|
-
};
|
|
7
|
-
for (const event of events) {
|
|
8
|
-
element.addEventListener(event, listener);
|
|
9
|
-
}
|
|
10
|
-
observer(element[property]);
|
|
11
|
-
return () => {
|
|
12
|
-
for (const event of events) {
|
|
13
|
-
element.removeEventListener(event, listener);
|
|
14
|
-
}
|
|
15
|
-
};
|
|
16
|
-
};
|
|
17
|
-
}
|
|
18
|
-
//# sourceMappingURL=from-element-properties-and-events.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"from-element-properties-and-events.js","sourceRoot":"","sources":["../../src/observe/from-element-properties-and-events.ts"],"names":[],"mappings":"AAuBA,wFAAwF;AACxF,MAAM,UAAU,4BAA4B,CAI1C,OAAU,EAAE,QAAW,EAAE,MAAW;IACpC,OAAO,CAAC,QAAQ,EAAE,EAAE;QAClB,MAAM,QAAQ,GAAG,GAAG,EAAE;YACpB,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC9B,CAAC,CAAC;QAEF,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,OAAO,CAAC,gBAAgB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC5C,CAAC;QAED,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;QAE5B,OAAO,GAAG,EAAE;YACV,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,OAAO,CAAC,mBAAmB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { Observe } from "./types.js";
|
|
2
|
-
/**
|
|
3
|
-
* Returns an observable that will notify observers when the element property changes.
|
|
4
|
-
* If there are any events provided, then the observer will be notified when the event is triggered.
|
|
5
|
-
* If there are not then a dom mutation observer will be used to watch for changes.
|
|
6
|
-
* @param element The element to watch a property for changes.
|
|
7
|
-
* @param property The property on the element to watch for changes.
|
|
8
|
-
* @param events The events that will trigger a new notification of changed values.
|
|
9
|
-
* @returns
|
|
10
|
-
*/
|
|
11
|
-
export declare function fromElementProperty<T extends HTMLElement, K extends keyof T, E extends keyof HTMLElementEventMap>(element: T, property: K, events?: E[]): Observe<T[K]>;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"from-element-property.js","sourceRoot":"","sources":["../../src/observe/from-element-property.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;WAoBW;AACX,OAAO,EAAE,4BAA4B,EAAE,MAAM,yCAAyC,CAAC;AAGvF,qGAAqG;AACrG,SAAS,sCAAsC,CAG7C,OAAU,EAAE,QAAW;IACvB,OAAO,CAAC,QAAQ,EAAE,EAAE;QAClB,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC5B,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,CAAC,SAAS,EAAE,EAAE;YAC1D,yDAAyD;YACzD,iDAAiD;YACjD,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;gBACjC,IAAI,QAAQ,CAAC,aAAa,KAAK,QAAQ,EAAE,CAAC;oBACxC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;oBAC5B,MAAM;gBACR,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;QACH,gBAAgB,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;QACxD,OAAO,GAAG,EAAE;YACV,gBAAgB,CAAC,UAAU,EAAE,CAAC;QAChC,CAAC,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,mBAAmB,CAIjC,OAAU,EAAE,QAAW,EAAE,SAAc,EAAE;IACzC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,OAAO,4BAA4B,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IACjE,CAAC;SAAM,CAAC;QACN,OAAO,sCAAsC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACnE,CAAC;AACH,CAAC"}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { Observe } from "./types.js";
|
|
2
|
-
/**
|
|
3
|
-
* Creates a new Observer that will notify observers exactly once when the promise is resolved.
|
|
4
|
-
* In the event of an error, the observer will be notified with the error.
|
|
5
|
-
* Note that the promise is only created when the first observer is added so it is lazy.
|
|
6
|
-
*/
|
|
7
|
-
export declare function fromPromiseWithError<T, E extends Error>(promiseFactory: () => Promise<T>): Observe<T | E>;
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Creates a new Observer that will notify observers exactly once when the promise is resolved.
|
|
3
|
-
* In the event of an error, the observer will be notified with the error.
|
|
4
|
-
* Note that the promise is only created when the first observer is added so it is lazy.
|
|
5
|
-
*/
|
|
6
|
-
export function fromPromiseWithError(promiseFactory) {
|
|
7
|
-
let promise = undefined;
|
|
8
|
-
return (observer) => {
|
|
9
|
-
let cancelled = false;
|
|
10
|
-
promise = promise ?? promiseFactory();
|
|
11
|
-
promise
|
|
12
|
-
.then((value) => {
|
|
13
|
-
if (!cancelled) {
|
|
14
|
-
observer(value);
|
|
15
|
-
}
|
|
16
|
-
})
|
|
17
|
-
.catch((error) => {
|
|
18
|
-
if (!cancelled) {
|
|
19
|
-
observer(error);
|
|
20
|
-
}
|
|
21
|
-
});
|
|
22
|
-
return () => {
|
|
23
|
-
cancelled = true;
|
|
24
|
-
};
|
|
25
|
-
};
|
|
26
|
-
}
|
|
27
|
-
//# sourceMappingURL=from-promise-with-error.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"from-promise-with-error.js","sourceRoot":"","sources":["../../src/observe/from-promise-with-error.ts"],"names":[],"mappings":"AAuBA;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAClC,cAAgC;IAEhC,IAAI,OAAO,GAA2B,SAAS,CAAC;IAChD,OAAO,CAAC,QAAQ,EAAE,EAAE;QAClB,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,OAAO,GAAG,OAAO,IAAI,cAAc,EAAE,CAAC;QACtC,OAAO;aACJ,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;YACd,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,QAAQ,CAAC,KAAK,CAAC,CAAC;YAClB,CAAC;QACH,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,KAAQ,EAAE,EAAE;YAClB,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,QAAQ,CAAC,KAAK,CAAC,CAAC;YAClB,CAAC;QACH,CAAC,CAAC,CAAC;QACL,OAAO,GAAG,EAAE;YACV,SAAS,GAAG,IAAI,CAAC;QACnB,CAAC,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import { Observe } from "./types.js";
|
|
2
|
-
/**
|
|
3
|
-
* Creates a new Observer that will notify observers exactly once when the promise is resolved.
|
|
4
|
-
* Note that the promise is only created when the first observer is added so it is lazy.
|
|
5
|
-
*/
|
|
6
|
-
export declare function fromPromise<T>(promiseFactory: () => Promise<T>): Observe<T>;
|
package/observe/from-promise.js
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Creates a new Observer that will notify observers exactly once when the promise is resolved.
|
|
3
|
-
* Note that the promise is only created when the first observer is added so it is lazy.
|
|
4
|
-
*/
|
|
5
|
-
export function fromPromise(promiseFactory) {
|
|
6
|
-
let promise = undefined;
|
|
7
|
-
return (observer) => {
|
|
8
|
-
let cancelled = false;
|
|
9
|
-
promise = promise ?? promiseFactory();
|
|
10
|
-
promise.then((value) => {
|
|
11
|
-
if (!cancelled) {
|
|
12
|
-
observer(value);
|
|
13
|
-
}
|
|
14
|
-
}, (reject) => {
|
|
15
|
-
console.error(`Error in Observe fromPromise`, reject);
|
|
16
|
-
});
|
|
17
|
-
return () => {
|
|
18
|
-
cancelled = true;
|
|
19
|
-
};
|
|
20
|
-
};
|
|
21
|
-
}
|
|
22
|
-
//# sourceMappingURL=from-promise.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"from-promise.js","sourceRoot":"","sources":["../../src/observe/from-promise.ts"],"names":[],"mappings":"AAuBA;;;GAGG;AACH,MAAM,UAAU,WAAW,CACzB,cAAgC;IAEhC,IAAI,OAAO,GAA2B,SAAS,CAAC;IAChD,OAAO,CAAC,QAAQ,EAAE,EAAE;QAClB,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,OAAO,GAAG,OAAO,IAAI,cAAc,EAAE,CAAC;QACtC,OAAO,CAAC,IAAI,CACV,CAAC,KAAK,EAAE,EAAE;YACR,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,QAAQ,CAAC,KAAK,CAAC,CAAC;YAClB,CAAC;QACH,CAAC,EACD,CAAC,MAAM,EAAE,EAAE;YACT,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,MAAM,CAAC,CAAC;QACxD,CAAC,CACF,CAAC;QACF,OAAO,GAAG,EAAE;YACV,SAAS,GAAG,IAAI,CAAC;QACnB,CAAC,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { Observe } from "./types.js";
|
|
2
|
-
/**
|
|
3
|
-
* Creates a new Observe function that combines every named observe function into a single observe function with a value this is an object with the same keys.
|
|
4
|
-
* No result is provided until every required observe function has provided a value. If they all provide a value synchronously, then a result will be provided synchronously.
|
|
5
|
-
*/
|
|
6
|
-
export declare function fromProperties<T extends {
|
|
7
|
-
[K: string]: Observe<unknown>;
|
|
8
|
-
}>(observeProperties: T): Observe<{
|
|
9
|
-
readonly [K in keyof T]: T[K] extends Observe<infer U> ? U : never;
|
|
10
|
-
}>;
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Creates a new Observe function that combines every named observe function into a single observe function with a value this is an object with the same keys.
|
|
3
|
-
* No result is provided until every required observe function has provided a value. If they all provide a value synchronously, then a result will be provided synchronously.
|
|
4
|
-
*/
|
|
5
|
-
export function fromProperties(observeProperties) {
|
|
6
|
-
return (observer) => {
|
|
7
|
-
const values = new Map();
|
|
8
|
-
let initializing = true;
|
|
9
|
-
const maybeNotify = () => {
|
|
10
|
-
if (values.size === Object.keys(observeProperties).length) {
|
|
11
|
-
observer(Object.fromEntries(values));
|
|
12
|
-
}
|
|
13
|
-
};
|
|
14
|
-
const unobservers = Object.entries(observeProperties)
|
|
15
|
-
.map(([name, observable]) => {
|
|
16
|
-
return observable((value) => {
|
|
17
|
-
values.set(name, value);
|
|
18
|
-
if (!initializing) {
|
|
19
|
-
maybeNotify();
|
|
20
|
-
}
|
|
21
|
-
});
|
|
22
|
-
})
|
|
23
|
-
.filter(Boolean);
|
|
24
|
-
initializing = false;
|
|
25
|
-
maybeNotify();
|
|
26
|
-
return () => {
|
|
27
|
-
for (const unobserve of unobservers) {
|
|
28
|
-
unobserve();
|
|
29
|
-
}
|
|
30
|
-
};
|
|
31
|
-
};
|
|
32
|
-
}
|
|
33
|
-
//# sourceMappingURL=from-properties.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"from-properties.js","sourceRoot":"","sources":["../../src/observe/from-properties.ts"],"names":[],"mappings":"AAuBA;;;GAGG;AACH,MAAM,UAAU,cAAc,CAG5B,iBAAoB;IAOpB,OAAO,CAAC,QAAkC,EAAE,EAAE;QAC5C,MAAM,MAAM,GAAG,IAAI,GAAG,EAAuB,CAAC;QAC9C,IAAI,YAAY,GAAG,IAAI,CAAC;QACxB,MAAM,WAAW,GAAG,GAAG,EAAE;YACvB,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,MAAM,EAAE,CAAC;gBAC1D,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAqB,CAAC,CAAC;YAC3D,CAAC;QACH,CAAC,CAAC;QAEF,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC;aAClD,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,EAAE;YAC1B,OAAO,UAAU,CAAC,CAAC,KAAK,EAAE,EAAE;gBAC1B,MAAM,CAAC,GAAG,CAAC,IAAe,EAAE,KAAmB,CAAC,CAAC;gBACjD,IAAI,CAAC,YAAY,EAAE,CAAC;oBAClB,WAAW,EAAE,CAAC;gBAChB,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;aACD,MAAM,CAAC,OAAO,CAAC,CAAC;QAEnB,YAAY,GAAG,KAAK,CAAC;QACrB,WAAW,EAAE,CAAC;QAEd,OAAO,GAAG,EAAE;YACV,KAAK,MAAM,SAAS,IAAI,WAAW,EAAE,CAAC;gBACpC,SAAS,EAAE,CAAC;YACd,CAAC;QACH,CAAC,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC"}
|
package/observe/index.d.ts
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* TESTING SOME INDEX DOCUMENTATION HERE.
|
|
3
|
-
*/
|
|
4
|
-
export * from "./create-observable-event.js";
|
|
5
|
-
export * from "./create-observable-state.js";
|
|
6
|
-
export * from "./create-persisted-state.js";
|
|
7
|
-
export * from "./from-constant.js";
|
|
8
|
-
export * from "./from-element-id.js";
|
|
9
|
-
export * from "./from-element-properties-and-events.js";
|
|
10
|
-
export * from "./from-element-property.js";
|
|
11
|
-
export * from "./from-array.js";
|
|
12
|
-
export * from "./from-properties.js";
|
|
13
|
-
export * from "./from-promise-with-error.js";
|
|
14
|
-
export * from "./from-promise.js";
|
|
15
|
-
export * from "./to-promise.js";
|
|
16
|
-
export * from "./to-properties.js";
|
|
17
|
-
export * from "./types.js";
|
|
18
|
-
export * from "./with-cache.js";
|
|
19
|
-
export * from "./with-copy.js";
|
|
20
|
-
export * from "./with-deduplicate-data.js";
|
|
21
|
-
export * from "./with-deduplicate.js";
|
|
22
|
-
export * from "./with-default.js";
|
|
23
|
-
export * from "./with-async-map.js";
|
|
24
|
-
export * from "./with-map.js";
|
|
25
|
-
export * from "./with-map-data.js";
|
|
26
|
-
export * from "./with-optional.js";
|
|
27
|
-
export * from "./with-unwrap.js";
|
package/observe/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/observe/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;WAoBW;AAEX;;GAEG;AACH,cAAc,8BAA8B,CAAC;AAC7C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yCAAyC,CAAC;AACxD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC"}
|
package/observe/observe.test.js
DELETED
|
@@ -1,417 +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
|
-
import { assert } from "riteway/vitest";
|
|
23
|
-
import { describe, test } from "vitest";
|
|
24
|
-
import { createObservableState, fromConstant, fromArray, fromProperties, fromPromise, fromPromiseWithError, withCache, withDeduplicate, withDefault, withMap, withOptional, } from "./index.js";
|
|
25
|
-
import { toProperties } from "./to-properties.js";
|
|
26
|
-
import { withAsyncMap } from "./with-async-map.js";
|
|
27
|
-
function createTestObservable(sync, async) {
|
|
28
|
-
const observers = new Set();
|
|
29
|
-
const observe = (observer) => {
|
|
30
|
-
observers.add(observer);
|
|
31
|
-
if (sync !== undefined) {
|
|
32
|
-
observer(sync);
|
|
33
|
-
}
|
|
34
|
-
return () => {
|
|
35
|
-
observers.delete(observer);
|
|
36
|
-
};
|
|
37
|
-
};
|
|
38
|
-
return [
|
|
39
|
-
observe,
|
|
40
|
-
async () => {
|
|
41
|
-
for (const value of async) {
|
|
42
|
-
await Promise.resolve();
|
|
43
|
-
for (const observer of observers) {
|
|
44
|
-
observer(value);
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
},
|
|
48
|
-
];
|
|
49
|
-
}
|
|
50
|
-
async function testObserver(props) {
|
|
51
|
-
const { given, expected, observable: observer, doAsync } = props;
|
|
52
|
-
const actual = { sync: undefined, async: [] };
|
|
53
|
-
let isSync = true;
|
|
54
|
-
const unobserve = observer((value) => {
|
|
55
|
-
if (isSync) {
|
|
56
|
-
actual.sync = value;
|
|
57
|
-
}
|
|
58
|
-
else {
|
|
59
|
-
actual.async.push(value);
|
|
60
|
-
}
|
|
61
|
-
});
|
|
62
|
-
isSync = false;
|
|
63
|
-
await doAsync();
|
|
64
|
-
unobserve();
|
|
65
|
-
assert({
|
|
66
|
-
given,
|
|
67
|
-
should: `observe ${JSON.stringify(expected)}`,
|
|
68
|
-
actual,
|
|
69
|
-
expected,
|
|
70
|
-
});
|
|
71
|
-
}
|
|
72
|
-
export async function testObservableFilter(props) {
|
|
73
|
-
const { given, input, filter, output } = props;
|
|
74
|
-
const [observer, done] = createTestObservable(input[0], input[1]);
|
|
75
|
-
const filtered = filter(observer);
|
|
76
|
-
await testObserver({
|
|
77
|
-
given,
|
|
78
|
-
expected: {
|
|
79
|
-
sync: output[0],
|
|
80
|
-
async: output[1],
|
|
81
|
-
},
|
|
82
|
-
observable: filtered,
|
|
83
|
-
doAsync: done,
|
|
84
|
-
});
|
|
85
|
-
}
|
|
86
|
-
describe("observable", () => {
|
|
87
|
-
test("createTestObservable", async () => {
|
|
88
|
-
const [observer, done] = createTestObservable(1, [2, 3]);
|
|
89
|
-
await testObserver({
|
|
90
|
-
given: "createTestObservable",
|
|
91
|
-
expected: {
|
|
92
|
-
sync: 1,
|
|
93
|
-
async: [2, 3],
|
|
94
|
-
},
|
|
95
|
-
observable: observer,
|
|
96
|
-
doAsync: done,
|
|
97
|
-
});
|
|
98
|
-
});
|
|
99
|
-
test("fromConstant", async () => {
|
|
100
|
-
await testObserver({
|
|
101
|
-
given: "fromConstant",
|
|
102
|
-
expected: {
|
|
103
|
-
sync: 1,
|
|
104
|
-
async: [],
|
|
105
|
-
},
|
|
106
|
-
observable: fromConstant(1),
|
|
107
|
-
doAsync: () => Promise.resolve(),
|
|
108
|
-
});
|
|
109
|
-
});
|
|
110
|
-
test("withOptional", async () => {
|
|
111
|
-
const observable = withOptional(fromPromise(() => Promise.resolve(1)));
|
|
112
|
-
// manually test that we DO get a sync value callback.
|
|
113
|
-
{
|
|
114
|
-
let syncCallback = false;
|
|
115
|
-
let syncValue;
|
|
116
|
-
observable((value) => {
|
|
117
|
-
syncValue = value;
|
|
118
|
-
syncCallback = true;
|
|
119
|
-
})();
|
|
120
|
-
assert({
|
|
121
|
-
given: "withOptional",
|
|
122
|
-
should: "get a sync value callback",
|
|
123
|
-
actual: [syncCallback, syncValue],
|
|
124
|
-
expected: [true, undefined],
|
|
125
|
-
});
|
|
126
|
-
}
|
|
127
|
-
await testObserver({
|
|
128
|
-
given: "fromOptional",
|
|
129
|
-
expected: {
|
|
130
|
-
sync: undefined,
|
|
131
|
-
async: [1],
|
|
132
|
-
},
|
|
133
|
-
observable,
|
|
134
|
-
doAsync: () => Promise.resolve(),
|
|
135
|
-
});
|
|
136
|
-
});
|
|
137
|
-
test("fromObservableProperties sync", async () => {
|
|
138
|
-
const observable = fromProperties({
|
|
139
|
-
a: fromConstant(1),
|
|
140
|
-
b: fromConstant(2),
|
|
141
|
-
c: fromConstant(3),
|
|
142
|
-
});
|
|
143
|
-
await testObserver({
|
|
144
|
-
given: "fromObservableProperties called with all sync values should yield sync result",
|
|
145
|
-
expected: {
|
|
146
|
-
sync: { a: 1, b: 2, c: 3 },
|
|
147
|
-
async: [],
|
|
148
|
-
},
|
|
149
|
-
observable,
|
|
150
|
-
doAsync: () => Promise.resolve(),
|
|
151
|
-
});
|
|
152
|
-
});
|
|
153
|
-
test("fromObservableProperties optional called first", async () => {
|
|
154
|
-
const [observer1, doAsync1] = createTestObservable(undefined, [1, 2, 3]);
|
|
155
|
-
const [observer2, doAsync2] = createTestObservable("0", ["1", "2", "3"]);
|
|
156
|
-
const observable = fromProperties({
|
|
157
|
-
a: observer1,
|
|
158
|
-
b: withOptional(observer2),
|
|
159
|
-
});
|
|
160
|
-
await testObserver({
|
|
161
|
-
given: "pick",
|
|
162
|
-
expected: {
|
|
163
|
-
sync: undefined,
|
|
164
|
-
async: [
|
|
165
|
-
{ a: 1, b: "3" },
|
|
166
|
-
{ a: 2, b: "3" },
|
|
167
|
-
{ a: 3, b: "3" },
|
|
168
|
-
],
|
|
169
|
-
},
|
|
170
|
-
observable,
|
|
171
|
-
doAsync: async () => {
|
|
172
|
-
await doAsync2();
|
|
173
|
-
await doAsync1();
|
|
174
|
-
},
|
|
175
|
-
});
|
|
176
|
-
});
|
|
177
|
-
test("fromObservableProperties optional called second", async () => {
|
|
178
|
-
const [observer1, doAsync1] = createTestObservable(undefined, [1, 2, 3]);
|
|
179
|
-
const [observer2, doAsync2] = createTestObservable(undefined, [
|
|
180
|
-
"1",
|
|
181
|
-
"2",
|
|
182
|
-
"3",
|
|
183
|
-
]);
|
|
184
|
-
const observable = fromProperties({
|
|
185
|
-
a: observer1,
|
|
186
|
-
b: withOptional(observer2),
|
|
187
|
-
});
|
|
188
|
-
await testObserver({
|
|
189
|
-
given: "pick",
|
|
190
|
-
expected: {
|
|
191
|
-
sync: undefined,
|
|
192
|
-
async: [
|
|
193
|
-
{ a: 1, b: undefined },
|
|
194
|
-
{ a: 2, b: undefined },
|
|
195
|
-
{ a: 3, b: undefined },
|
|
196
|
-
{ a: 3, b: "1" },
|
|
197
|
-
{ a: 3, b: "2" },
|
|
198
|
-
{ a: 3, b: "3" },
|
|
199
|
-
],
|
|
200
|
-
},
|
|
201
|
-
observable,
|
|
202
|
-
doAsync: async () => {
|
|
203
|
-
await doAsync1();
|
|
204
|
-
await doAsync2();
|
|
205
|
-
},
|
|
206
|
-
});
|
|
207
|
-
});
|
|
208
|
-
test("fromObservableArray sync", async () => {
|
|
209
|
-
const observable = fromArray([
|
|
210
|
-
fromConstant(1),
|
|
211
|
-
fromConstant(2),
|
|
212
|
-
fromConstant(3),
|
|
213
|
-
]);
|
|
214
|
-
await testObserver({
|
|
215
|
-
given: "fromObservableArray called with all sync values should yield sync result",
|
|
216
|
-
expected: {
|
|
217
|
-
sync: [1, 2, 3],
|
|
218
|
-
async: [],
|
|
219
|
-
},
|
|
220
|
-
observable,
|
|
221
|
-
doAsync: () => Promise.resolve(),
|
|
222
|
-
});
|
|
223
|
-
});
|
|
224
|
-
test("fromPromise", async () => {
|
|
225
|
-
const promise = Promise.resolve(1);
|
|
226
|
-
await testObserver({
|
|
227
|
-
given: "fromPromise",
|
|
228
|
-
expected: {
|
|
229
|
-
sync: undefined,
|
|
230
|
-
async: [1],
|
|
231
|
-
},
|
|
232
|
-
observable: fromPromise(() => promise),
|
|
233
|
-
doAsync: async () => {
|
|
234
|
-
await promise;
|
|
235
|
-
},
|
|
236
|
-
});
|
|
237
|
-
});
|
|
238
|
-
test("fromPromiseWithError", async () => {
|
|
239
|
-
const error = new Error("error");
|
|
240
|
-
const promise = Promise.reject(error);
|
|
241
|
-
await testObserver({
|
|
242
|
-
given: "fromPromiseWithError",
|
|
243
|
-
expected: {
|
|
244
|
-
sync: undefined,
|
|
245
|
-
async: [error],
|
|
246
|
-
},
|
|
247
|
-
observable: fromPromiseWithError(() => promise),
|
|
248
|
-
doAsync: async () => {
|
|
249
|
-
try {
|
|
250
|
-
await promise;
|
|
251
|
-
}
|
|
252
|
-
catch (_error) {
|
|
253
|
-
// ignore
|
|
254
|
-
}
|
|
255
|
-
},
|
|
256
|
-
});
|
|
257
|
-
});
|
|
258
|
-
test("cache", async () => {
|
|
259
|
-
// create a promise
|
|
260
|
-
const promise = Promise.resolve(1);
|
|
261
|
-
// create the observable with a cache
|
|
262
|
-
const observable = withCache(fromPromise(() => promise));
|
|
263
|
-
// wait for the first observable value to return.
|
|
264
|
-
const first = await new Promise((resolve) => {
|
|
265
|
-
const unobserve = observable((value) => {
|
|
266
|
-
resolve(value);
|
|
267
|
-
unobserve();
|
|
268
|
-
});
|
|
269
|
-
});
|
|
270
|
-
assert({
|
|
271
|
-
given: "first return value from cache",
|
|
272
|
-
should: "be 1",
|
|
273
|
-
actual: first,
|
|
274
|
-
expected: 1,
|
|
275
|
-
});
|
|
276
|
-
// now that it's primed let's verify we get a synchronous result.
|
|
277
|
-
let syncValue;
|
|
278
|
-
observable((value) => {
|
|
279
|
-
syncValue = value;
|
|
280
|
-
})();
|
|
281
|
-
assert({
|
|
282
|
-
given: "synchronous return value from primed cache",
|
|
283
|
-
should: "be 1",
|
|
284
|
-
actual: syncValue,
|
|
285
|
-
expected: 1,
|
|
286
|
-
});
|
|
287
|
-
});
|
|
288
|
-
test("deduplicate shallow compare", async () => {
|
|
289
|
-
await testObservableFilter({
|
|
290
|
-
given: "an Observable with cache shallow",
|
|
291
|
-
filter: withDeduplicate,
|
|
292
|
-
input: [1, [1, 2, 2, 2, 3, 3, 4]],
|
|
293
|
-
output: [1, [2, 3, 4]],
|
|
294
|
-
});
|
|
295
|
-
});
|
|
296
|
-
// test("deduplicate deep compare", async () => {
|
|
297
|
-
// await testObservableFilter({
|
|
298
|
-
// given: "an Observable with deduplicate data",
|
|
299
|
-
// filter: withDeduplicateData,
|
|
300
|
-
// input: [
|
|
301
|
-
// { a: 1 },
|
|
302
|
-
// [{ a: 1 }, { a: 2 }, { a: 2 }, { a: 3 }, { a: 3 }, { a: 4 }],
|
|
303
|
-
// ],
|
|
304
|
-
// output: [{ a: 1 }, [{ a: 2 }, { a: 3 }, { a: 4 }]],
|
|
305
|
-
// });
|
|
306
|
-
// });
|
|
307
|
-
test("withDefault", async () => {
|
|
308
|
-
await testObservableFilter({
|
|
309
|
-
given: "an Observable withDefault",
|
|
310
|
-
filter: withDefault(0),
|
|
311
|
-
input: [undefined, [1, undefined, 3]],
|
|
312
|
-
output: [0, [1, 0, 3]],
|
|
313
|
-
});
|
|
314
|
-
});
|
|
315
|
-
test("withMap", async () => {
|
|
316
|
-
await testObservableFilter({
|
|
317
|
-
given: "an Observable withMap",
|
|
318
|
-
filter: (observable) => withMap(observable, (value) => value * 2),
|
|
319
|
-
input: [1, [1, 2, 3]],
|
|
320
|
-
output: [2, [2, 4, 6]],
|
|
321
|
-
});
|
|
322
|
-
});
|
|
323
|
-
test("withAsyncMap", async () => {
|
|
324
|
-
await testObservableFilter({
|
|
325
|
-
given: "an Observable withAsyncMap",
|
|
326
|
-
filter: (observable) => withAsyncMap(observable, async (value) => value * 2),
|
|
327
|
-
input: [1, [1, 2, 3]],
|
|
328
|
-
output: [undefined, [2, 2, 4, 6]],
|
|
329
|
-
});
|
|
330
|
-
});
|
|
331
|
-
test("withCache shares base observable", async () => {
|
|
332
|
-
let observeCount = 0;
|
|
333
|
-
const observer = withCache((callback) => {
|
|
334
|
-
observeCount++;
|
|
335
|
-
callback(42);
|
|
336
|
-
return () => { };
|
|
337
|
-
});
|
|
338
|
-
let observe1 = -1;
|
|
339
|
-
observer((value) => {
|
|
340
|
-
observe1 = value;
|
|
341
|
-
});
|
|
342
|
-
let observe2 = -1;
|
|
343
|
-
observer((value) => {
|
|
344
|
-
observe2 = value;
|
|
345
|
-
});
|
|
346
|
-
assert({
|
|
347
|
-
given: "withShared called multiple times",
|
|
348
|
-
should: "base observable to be called only once",
|
|
349
|
-
actual: [observe1, observe2, observeCount],
|
|
350
|
-
expected: [42, 42, 1],
|
|
351
|
-
});
|
|
352
|
-
});
|
|
353
|
-
test("toObservableProperties", async () => {
|
|
354
|
-
const [observable, setState] = createObservableState({ a: 1, b: "foo" });
|
|
355
|
-
const properties = toProperties(observable, ["a", "b"]);
|
|
356
|
-
const observedValues = [];
|
|
357
|
-
const observer = (value) => {
|
|
358
|
-
observedValues.push(value);
|
|
359
|
-
};
|
|
360
|
-
properties.a(observer);
|
|
361
|
-
properties.b(observer);
|
|
362
|
-
assert({
|
|
363
|
-
given: "toObservableProperties",
|
|
364
|
-
should: "observe values",
|
|
365
|
-
actual: observedValues,
|
|
366
|
-
expected: [1, "foo"],
|
|
367
|
-
});
|
|
368
|
-
setState({ a: 2, b: "bar" });
|
|
369
|
-
assert({
|
|
370
|
-
given: "toObservableProperties",
|
|
371
|
-
should: "observe new values",
|
|
372
|
-
actual: observedValues,
|
|
373
|
-
expected: [1, "foo", 2, "bar"],
|
|
374
|
-
});
|
|
375
|
-
setState({ a: 2, b: "bar" });
|
|
376
|
-
assert({
|
|
377
|
-
given: "toObservableProperties",
|
|
378
|
-
should: "not observe unchanged values",
|
|
379
|
-
actual: observedValues,
|
|
380
|
-
expected: [1, "foo", 2, "bar"],
|
|
381
|
-
});
|
|
382
|
-
setState({ a: 3, b: "bar" });
|
|
383
|
-
assert({
|
|
384
|
-
given: "toObservableProperties",
|
|
385
|
-
should: "observe only changed values",
|
|
386
|
-
actual: observedValues,
|
|
387
|
-
expected: [1, "foo", 2, "bar", 3],
|
|
388
|
-
});
|
|
389
|
-
});
|
|
390
|
-
});
|
|
391
|
-
describe("observable", () => {
|
|
392
|
-
test("createObservableWithSetter", async () => {
|
|
393
|
-
const [observable, setter] = createObservableState();
|
|
394
|
-
const observedValues = [];
|
|
395
|
-
const unobserve = observable((value) => {
|
|
396
|
-
observedValues.push(value);
|
|
397
|
-
});
|
|
398
|
-
const values = [2, 3, 4];
|
|
399
|
-
// Set subsequent values
|
|
400
|
-
values.forEach((value) => setter(value));
|
|
401
|
-
assert({
|
|
402
|
-
given: "createObservableWithSetter",
|
|
403
|
-
should: "observe values",
|
|
404
|
-
actual: observedValues,
|
|
405
|
-
expected: values,
|
|
406
|
-
});
|
|
407
|
-
unobserve();
|
|
408
|
-
values.forEach((value) => setter(value));
|
|
409
|
-
assert({
|
|
410
|
-
given: "createObservableWithSetter",
|
|
411
|
-
should: "not observe values after unobserve",
|
|
412
|
-
actual: observedValues,
|
|
413
|
-
expected: values,
|
|
414
|
-
});
|
|
415
|
-
});
|
|
416
|
-
});
|
|
417
|
-
//# sourceMappingURL=observe.test.js.map
|