@adobe/data 0.1.2

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.
Files changed (328) hide show
  1. package/README.md +310 -0
  2. package/assembly/index.d.ts +30 -0
  3. package/assembly/index.js +18 -0
  4. package/assembly/index.wasm +0 -0
  5. package/assembly/index.wasm.map +1 -0
  6. package/assembly-test/assembly.test.d.ts +1 -0
  7. package/assembly-test/assembly.test.js +29 -0
  8. package/assembly-test/assembly.test.js.map +1 -0
  9. package/cache/async-cache.d.ts +15 -0
  10. package/cache/async-cache.js +23 -0
  11. package/cache/async-cache.js.map +1 -0
  12. package/cache/blob-store.d.ts +94 -0
  13. package/cache/blob-store.js +191 -0
  14. package/cache/blob-store.js.map +1 -0
  15. package/cache/blob-store.test.d.ts +1 -0
  16. package/cache/blob-store.test.js +142 -0
  17. package/cache/blob-store.test.js.map +1 -0
  18. package/cache/data-cache.d.ts +38 -0
  19. package/cache/data-cache.js +96 -0
  20. package/cache/data-cache.js.map +1 -0
  21. package/cache/data-cache.test.d.ts +1 -0
  22. package/cache/data-cache.test.js +50 -0
  23. package/cache/data-cache.test.js.map +1 -0
  24. package/cache/expiring-data-cache.d.ts +6 -0
  25. package/cache/expiring-data-cache.js +49 -0
  26. package/cache/expiring-data-cache.js.map +1 -0
  27. package/cache/expiring-data-cache.test.d.ts +1 -0
  28. package/cache/expiring-data-cache.test.js +62 -0
  29. package/cache/expiring-data-cache.test.js.map +1 -0
  30. package/cache/fallback-async-cache.d.ts +7 -0
  31. package/cache/fallback-async-cache.js +22 -0
  32. package/cache/fallback-async-cache.js.map +1 -0
  33. package/cache/functions/bind-functions.d.ts +6 -0
  34. package/cache/functions/bind-functions.js +33 -0
  35. package/cache/functions/bind-functions.js.map +1 -0
  36. package/cache/functions/functions.test.d.ts +1 -0
  37. package/cache/functions/functions.test.js +79 -0
  38. package/cache/functions/functions.test.js.map +1 -0
  39. package/cache/functions/get-cached.d.ts +11 -0
  40. package/cache/functions/get-cached.js +49 -0
  41. package/cache/functions/get-cached.js.map +1 -0
  42. package/cache/functions/get-cached.test.d.ts +1 -0
  43. package/cache/functions/get-cached.test.js +96 -0
  44. package/cache/functions/get-cached.test.js.map +1 -0
  45. package/cache/functions/hashing/blob-to-hash.d.ts +4 -0
  46. package/cache/functions/hashing/blob-to-hash.js +44 -0
  47. package/cache/functions/hashing/blob-to-hash.js.map +1 -0
  48. package/cache/functions/hashing/buffer-to-hash.d.ts +4 -0
  49. package/cache/functions/hashing/buffer-to-hash.js +33 -0
  50. package/cache/functions/hashing/buffer-to-hash.js.map +1 -0
  51. package/cache/functions/hashing/hashing.test.d.ts +1 -0
  52. package/cache/functions/hashing/hashing.test.js +95 -0
  53. package/cache/functions/hashing/hashing.test.js.map +1 -0
  54. package/cache/functions/hashing/index.d.ts +4 -0
  55. package/cache/functions/hashing/index.js +26 -0
  56. package/cache/functions/hashing/index.js.map +1 -0
  57. package/cache/functions/hashing/json-to-hash.d.ts +4 -0
  58. package/cache/functions/hashing/json-to-hash.js +29 -0
  59. package/cache/functions/hashing/json-to-hash.js.map +1 -0
  60. package/cache/functions/hashing/string-to-hash.d.ts +4 -0
  61. package/cache/functions/hashing/string-to-hash.js +37 -0
  62. package/cache/functions/hashing/string-to-hash.js.map +1 -0
  63. package/cache/functions/index.d.ts +5 -0
  64. package/cache/functions/index.js +29 -0
  65. package/cache/functions/index.js.map +1 -0
  66. package/cache/functions/memoize.d.ts +12 -0
  67. package/cache/functions/memoize.js +48 -0
  68. package/cache/functions/memoize.js.map +1 -0
  69. package/cache/functions/omit.d.ts +1 -0
  70. package/cache/functions/omit.js +29 -0
  71. package/cache/functions/omit.js.map +1 -0
  72. package/cache/functions/prevent-parallel-execution.d.ts +7 -0
  73. package/cache/functions/prevent-parallel-execution.js +25 -0
  74. package/cache/functions/prevent-parallel-execution.js.map +1 -0
  75. package/cache/functions/types.d.ts +1 -0
  76. package/cache/functions/types.js +23 -0
  77. package/cache/functions/types.js.map +1 -0
  78. package/cache/get-persistent-cache.d.ts +12 -0
  79. package/cache/get-persistent-cache.js +23 -0
  80. package/cache/get-persistent-cache.js.map +1 -0
  81. package/cache/index.d.ts +3 -0
  82. package/cache/index.js +25 -0
  83. package/cache/index.js.map +1 -0
  84. package/cache/managed-array.d.ts +23 -0
  85. package/cache/managed-array.js +160 -0
  86. package/cache/managed-array.js.map +1 -0
  87. package/cache/managed-async-cache.browser.test.d.ts +1 -0
  88. package/cache/managed-async-cache.browser.test.js +50 -0
  89. package/cache/managed-async-cache.browser.test.js.map +1 -0
  90. package/cache/managed-async-cache.d.ts +4 -0
  91. package/cache/managed-async-cache.js +45 -0
  92. package/cache/managed-async-cache.js.map +1 -0
  93. package/cache/memory-allocator.d.ts +23 -0
  94. package/cache/memory-allocator.js +94 -0
  95. package/cache/memory-allocator.js.map +1 -0
  96. package/cache/memory-async-cache.d.ts +6 -0
  97. package/cache/memory-async-cache.js +23 -0
  98. package/cache/memory-async-cache.js.map +1 -0
  99. package/core/data.d.ts +22 -0
  100. package/core/data.js +52 -0
  101. package/core/data.js.map +1 -0
  102. package/core/data.test.d.ts +1 -0
  103. package/core/data.test.js +48 -0
  104. package/core/data.test.js.map +1 -0
  105. package/core/functions/array-equals.d.ts +1 -0
  106. package/core/functions/array-equals.js +34 -0
  107. package/core/functions/array-equals.js.map +1 -0
  108. package/core/functions/deep-merge.d.ts +31 -0
  109. package/core/functions/deep-merge.js +51 -0
  110. package/core/functions/deep-merge.js.map +1 -0
  111. package/core/functions/deep-merge.test.d.ts +1 -0
  112. package/core/functions/deep-merge.test.js +94 -0
  113. package/core/functions/deep-merge.test.js.map +1 -0
  114. package/core/functions/index.d.ts +4 -0
  115. package/core/functions/index.js +26 -0
  116. package/core/functions/index.js.map +1 -0
  117. package/core/functions/is-async-generator.d.ts +1 -0
  118. package/core/functions/is-async-generator.js +25 -0
  119. package/core/functions/is-async-generator.js.map +1 -0
  120. package/core/functions/is-promise.d.ts +1 -0
  121. package/core/functions/is-promise.js +26 -0
  122. package/core/functions/is-promise.js.map +1 -0
  123. package/core/functions/with-validation.d.ts +5 -0
  124. package/core/functions/with-validation.js +38 -0
  125. package/core/functions/with-validation.js.map +1 -0
  126. package/core/functions/with-validation.test.d.ts +1 -0
  127. package/core/functions/with-validation.test.js +96 -0
  128. package/core/functions/with-validation.test.js.map +1 -0
  129. package/core/index.d.ts +3 -0
  130. package/core/index.js +25 -0
  131. package/core/index.js.map +1 -0
  132. package/core/schema.d.ts +86 -0
  133. package/core/schema.js +33 -0
  134. package/core/schema.js.map +1 -0
  135. package/core/schema.test.d.ts +1 -0
  136. package/core/schema.test.js +16 -0
  137. package/core/schema.test.js.map +1 -0
  138. package/ecs/action-ecs/action-ecs.d.ts +19 -0
  139. package/ecs/action-ecs/action-ecs.js +203 -0
  140. package/ecs/action-ecs/action-ecs.js.map +1 -0
  141. package/ecs/action-ecs/action-ecs.test.d.ts +1 -0
  142. package/ecs/action-ecs/action-ecs.test.js +362 -0
  143. package/ecs/action-ecs/action-ecs.test.js.map +1 -0
  144. package/ecs/action-ecs/action-types.d.ts +106 -0
  145. package/ecs/action-ecs/action-types.js +19 -0
  146. package/ecs/action-ecs/action-types.js.map +1 -0
  147. package/ecs/action-ecs/index.d.ts +2 -0
  148. package/ecs/action-ecs/index.js +23 -0
  149. package/ecs/action-ecs/index.js.map +1 -0
  150. package/ecs/core-ecs/core-ecs-serialization.test.d.ts +1 -0
  151. package/ecs/core-ecs/core-ecs-serialization.test.js +230 -0
  152. package/ecs/core-ecs/core-ecs-serialization.test.js.map +1 -0
  153. package/ecs/core-ecs/core-ecs-types.d.ts +141 -0
  154. package/ecs/core-ecs/core-ecs-types.js +23 -0
  155. package/ecs/core-ecs/core-ecs-types.js.map +1 -0
  156. package/ecs/core-ecs/core-ecs.d.ts +7 -0
  157. package/ecs/core-ecs/core-ecs.js +492 -0
  158. package/ecs/core-ecs/core-ecs.js.map +1 -0
  159. package/ecs/core-ecs/core-ecs.test.d.ts +1 -0
  160. package/ecs/core-ecs/core-ecs.test.js +404 -0
  161. package/ecs/core-ecs/core-ecs.test.js.map +1 -0
  162. package/ecs/core-ecs/index.d.ts +1 -0
  163. package/ecs/core-ecs/index.js +2 -0
  164. package/ecs/core-ecs/index.js.map +1 -0
  165. package/ecs/ecs/ecs-types.d.ts +132 -0
  166. package/ecs/ecs/ecs-types.js +23 -0
  167. package/ecs/ecs/ecs-types.js.map +1 -0
  168. package/ecs/ecs/ecs-where-functions.d.ts +6 -0
  169. package/ecs/ecs/ecs-where-functions.js +91 -0
  170. package/ecs/ecs/ecs-where-functions.js.map +1 -0
  171. package/ecs/ecs/ecs.d.ts +13 -0
  172. package/ecs/ecs/ecs.js +177 -0
  173. package/ecs/ecs/ecs.js.map +1 -0
  174. package/ecs/ecs/ecs.test.d.ts +1 -0
  175. package/ecs/ecs/ecs.test.js +399 -0
  176. package/ecs/ecs/ecs.test.js.map +1 -0
  177. package/ecs/ecs/index.d.ts +3 -0
  178. package/ecs/ecs/index.js +3 -0
  179. package/ecs/ecs/index.js.map +1 -0
  180. package/ecs/index.d.ts +4 -0
  181. package/ecs/index.js +26 -0
  182. package/ecs/index.js.map +1 -0
  183. package/ecs/transaction-ecs/index.d.ts +2 -0
  184. package/ecs/transaction-ecs/index.js +24 -0
  185. package/ecs/transaction-ecs/index.js.map +1 -0
  186. package/ecs/transaction-ecs/transaction-ecs.d.ts +11 -0
  187. package/ecs/transaction-ecs/transaction-ecs.js +184 -0
  188. package/ecs/transaction-ecs/transaction-ecs.js.map +1 -0
  189. package/ecs/transaction-ecs/transaction-ecs.test.d.ts +1 -0
  190. package/ecs/transaction-ecs/transaction-ecs.test.js +599 -0
  191. package/ecs/transaction-ecs/transaction-ecs.test.js.map +1 -0
  192. package/ecs/transaction-ecs/transaction-types.d.ts +135 -0
  193. package/ecs/transaction-ecs/transaction-types.js +2 -0
  194. package/ecs/transaction-ecs/transaction-types.js.map +1 -0
  195. package/ecs/transaction-ecs/transactions.d.ts +5 -0
  196. package/ecs/transaction-ecs/transactions.js +158 -0
  197. package/ecs/transaction-ecs/transactions.js.map +1 -0
  198. package/index.d.ts +1 -0
  199. package/index.js +23 -0
  200. package/index.js.map +1 -0
  201. package/observe/create-observable-event.d.ts +10 -0
  202. package/observe/create-observable-event.js +22 -0
  203. package/observe/create-observable-event.js.map +1 -0
  204. package/observe/create-observable-state.d.ts +7 -0
  205. package/observe/create-observable-state.js +27 -0
  206. package/observe/create-observable-state.js.map +1 -0
  207. package/observe/create-persisted-state.d.ts +11 -0
  208. package/observe/create-persisted-state.js +31 -0
  209. package/observe/create-persisted-state.js.map +1 -0
  210. package/observe/create-persisted-state.test.d.ts +1 -0
  211. package/observe/create-persisted-state.test.js +124 -0
  212. package/observe/create-persisted-state.test.js.map +1 -0
  213. package/observe/from-array.d.ts +5 -0
  214. package/observe/from-array.js +30 -0
  215. package/observe/from-array.js.map +1 -0
  216. package/observe/from-constant.d.ts +5 -0
  217. package/observe/from-constant.js +12 -0
  218. package/observe/from-constant.js.map +1 -0
  219. package/observe/from-element-id.d.ts +7 -0
  220. package/observe/from-element-id.js +70 -0
  221. package/observe/from-element-id.js.map +1 -0
  222. package/observe/from-element-properties-and-events.d.ts +2 -0
  223. package/observe/from-element-properties-and-events.js +18 -0
  224. package/observe/from-element-properties-and-events.js.map +1 -0
  225. package/observe/from-element-property.d.ts +11 -0
  226. package/observe/from-element-property.js +60 -0
  227. package/observe/from-element-property.js.map +1 -0
  228. package/observe/from-promise-with-error.d.ts +7 -0
  229. package/observe/from-promise-with-error.js +27 -0
  230. package/observe/from-promise-with-error.js.map +1 -0
  231. package/observe/from-promise.d.ts +6 -0
  232. package/observe/from-promise.js +22 -0
  233. package/observe/from-promise.js.map +1 -0
  234. package/observe/from-properties.d.ts +10 -0
  235. package/observe/from-properties.js +33 -0
  236. package/observe/from-properties.js.map +1 -0
  237. package/observe/index.d.ts +27 -0
  238. package/observe/index.js +49 -0
  239. package/observe/index.js.map +1 -0
  240. package/observe/observe.test.d.ts +7 -0
  241. package/observe/observe.test.js +417 -0
  242. package/observe/observe.test.js.map +1 -0
  243. package/observe/to-promise.d.ts +8 -0
  244. package/observe/to-promise.js +18 -0
  245. package/observe/to-promise.js.map +1 -0
  246. package/observe/to-properties.d.ts +11 -0
  247. package/observe/to-properties.js +9 -0
  248. package/observe/to-properties.js.map +1 -0
  249. package/observe/types.d.ts +17 -0
  250. package/observe/types.js +2 -0
  251. package/observe/types.js.map +1 -0
  252. package/observe/with-async-map.d.ts +6 -0
  253. package/observe/with-async-map.js +12 -0
  254. package/observe/with-async-map.js.map +1 -0
  255. package/observe/with-cache.d.ts +6 -0
  256. package/observe/with-cache.js +33 -0
  257. package/observe/with-cache.js.map +1 -0
  258. package/observe/with-copy.d.ts +5 -0
  259. package/observe/with-copy.js +10 -0
  260. package/observe/with-copy.js.map +1 -0
  261. package/observe/with-deduplicate-data.d.ts +7 -0
  262. package/observe/with-deduplicate-data.js +18 -0
  263. package/observe/with-deduplicate-data.js.map +1 -0
  264. package/observe/with-deduplicate.d.ts +6 -0
  265. package/observe/with-deduplicate.js +19 -0
  266. package/observe/with-deduplicate.js.map +1 -0
  267. package/observe/with-default.d.ts +6 -0
  268. package/observe/with-default.js +21 -0
  269. package/observe/with-default.js.map +1 -0
  270. package/observe/with-map-data.d.ts +7 -0
  271. package/observe/with-map-data.js +32 -0
  272. package/observe/with-map-data.js.map +1 -0
  273. package/observe/with-map.d.ts +5 -0
  274. package/observe/with-map.js +11 -0
  275. package/observe/with-map.js.map +1 -0
  276. package/observe/with-optional.d.ts +5 -0
  277. package/observe/with-optional.js +20 -0
  278. package/observe/with-optional.js.map +1 -0
  279. package/observe/with-unwrap.d.ts +5 -0
  280. package/observe/with-unwrap.js +26 -0
  281. package/observe/with-unwrap.js.map +1 -0
  282. package/package.json +105 -0
  283. package/perftest/ecs-perf.d.ts +49 -0
  284. package/perftest/ecs-perf.js +230 -0
  285. package/perftest/ecs-perf.js.map +1 -0
  286. package/perftest/helper-functions.d.ts +1 -0
  287. package/perftest/helper-functions.js +31 -0
  288. package/perftest/helper-functions.js.map +1 -0
  289. package/perftest/horizon-perf.d.ts +22 -0
  290. package/perftest/horizon-perf.js +126 -0
  291. package/perftest/horizon-perf.js.map +1 -0
  292. package/perftest/index.d.ts +1 -0
  293. package/perftest/index.js +35 -0
  294. package/perftest/index.js.map +1 -0
  295. package/perftest/perf-test.d.ts +18 -0
  296. package/perftest/perf-test.js +124 -0
  297. package/perftest/perf-test.js.map +1 -0
  298. package/perftest/vanilla-perf.d.ts +38 -0
  299. package/perftest/vanilla-perf.js +128 -0
  300. package/perftest/vanilla-perf.js.map +1 -0
  301. package/schemas/index.d.ts +1 -0
  302. package/schemas/index.js +23 -0
  303. package/schemas/index.js.map +1 -0
  304. package/schemas/schemas.d.ts +45 -0
  305. package/schemas/schemas.js +39 -0
  306. package/schemas/schemas.js.map +1 -0
  307. package/service/add-observable-actions.d.ts +29 -0
  308. package/service/add-observable-actions.js +108 -0
  309. package/service/add-observable-actions.js.map +1 -0
  310. package/service/index.d.ts +4 -0
  311. package/service/index.js +26 -0
  312. package/service/index.js.map +1 -0
  313. package/service/progressive-result.d.ts +96 -0
  314. package/service/progressive-result.js +99 -0
  315. package/service/progressive-result.js.map +1 -0
  316. package/service/sequential-action.d.ts +18 -0
  317. package/service/sequential-action.js +45 -0
  318. package/service/sequential-action.js.map +1 -0
  319. package/service/service.d.ts +4 -0
  320. package/service/service.js +26 -0
  321. package/service/service.js.map +1 -0
  322. package/tsconfig.tsbuildinfo +1 -0
  323. package/types/index.d.ts +1 -0
  324. package/types/index.js +23 -0
  325. package/types/index.js.map +1 -0
  326. package/types/types.d.ts +61 -0
  327. package/types/types.js +27 -0
  328. package/types/types.js.map +1 -0
