@esportsplus/reactivity 0.1.29 → 0.1.30

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.
@@ -28,11 +28,10 @@ declare class ReactiveArray<T> extends Array<T> {
28
28
  private signal;
29
29
  constructor(data: T[]);
30
30
  set length(n: number);
31
- private trigger;
32
31
  dispatch<E extends keyof Events<T>>(event: E, data?: Events<T>[E]): void;
33
32
  dispose(): void;
34
33
  fill(value: T, start?: number, end?: number): this;
35
- map<U>(fn: (value: T, i: number, values: this) => U): U[];
34
+ map<U>(fn: (this: ReactiveArray<T>, value: T, i: number, values: this) => U): U[];
36
35
  on<E extends keyof Events<T>>(event: E, listener: Listener<Events<T>[E]>): void;
37
36
  once<E extends keyof Events<T>>(event: E, listener: Listener<Events<T>[E]>): void;
38
37
  pop(): T | undefined;
@@ -41,7 +40,8 @@ declare class ReactiveArray<T> extends Array<T> {
41
40
  shift(): T | undefined;
42
41
  sort(): this;
43
42
  splice(start: number, deleteCount?: number, ...items: T[]): T[];
44
- track(): void;
43
+ track(index?: number): T | undefined;
44
+ trigger(): void;
45
45
  unshift(...items: T[]): number;
46
46
  }
47
47
  declare class ReactiveObjectArray<T extends Object> extends ReactiveArray<ReactiveObject<T>> {
@@ -13,7 +13,7 @@ function unsupported(method) {
13
13
  class ReactiveArray extends Array {
14
14
  signal;
15
15
  constructor(data) {
16
- super(data);
16
+ super(...data);
17
17
  this.signal = signal(false);
18
18
  }
19
19
  set length(n) {
@@ -22,9 +22,6 @@ class ReactiveArray extends Array {
22
22
  }
23
23
  this.splice(n);
24
24
  }
25
- trigger() {
26
- this.signal.set(!this.signal.value);
27
- }
28
25
  dispatch(event, data) {
29
26
  this.signal.dispatch(event, data);
30
27
  }
@@ -40,7 +37,7 @@ class ReactiveArray extends Array {
40
37
  map(fn) {
41
38
  let values = [];
42
39
  for (let i = 0, n = this.length; i < n; i++) {
43
- values.push(fn(this[i], i, this));
40
+ values.push(fn.call(this, this[i], i, this));
44
41
  }
45
42
  return values;
46
43
  }
@@ -96,8 +93,12 @@ class ReactiveArray extends Array {
96
93
  }
97
94
  return removed;
98
95
  }
99
- track() {
96
+ track(index) {
100
97
  this.signal.get();
98
+ return index === undefined ? undefined : this[index];
99
+ }
100
+ trigger() {
101
+ this.signal.set(!this.signal.value);
101
102
  }
102
103
  unshift(...items) {
103
104
  let length = super.unshift(...items);
@@ -4,11 +4,11 @@ import { ReactiveObject } from './object';
4
4
  type Guard<T> = T extends Object ? {
5
5
  [K in keyof T]: Never<K, Guard<T[K]>>;
6
6
  } : T extends unknown[] ? Guard<T[number]>[] : T;
7
- type Infer<T> = T extends (...args: unknown[]) => unknown ? ReturnType<T> : T extends unknown[] ? Infer<T[number]>[] : T extends Object ? {
7
+ type Infer<T> = T extends (...args: unknown[]) => unknown ? ReturnType<T> : T extends unknown[] ? T extends Object[] ? ReactiveObjectArray<T[0]> : ReactiveArray<T[0]> : T extends Object ? {
8
8
  [K in keyof T]: T[K];
9
9
  } : T;
10
10
  type Never<K, V> = K extends keyof ReactiveObject<Object> ? never : V;
11
- type Nodes<T> = T extends (...args: unknown[]) => unknown ? Computed<T> : T extends unknown[] ? T extends Object[] ? ReactiveObjectArray<T[0]> : ReactiveArray<T> : Signal<T>;
11
+ type Nodes<T> = T extends (...args: unknown[]) => unknown ? Computed<T> : T extends unknown[] ? T extends Object[] ? ReactiveObjectArray<T[0]> : ReactiveArray<T[0]> : Signal<T>;
12
12
  type Signals<T extends Object> = {
13
13
  [K in keyof T]: Nodes<T[K]>;
14
14
  };
package/package.json CHANGED
@@ -16,5 +16,5 @@
16
16
  "prepublishOnly": "npm run build"
17
17
  },
18
18
  "types": "build/index.d.ts",
19
- "version": "0.1.29"
19
+ "version": "0.1.30"
20
20
  }
@@ -35,8 +35,7 @@ class ReactiveArray<T> extends Array<T> {
35
35
 
36
36
 
37
37
  constructor(data: T[]) {
38
- // @ts-ignore
39
- super(data);
38
+ super(...data);
40
39
  this.signal = signal(false);
41
40
  }
42
41
 
@@ -50,11 +49,6 @@ class ReactiveArray<T> extends Array<T> {
50
49
  }
51
50
 
52
51
 
53
- private trigger() {
54
- this.signal.set(!this.signal.value);
55
- }
56
-
57
-
58
52
  dispatch<E extends keyof Events<T>>(event: E, data?: Events<T>[E]) {
59
53
  this.signal.dispatch(event, data);
60
54
  }
@@ -72,11 +66,11 @@ class ReactiveArray<T> extends Array<T> {
72
66
  return this;
73
67
  }
74
68
 
75
- map<U>(fn: (value: T, i: number, values: this) => U) {
69
+ map<U>(fn: (this: ReactiveArray<T>, value: T, i: number, values: this) => U) {
76
70
  let values: U[] = [];
77
71
 
78
72
  for (let i = 0, n = this.length; i < n; i++) {
79
- values.push( fn(this[i], i, this) );
73
+ values.push( fn.call(this, this[i], i, this) );
80
74
  }
81
75
 
82
76
  return values;
@@ -154,8 +148,13 @@ class ReactiveArray<T> extends Array<T> {
154
148
  return removed;
155
149
  }
156
150
 
157
- track() {
151
+ track(index?: number) {
158
152
  this.signal.get();
153
+ return index === undefined ? undefined : this[index];
154
+ }
155
+
156
+ trigger() {
157
+ this.signal.set(!this.signal.value);
159
158
  }
160
159
 
161
160
  unshift(...items: T[]) {
@@ -14,7 +14,7 @@ type Infer<T> =
14
14
  T extends (...args: unknown[]) => unknown
15
15
  ? ReturnType<T>
16
16
  : T extends unknown[]
17
- ? Infer<T[number]>[]
17
+ ? T extends Object[] ? ReactiveObjectArray<T[0]> : ReactiveArray<T[0]>
18
18
  : T extends Object
19
19
  ? { [K in keyof T]: T[K] }
20
20
  : T;
@@ -25,7 +25,7 @@ type Nodes<T> =
25
25
  T extends (...args: unknown[]) => unknown
26
26
  ? Computed<T>
27
27
  : T extends unknown[]
28
- ? T extends Object[] ? ReactiveObjectArray<T[0]> : ReactiveArray<T>
28
+ ? T extends Object[] ? ReactiveObjectArray<T[0]> : ReactiveArray<T[0]>
29
29
  : Signal<T>;
30
30
 
31
31
  type Signals<T extends Object> = {