@esportsplus/reactivity 0.16.3 → 0.16.4
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/build/reactive/array.d.ts +47 -48
- package/build/reactive/object.d.ts +4 -1
- package/package.json +1 -1
- package/src/reactive/array.ts +1 -2
- package/src/reactive/object.ts +15 -2
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { Prettify } from '@esportsplus/utilities';
|
|
2
|
-
|
|
3
|
-
type ReactiveArray<T extends unknown[]> = Prettify<Infer<T> & {
|
|
2
|
+
type ReactiveArray<T extends unknown[]> = Prettify<T & {
|
|
4
3
|
clear: () => void;
|
|
5
4
|
dispose: () => void;
|
|
6
5
|
dispatch: <K extends keyof Events<T[number]>, V>(event: K, value?: V) => void;
|
|
@@ -39,24 +38,24 @@ type Listener<V> = {
|
|
|
39
38
|
(value: V): void;
|
|
40
39
|
};
|
|
41
40
|
declare const _default: <T>(data: T[]) => {
|
|
42
|
-
[x: number]:
|
|
41
|
+
[x: number]: T;
|
|
43
42
|
length: number;
|
|
44
43
|
toString: () => string;
|
|
45
44
|
toLocaleString: {
|
|
46
45
|
(): string;
|
|
47
46
|
(locales: string | string[], options?: Intl.NumberFormatOptions & Intl.DateTimeFormatOptions): string;
|
|
48
47
|
};
|
|
49
|
-
pop: () =>
|
|
50
|
-
push: (...items:
|
|
48
|
+
pop: () => T | undefined;
|
|
49
|
+
push: (...items: T[]) => number;
|
|
51
50
|
concat: {
|
|
52
|
-
(...items: ConcatArray<
|
|
53
|
-
(...items: (
|
|
51
|
+
(...items: ConcatArray<T>[]): T[];
|
|
52
|
+
(...items: (T | ConcatArray<T>)[]): T[];
|
|
54
53
|
};
|
|
55
54
|
join: (separator?: string) => string;
|
|
56
|
-
reverse: () =>
|
|
57
|
-
shift: () =>
|
|
58
|
-
slice: (start?: number, end?: number) =>
|
|
59
|
-
sort: (compareFn?: ((a:
|
|
55
|
+
reverse: () => T[];
|
|
56
|
+
shift: () => T | undefined;
|
|
57
|
+
slice: (start?: number, end?: number) => T[];
|
|
58
|
+
sort: (compareFn?: ((a: T, b: T) => number) | undefined) => T[] & {
|
|
60
59
|
clear: () => void;
|
|
61
60
|
dispose: () => void;
|
|
62
61
|
dispatch: <K extends keyof Events<T_1[number]>, V>(event: K, value?: V | undefined) => void;
|
|
@@ -65,39 +64,39 @@ declare const _default: <T>(data: T[]) => {
|
|
|
65
64
|
once: <K extends keyof Events<T_1[number]>>(event: K, listener: Listener<Events<T>[K]>) => void;
|
|
66
65
|
};
|
|
67
66
|
splice: {
|
|
68
|
-
(start: number, deleteCount?: number):
|
|
69
|
-
(start: number, deleteCount: number, ...items:
|
|
67
|
+
(start: number, deleteCount?: number): T[];
|
|
68
|
+
(start: number, deleteCount: number, ...items: T[]): T[];
|
|
70
69
|
};
|
|
71
|
-
unshift: (...items:
|
|
72
|
-
indexOf: (searchElement:
|
|
73
|
-
lastIndexOf: (searchElement:
|
|
70
|
+
unshift: (...items: T[]) => number;
|
|
71
|
+
indexOf: (searchElement: T, fromIndex?: number) => number;
|
|
72
|
+
lastIndexOf: (searchElement: T, fromIndex?: number) => number;
|
|
74
73
|
every: {
|
|
75
|
-
<S extends
|
|
76
|
-
(predicate: (value:
|
|
74
|
+
<S extends T>(predicate: (value: T, index: number, array: T[]) => value is S, thisArg?: any): this is S[];
|
|
75
|
+
(predicate: (value: T, index: number, array: T[]) => unknown, thisArg?: any): boolean;
|
|
77
76
|
};
|
|
78
|
-
some: (predicate: (value:
|
|
79
|
-
forEach: (callbackfn: (value:
|
|
80
|
-
map: (<U>(callbackfn: (value:
|
|
77
|
+
some: (predicate: (value: T, index: number, array: T[]) => unknown, thisArg?: any) => boolean;
|
|
78
|
+
forEach: (callbackfn: (value: T, index: number, array: T[]) => void, thisArg?: any) => void;
|
|
79
|
+
map: (<U>(callbackfn: (value: T, index: number, array: T[]) => U, thisArg?: any) => U[]) & (<R>(fn: (this: any, value: T, i: number) => R) => R[]);
|
|
81
80
|
filter: {
|
|
82
|
-
<S extends
|
|
83
|
-
(predicate: (value:
|
|
81
|
+
<S extends T>(predicate: (value: T, index: number, array: T[]) => value is S, thisArg?: any): S[];
|
|
82
|
+
(predicate: (value: T, index: number, array: T[]) => unknown, thisArg?: any): T[];
|
|
84
83
|
};
|
|
85
84
|
reduce: {
|
|
86
|
-
(callbackfn: (previousValue:
|
|
87
|
-
(callbackfn: (previousValue:
|
|
88
|
-
<U>(callbackfn: (previousValue: U, currentValue:
|
|
85
|
+
(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T): T;
|
|
86
|
+
(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue: T): T;
|
|
87
|
+
<U>(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U;
|
|
89
88
|
};
|
|
90
89
|
reduceRight: {
|
|
91
|
-
(callbackfn: (previousValue:
|
|
92
|
-
(callbackfn: (previousValue:
|
|
93
|
-
<U>(callbackfn: (previousValue: U, currentValue:
|
|
90
|
+
(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T): T;
|
|
91
|
+
(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue: T): T;
|
|
92
|
+
<U>(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U;
|
|
94
93
|
};
|
|
95
94
|
find: {
|
|
96
|
-
<S extends
|
|
97
|
-
(predicate: (value:
|
|
95
|
+
<S extends T>(predicate: (value: T, index: number, obj: T[]) => value is S, thisArg?: any): S | undefined;
|
|
96
|
+
(predicate: (value: T, index: number, obj: T[]) => unknown, thisArg?: any): T | undefined;
|
|
98
97
|
};
|
|
99
|
-
findIndex: (predicate: (value:
|
|
100
|
-
fill: (value:
|
|
98
|
+
findIndex: (predicate: (value: T, index: number, obj: T[]) => unknown, thisArg?: any) => number;
|
|
99
|
+
fill: (value: T, start?: number, end?: number) => T[] & {
|
|
101
100
|
clear: () => void;
|
|
102
101
|
dispose: () => void;
|
|
103
102
|
dispatch: <K extends keyof Events<T_1[number]>, V>(event: K, value?: V | undefined) => void;
|
|
@@ -105,7 +104,7 @@ declare const _default: <T>(data: T[]) => {
|
|
|
105
104
|
on: <K extends keyof Events<T_1[number]>>(event: K, listener: Listener<Events<T>[K]>) => void;
|
|
106
105
|
once: <K extends keyof Events<T_1[number]>>(event: K, listener: Listener<Events<T>[K]>) => void;
|
|
107
106
|
};
|
|
108
|
-
copyWithin: (target: number, start: number, end?: number) =>
|
|
107
|
+
copyWithin: (target: number, start: number, end?: number) => T[] & {
|
|
109
108
|
clear: () => void;
|
|
110
109
|
dispose: () => void;
|
|
111
110
|
dispatch: <K extends keyof Events<T_1[number]>, V>(event: K, value?: V | undefined) => void;
|
|
@@ -113,26 +112,26 @@ declare const _default: <T>(data: T[]) => {
|
|
|
113
112
|
on: <K extends keyof Events<T_1[number]>>(event: K, listener: Listener<Events<T>[K]>) => void;
|
|
114
113
|
once: <K extends keyof Events<T_1[number]>>(event: K, listener: Listener<Events<T>[K]>) => void;
|
|
115
114
|
};
|
|
116
|
-
entries: () => ArrayIterator<[number,
|
|
115
|
+
entries: () => ArrayIterator<[number, T]>;
|
|
117
116
|
keys: () => ArrayIterator<number>;
|
|
118
|
-
values: () => ArrayIterator<
|
|
119
|
-
includes: (searchElement:
|
|
120
|
-
flatMap: <U, This = undefined>(callback: (this: This, value:
|
|
117
|
+
values: () => ArrayIterator<T>;
|
|
118
|
+
includes: (searchElement: T, fromIndex?: number) => boolean;
|
|
119
|
+
flatMap: <U, This = undefined>(callback: (this: This, value: T, index: number, array: T[]) => U | readonly U[], thisArg?: This | undefined) => U[];
|
|
121
120
|
flat: <A, D extends number = 1>(this: A, depth?: D | undefined) => FlatArray<A, D>[];
|
|
122
|
-
at: (index: number) =>
|
|
121
|
+
at: (index: number) => T | undefined;
|
|
123
122
|
findLast: {
|
|
124
|
-
<S extends
|
|
125
|
-
(predicate: (value:
|
|
123
|
+
<S extends T>(predicate: (value: T, index: number, array: T[]) => value is S, thisArg?: any): S | undefined;
|
|
124
|
+
(predicate: (value: T, index: number, array: T[]) => unknown, thisArg?: any): T | undefined;
|
|
126
125
|
};
|
|
127
|
-
findLastIndex: (predicate: (value:
|
|
128
|
-
toReversed: () =>
|
|
129
|
-
toSorted: (compareFn?: ((a:
|
|
126
|
+
findLastIndex: (predicate: (value: T, index: number, array: T[]) => unknown, thisArg?: any) => number;
|
|
127
|
+
toReversed: () => T[];
|
|
128
|
+
toSorted: (compareFn?: ((a: T, b: T) => number) | undefined) => T[];
|
|
130
129
|
toSpliced: {
|
|
131
|
-
(start: number, deleteCount: number, ...items:
|
|
132
|
-
(start: number, deleteCount?: number):
|
|
130
|
+
(start: number, deleteCount: number, ...items: T[]): T[];
|
|
131
|
+
(start: number, deleteCount?: number): T[];
|
|
133
132
|
};
|
|
134
|
-
with: (index: number, value:
|
|
135
|
-
[Symbol.iterator]: () => ArrayIterator<
|
|
133
|
+
with: (index: number, value: T) => T[];
|
|
134
|
+
[Symbol.iterator]: () => ArrayIterator<T>;
|
|
136
135
|
readonly [Symbol.unscopables]: {
|
|
137
136
|
[x: number]: boolean | undefined;
|
|
138
137
|
length?: boolean | undefined;
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import { Prettify } from '@esportsplus/utilities';
|
|
2
|
-
import { Infer } from '../types.js';
|
|
3
2
|
import { REACTIVE_OBJECT } from '../constants.js';
|
|
3
|
+
import { ReactiveArray } from './array.js';
|
|
4
4
|
type API<T> = Prettify<{
|
|
5
5
|
[K in keyof T]: Infer<T[K]>;
|
|
6
6
|
} & {
|
|
7
7
|
dispose: VoidFunction;
|
|
8
8
|
}>;
|
|
9
|
+
type Infer<T> = T extends (...args: unknown[]) => Promise<infer R> ? R | undefined : T extends (...args: any[]) => infer R ? R : T extends unknown[] ? ReactiveArray<T> : T extends ReactiveObject<any> ? T : T extends Record<PropertyKey, unknown> ? {
|
|
10
|
+
[K in keyof T]: T[K];
|
|
11
|
+
} : T;
|
|
9
12
|
declare class ReactiveObject<T extends Record<PropertyKey, unknown>> {
|
|
10
13
|
[REACTIVE_OBJECT]: boolean;
|
|
11
14
|
private disposers;
|
package/package.json
CHANGED
package/src/reactive/array.ts
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import { isNumber, Prettify } from '@esportsplus/utilities';
|
|
2
2
|
import { REACTIVE_ARRAY } from '~/constants';
|
|
3
|
-
import { Infer } from '~/types';
|
|
4
3
|
import { isReactiveObject } from './object';
|
|
5
4
|
|
|
6
5
|
|
|
7
6
|
type ReactiveArray<T extends unknown[]> = Prettify<
|
|
8
|
-
|
|
7
|
+
T & {
|
|
9
8
|
clear: () => void;
|
|
10
9
|
dispose: () => void;
|
|
11
10
|
dispatch: <K extends keyof Events<T[number]>, V>(event: K, value?: V) => void;
|
package/src/reactive/object.ts
CHANGED
|
@@ -1,12 +1,25 @@
|
|
|
1
1
|
import { defineProperty, isArray, isFunction, isObject, isPromise, Prettify } from '@esportsplus/utilities';
|
|
2
2
|
import { computed, dispose, effect, read, root, set, signal } from '~/system';
|
|
3
|
-
import { Computed,
|
|
3
|
+
import { Computed, Signal } from '~/types';
|
|
4
4
|
import { REACTIVE_OBJECT } from '~/constants';
|
|
5
|
-
import array from './array';
|
|
5
|
+
import array, { ReactiveArray } from './array';
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
type API<T> = Prettify<{ [K in keyof T]: Infer<T[K]> } & { dispose: VoidFunction } >;
|
|
9
9
|
|
|
10
|
+
type Infer<T> =
|
|
11
|
+
T extends (...args: unknown[]) => Promise<infer R>
|
|
12
|
+
? R | undefined
|
|
13
|
+
: T extends (...args: any[]) => infer R
|
|
14
|
+
? R
|
|
15
|
+
: T extends unknown[]
|
|
16
|
+
? ReactiveArray<T>
|
|
17
|
+
: T extends ReactiveObject<any>
|
|
18
|
+
? T
|
|
19
|
+
: T extends Record<PropertyKey, unknown>
|
|
20
|
+
? { [K in keyof T]: T[K] }
|
|
21
|
+
: T;
|
|
22
|
+
|
|
10
23
|
|
|
11
24
|
class ReactiveObject<T extends Record<PropertyKey, unknown>> {
|
|
12
25
|
[REACTIVE_OBJECT] = true;
|