@@ -0,0 +1,184 @@
1
+ import { createECS } from "../ecs/ecs.js";
2
+ import { createECSTransaction } from "./transactions.js";
3
+ import { arrayEquals } from "../../core/functions/array-equals.js";
4
+ // we want to cache this a well on each array.
5
+ function isASubsetOfB(a, b) {
6
+ if (a !== b) {
7
+ const bSet = new Set(b);
8
+ for (const value of a) {
9
+ if (!bSet.has(value)) {
10
+ return false;
11
+ }
12
+ }
13
+ }
14
+ return true;
15
+ }
16
+ /**
17
+ * Creates a new TransactionECS.
18
+ * Transactional ECS instances do not allow direct write access.
19
+ * Instead you use transactions to make changes to the ECS.
20
+ * They also provide observability for changes to the ECS.
21
+ */
22
+ export function createTransactionECS(ecs = createECS()) {
23
+ const { components, archetypes, resources, ...rest } = ecs;
24
+ const withComponents = (newComponents) => {
25
+ ecs.withComponents(newComponents);
26
+ return tecs;
27
+ };
28
+ const withArchetypes = (newArchetypes) => {
29
+ ecs.withArchetypes(newArchetypes);
30
+ return tecs;
31
+ };
32
+ const withResources = (newResources) => {
33
+ ecs.withResources(newResources);
34
+ return tecs;
35
+ };
36
+ const transactionObservers = new Set();
37
+ const notifyTransactions = (transaction, changed) => {
38
+ // notify all transaction observers.
39
+ for (const observer of transactionObservers) {
40
+ observer(transaction);
41
+ }
42
+ // notify all observers of the entities and components that changed.
43
+ const observers = new Set();
44
+ const addObservers = (map, key) => {
45
+ const set = map.get(key);
46
+ if (set) {
47
+ for (const observer of set) {
48
+ observers.add(observer);
49
+ }
50
+ }
51
+ };
52
+ for (const entity of changed.entities) {
53
+ addObservers(entityObservers, entity);
54
+ }
55
+ for (const name of changed.components) {
56
+ addObservers(componentObservers, name);
57
+ }
58
+ for (const archetype of changed.archetypes) {
59
+ for (const observedArchetype of archetypeObservers.keys()) {
60
+ const isSubset = isASubsetOfB(observedArchetype.components, archetype.components);
61
+ if (isSubset) {
62
+ addObservers(archetypeObservers, observedArchetype);
63
+ }
64
+ }
65
+ }
66
+ for (const observer of observers) {
67
+ observer();
68
+ }
69
+ };
70
+ const transactions = (callback) => {
71
+ transactionObservers.add(callback);
72
+ return () => transactionObservers.delete(callback);
73
+ };
74
+ const createTransaction = (options) => {
75
+ return createECSTransaction(tecs, ecs, { undoable: true, createdTime: Date.now(), createdBy: "", ...options }, notifyTransactions);
76
+ };
77
+ const addToMapSet = (key, map, value) => {
78
+ let set = map.get(key);
79
+ if (set) {
80
+ set.add(value);
81
+ }
82
+ else {
83
+ map.set(key, (set = new Set([value])));
84
+ }
85
+ return () => {
86
+ set.delete(value);
87
+ };
88
+ };
89
+ const entityObservers = new Map();
90
+ const observeEntityChanges = (entity) => (callback) => {
91
+ return addToMapSet(entity, entityObservers, callback);
92
+ };
93
+ function observeEntityValues(id, archetype) {
94
+ return (callback) => {
95
+ const notify = () => {
96
+ callback(ecs.getEntityValues(id, archetype));
97
+ };
98
+ // callback immediately to get the current value.
99
+ notify();
100
+ // callback again whenever the entity changes.
101
+ const entityChanges = observeEntityChanges(id);
102
+ return entityChanges(notify);
103
+ };
104
+ }
105
+ const componentObservers = new Map();
106
+ const resourceObservables = new Map();
107
+ const observeResource = (key) => {
108
+ // Return cached observable if it exists
109
+ const cached = resourceObservables.get(key);
110
+ if (cached) {
111
+ return cached;
112
+ }
113
+ // Create new observable
114
+ const observable = (callback) => {
115
+ const notify = () => {
116
+ callback(resources[key]);
117
+ };
118
+ // callback immediately to get the current value.
119
+ notify();
120
+ // callback again whenever the resource changes.
121
+ const resourceChanges = observeComponent(key);
122
+ return resourceChanges(notify);
123
+ };
124
+ // Cache the observable
125
+ resourceObservables.set(key, observable);
126
+ return observable;
127
+ };
128
+ const observeComponent = (component) => (callback) => {
129
+ return addToMapSet(component, componentObservers, callback);
130
+ };
131
+ const archetypeObservers = new Map();
132
+ const observeArchetypeChanges = (archetype) => (callback) => {
133
+ return addToMapSet(archetype, archetypeObservers, callback);
134
+ };
135
+ const observeArchetypeEntities = (archetype, options) => {
136
+ return (callback) => {
137
+ let lastValue;
138
+ const notify = () => {
139
+ const newValue = ecs.selectEntities(archetype, options);
140
+ if (!lastValue || !arrayEquals(lastValue, newValue)) {
141
+ lastValue = newValue;
142
+ callback(newValue);
143
+ }
144
+ };
145
+ notify();
146
+ return observeArchetypeChanges(archetype)(notify);
147
+ };
148
+ };
149
+ const createResourceObserver = () => {
150
+ const handler = {
151
+ get(target, prop) {
152
+ if (typeof prop === 'string' && prop in resources) {
153
+ return observeResource(prop);
154
+ }
155
+ return target[prop];
156
+ },
157
+ apply(target, thisArg, args) {
158
+ return target.apply(thisArg, args);
159
+ }
160
+ };
161
+ return new Proxy(observeResource, handler);
162
+ };
163
+ const tecs = {
164
+ ...rest,
165
+ withComponents,
166
+ withArchetypes,
167
+ withResources,
168
+ createTransaction,
169
+ observe: {
170
+ transactions,
171
+ resource: createResourceObserver(),
172
+ entityValues: observeEntityValues,
173
+ entityChanges: observeEntityChanges,
174
+ componentChanges: observeComponent,
175
+ archetypeChanges: observeArchetypeChanges,
176
+ archetypeEntities: observeArchetypeEntities,
177
+ },
178
+ components,
179
+ archetypes,
180
+ resources,
181
+ };
182
+ return tecs;
183
+ }
184
+ //# sourceMappingURL=transaction-ecs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transaction-ecs.js","sourceRoot":"","sources":["../../../src/ecs/transaction-ecs/transaction-ecs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};