@oscarpalmer/mora 0.23.0 → 0.25.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/dist/constants.js CHANGED
@@ -23,12 +23,14 @@ const METHODS_UPDATE = new Set([
23
23
  const NAME_ARRAY = "array";
24
24
  const NAME_COMPUTED = "computed";
25
25
  const NAME_EFFECT = "effect";
26
+ const NAME_MORA = "$mora";
26
27
  const NAME_SIGNAL = "signal";
27
28
  const NAME_STORE = "store";
28
- const NAMES = new Set([
29
+ const NAME_ALL = new Set([
29
30
  NAME_ARRAY,
30
31
  NAME_COMPUTED,
31
32
  NAME_SIGNAL,
32
33
  NAME_STORE
33
34
  ]);
34
- export { ACTIVE, ARRAY_OFFSET, ARRAY_PEEK, ARRAY_THRESHOLD, BATCH, METHODS_AFFECTING_LENGTH, METHODS_UPDATE, NAMES, NAME_ARRAY, NAME_COMPUTED, NAME_EFFECT, NAME_SIGNAL, NAME_STORE };
35
+ const PROPERTY_LENGTH = "length";
36
+ export { ACTIVE, ARRAY_OFFSET, ARRAY_PEEK, ARRAY_THRESHOLD, BATCH, METHODS_AFFECTING_LENGTH, METHODS_UPDATE, NAME_ALL, NAME_ARRAY, NAME_COMPUTED, NAME_EFFECT, NAME_MORA, NAME_SIGNAL, NAME_STORE, PROPERTY_LENGTH };
package/dist/effect.js CHANGED
@@ -1,7 +1,7 @@
1
- import { ACTIVE, NAME_EFFECT } from "./constants.js";
1
+ import { ACTIVE, NAME_EFFECT, NAME_MORA } from "./constants.js";
2
2
  var Effect = class {
3
3
  constructor(callback) {
4
- Object.defineProperty(this, "$mora", { value: NAME_EFFECT });
4
+ Object.defineProperty(this, NAME_MORA, { value: NAME_EFFECT });
5
5
  this.state = { callback };
6
6
  runEffect(this);
7
7
  }
@@ -1,4 +1,4 @@
1
- import { NAMES, NAME_ARRAY, NAME_COMPUTED, NAME_EFFECT, NAME_SIGNAL, NAME_STORE } from "../constants.js";
1
+ import { NAME_ALL, NAME_ARRAY, NAME_COMPUTED, NAME_EFFECT, NAME_MORA, NAME_SIGNAL, NAME_STORE } from "../constants.js";
2
2
  function isArray(value) {
3
3
  return isMora(value, NAME_ARRAY);
4
4
  }
@@ -9,10 +9,10 @@ function isEffect(value) {
9
9
  return isMora(value, NAME_EFFECT);
10
10
  }
11
11
  function isMora(value, name) {
12
- return typeof value === "object" && value != null && "$mora" in value && (typeof name === "string" ? value.$mora === name : name.has(value.$mora));
12
+ return typeof value === "object" && value != null && "$mora" in value && (typeof name === "string" ? value["$mora"] === name : name.has(value["$mora"]));
13
13
  }
14
14
  function isReactive(value) {
15
- return isMora(value, NAMES);
15
+ return isMora(value, NAME_ALL);
16
16
  }
17
17
  function isSignal(value) {
18
18
  return isMora(value, NAME_SIGNAL);
@@ -1,13 +1,17 @@
1
+ import { PROPERTY_LENGTH } from "../constants.js";
1
2
  import { startBatch, stopBatch } from "../batch.js";
2
3
  import { computed } from "../value/computed.js";
3
4
  import { emitValue } from "./value.js";
5
+ function emityProxyValues(state, mapped) {
6
+ const values = [...mapped.values()];
7
+ const { length } = values;
8
+ for (let index = 0; index < length; index += 1) values[index].effect.dirty = true;
9
+ emitValue(state);
10
+ }
4
11
  function getReactiveValueInProxy(reactive, mapped, key, isArray) {
5
12
  let item = mapped.get(key);
6
13
  if (item == null) {
7
- item = computed(() => {
8
- const value = reactive.get();
9
- return isArray ? value.at(key) : value[key];
10
- });
14
+ item = computed(() => isArray ? reactive.get().at(key) : reactive.get()[key]);
11
15
  mapped.set(key, item);
12
16
  }
13
17
  return item;
@@ -41,4 +45,4 @@ function setValueInProxy(parameters) {
41
45
  }
42
46
  return true;
43
47
  }
44
- export { getReactiveValueInProxy, setProxyValue, setValueInProxy };
48
+ export { emityProxyValues, getReactiveValueInProxy, setProxyValue, setValueInProxy };