@esportsplus/reactivity 0.1.29 → 0.1.31

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) => 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));
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.31"
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,12 @@ 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
+ // @ts-ignore
70
+ map<U>(fn: (this: ReactiveArray<T>, value: T, i: number) => U) {
76
71
  let values: U[] = [];
77
72
 
78
73
  for (let i = 0, n = this.length; i < n; i++) {
79
- values.push( fn(this[i], i, this) );
74
+ values.push( fn.call(this, this[i], i) );
80
75
  }
81
76
 
82
77
  return values;
@@ -110,6 +105,7 @@ class ReactiveArray<T> extends Array<T> {
110
105
  return n;
111
106
  }
112
107
 
108
+ // @ts-ignore
113
109
  reverse() {
114
110
  super.reverse();
115
111
 
@@ -130,6 +126,7 @@ class ReactiveArray<T> extends Array<T> {
130
126
  return item;
131
127
  }
132
128
 
129
+ // @ts-ignore
133
130
  sort() {
134
131
  super.sort();
135
132
 
@@ -154,8 +151,13 @@ class ReactiveArray<T> extends Array<T> {
154
151
  return removed;
155
152
  }
156
153
 
157
- track() {
154
+ track(index?: number) {
158
155
  this.signal.get();
156
+ return index === undefined ? undefined : this[index];
157
+ }
158
+
159
+ trigger() {
160
+ this.signal.set(!this.signal.value);
159
161
  }
160
162
 
161
163
  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> = {