@esportsplus/reactivity 0.14.0 → 0.14.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.
- package/build/reactive/array.d.ts +153 -8
- package/package.json +1 -1
- package/src/reactive/array.ts +16 -14
|
@@ -1,12 +1,13 @@
|
|
|
1
|
+
import { Prettify } from '@esportsplus/utilities';
|
|
1
2
|
import { Infer } from '../types.js';
|
|
2
|
-
type
|
|
3
|
+
type ReactiveArray<T extends unknown[]> = Prettify<Infer<T> & {
|
|
3
4
|
clear: () => void;
|
|
4
5
|
dispose: () => void;
|
|
5
|
-
dispatch: <
|
|
6
|
-
map: <
|
|
7
|
-
on: <
|
|
8
|
-
once: <
|
|
9
|
-
}
|
|
6
|
+
dispatch: <K extends keyof Events<T>, V>(event: K, value?: V) => void;
|
|
7
|
+
map: <R>(fn: (this: ReactiveArray<T>, value: T[number], i: number) => R, i?: number, n?: number) => R[];
|
|
8
|
+
on: <K extends keyof Events<T>>(event: K, listener: Listener<Events<T>[K]>) => void;
|
|
9
|
+
once: <K extends keyof Events<T>>(event: K, listener: Listener<Events<T>[K]>) => void;
|
|
10
|
+
}>;
|
|
10
11
|
type Events<T> = {
|
|
11
12
|
clear: undefined;
|
|
12
13
|
pop: {
|
|
@@ -37,6 +38,150 @@ type Listener<V> = {
|
|
|
37
38
|
once?: boolean;
|
|
38
39
|
(value: V): void;
|
|
39
40
|
};
|
|
40
|
-
declare const _default: <T>(data: T[]) =>
|
|
41
|
+
declare const _default: <T>(data: T[]) => {
|
|
42
|
+
[x: number]: Infer<T>;
|
|
43
|
+
length: number;
|
|
44
|
+
toString: () => string;
|
|
45
|
+
toLocaleString: {
|
|
46
|
+
(): string;
|
|
47
|
+
(locales: string | string[], options?: Intl.NumberFormatOptions & Intl.DateTimeFormatOptions): string;
|
|
48
|
+
};
|
|
49
|
+
pop: () => Infer<T> | undefined;
|
|
50
|
+
push: (...items: Infer<T>[]) => number;
|
|
51
|
+
concat: {
|
|
52
|
+
(...items: ConcatArray<Infer<T>>[]): Infer<T>[];
|
|
53
|
+
(...items: (Infer<T> | ConcatArray<Infer<T>>)[]): Infer<T>[];
|
|
54
|
+
};
|
|
55
|
+
join: (separator?: string) => string;
|
|
56
|
+
reverse: () => Infer<T>[];
|
|
57
|
+
shift: () => Infer<T> | undefined;
|
|
58
|
+
slice: (start?: number, end?: number) => Infer<T>[];
|
|
59
|
+
sort: (compareFn?: ((a: Infer<T>, b: Infer<T>) => number) | undefined) => Infer<T>[] & {
|
|
60
|
+
clear: () => void;
|
|
61
|
+
dispose: () => void;
|
|
62
|
+
dispatch: <K extends keyof Events<T_1>, V>(event: K, value?: V | undefined) => void;
|
|
63
|
+
map: <R>(fn: (this: any, value: T, i: number) => R, i?: number, n?: number) => R[];
|
|
64
|
+
on: <K extends keyof Events<T_1>>(event: K, listener: Listener<Events<T[]>[K]>) => void;
|
|
65
|
+
once: <K extends keyof Events<T_1>>(event: K, listener: Listener<Events<T[]>[K]>) => void;
|
|
66
|
+
};
|
|
67
|
+
splice: {
|
|
68
|
+
(start: number, deleteCount?: number): Infer<T>[];
|
|
69
|
+
(start: number, deleteCount: number, ...items: Infer<T>[]): Infer<T>[];
|
|
70
|
+
};
|
|
71
|
+
unshift: (...items: Infer<T>[]) => number;
|
|
72
|
+
indexOf: (searchElement: Infer<T>, fromIndex?: number) => number;
|
|
73
|
+
lastIndexOf: (searchElement: Infer<T>, fromIndex?: number) => number;
|
|
74
|
+
every: {
|
|
75
|
+
<S extends Infer<T>>(predicate: (value: Infer<T>, index: number, array: Infer<T>[]) => value is S, thisArg?: any): this is S[];
|
|
76
|
+
(predicate: (value: Infer<T>, index: number, array: Infer<T>[]) => unknown, thisArg?: any): boolean;
|
|
77
|
+
};
|
|
78
|
+
some: (predicate: (value: Infer<T>, index: number, array: Infer<T>[]) => unknown, thisArg?: any) => boolean;
|
|
79
|
+
forEach: (callbackfn: (value: Infer<T>, index: number, array: Infer<T>[]) => void, thisArg?: any) => void;
|
|
80
|
+
map: (<U>(callbackfn: (value: Infer<T>, index: number, array: Infer<T>[]) => U, thisArg?: any) => U[]) & (<R>(fn: (this: any, value: T, i: number) => R, i?: number, n?: number) => R[]);
|
|
81
|
+
filter: {
|
|
82
|
+
<S extends Infer<T>>(predicate: (value: Infer<T>, index: number, array: Infer<T>[]) => value is S, thisArg?: any): S[];
|
|
83
|
+
(predicate: (value: Infer<T>, index: number, array: Infer<T>[]) => unknown, thisArg?: any): Infer<T>[];
|
|
84
|
+
};
|
|
85
|
+
reduce: {
|
|
86
|
+
(callbackfn: (previousValue: Infer<T>, currentValue: Infer<T>, currentIndex: number, array: Infer<T>[]) => Infer<T>): Infer<T>;
|
|
87
|
+
(callbackfn: (previousValue: Infer<T>, currentValue: Infer<T>, currentIndex: number, array: Infer<T>[]) => Infer<T>, initialValue: Infer<T>): Infer<T>;
|
|
88
|
+
<U>(callbackfn: (previousValue: U, currentValue: Infer<T>, currentIndex: number, array: Infer<T>[]) => U, initialValue: U): U;
|
|
89
|
+
};
|
|
90
|
+
reduceRight: {
|
|
91
|
+
(callbackfn: (previousValue: Infer<T>, currentValue: Infer<T>, currentIndex: number, array: Infer<T>[]) => Infer<T>): Infer<T>;
|
|
92
|
+
(callbackfn: (previousValue: Infer<T>, currentValue: Infer<T>, currentIndex: number, array: Infer<T>[]) => Infer<T>, initialValue: Infer<T>): Infer<T>;
|
|
93
|
+
<U>(callbackfn: (previousValue: U, currentValue: Infer<T>, currentIndex: number, array: Infer<T>[]) => U, initialValue: U): U;
|
|
94
|
+
};
|
|
95
|
+
find: {
|
|
96
|
+
<S extends Infer<T>>(predicate: (value: Infer<T>, index: number, obj: Infer<T>[]) => value is S, thisArg?: any): S | undefined;
|
|
97
|
+
(predicate: (value: Infer<T>, index: number, obj: Infer<T>[]) => unknown, thisArg?: any): Infer<T> | undefined;
|
|
98
|
+
};
|
|
99
|
+
findIndex: (predicate: (value: Infer<T>, index: number, obj: Infer<T>[]) => unknown, thisArg?: any) => number;
|
|
100
|
+
fill: (value: Infer<T>, start?: number, end?: number) => Infer<T>[] & {
|
|
101
|
+
clear: () => void;
|
|
102
|
+
dispose: () => void;
|
|
103
|
+
dispatch: <K extends keyof Events<T_1>, V>(event: K, value?: V | undefined) => void;
|
|
104
|
+
map: <R>(fn: (this: any, value: T, i: number) => R, i?: number, n?: number) => R[];
|
|
105
|
+
on: <K extends keyof Events<T_1>>(event: K, listener: Listener<Events<T[]>[K]>) => void;
|
|
106
|
+
once: <K extends keyof Events<T_1>>(event: K, listener: Listener<Events<T[]>[K]>) => void;
|
|
107
|
+
};
|
|
108
|
+
copyWithin: (target: number, start: number, end?: number) => Infer<T>[] & {
|
|
109
|
+
clear: () => void;
|
|
110
|
+
dispose: () => void;
|
|
111
|
+
dispatch: <K extends keyof Events<T_1>, V>(event: K, value?: V | undefined) => void;
|
|
112
|
+
map: <R>(fn: (this: any, value: T, i: number) => R, i?: number, n?: number) => R[];
|
|
113
|
+
on: <K extends keyof Events<T_1>>(event: K, listener: Listener<Events<T[]>[K]>) => void;
|
|
114
|
+
once: <K extends keyof Events<T_1>>(event: K, listener: Listener<Events<T[]>[K]>) => void;
|
|
115
|
+
};
|
|
116
|
+
entries: () => ArrayIterator<[number, Infer<T>]>;
|
|
117
|
+
keys: () => ArrayIterator<number>;
|
|
118
|
+
values: () => ArrayIterator<Infer<T>>;
|
|
119
|
+
includes: (searchElement: Infer<T>, fromIndex?: number) => boolean;
|
|
120
|
+
flatMap: <U, This = undefined>(callback: (this: This, value: Infer<T>, index: number, array: Infer<T>[]) => U | readonly U[], thisArg?: This | undefined) => U[];
|
|
121
|
+
flat: <A, D extends number = 1>(this: A, depth?: D | undefined) => FlatArray<A, D>[];
|
|
122
|
+
at: (index: number) => Infer<T> | undefined;
|
|
123
|
+
findLast: {
|
|
124
|
+
<S extends Infer<T>>(predicate: (value: Infer<T>, index: number, array: Infer<T>[]) => value is S, thisArg?: any): S | undefined;
|
|
125
|
+
(predicate: (value: Infer<T>, index: number, array: Infer<T>[]) => unknown, thisArg?: any): Infer<T> | undefined;
|
|
126
|
+
};
|
|
127
|
+
findLastIndex: (predicate: (value: Infer<T>, index: number, array: Infer<T>[]) => unknown, thisArg?: any) => number;
|
|
128
|
+
toReversed: () => Infer<T>[];
|
|
129
|
+
toSorted: (compareFn?: ((a: Infer<T>, b: Infer<T>) => number) | undefined) => Infer<T>[];
|
|
130
|
+
toSpliced: {
|
|
131
|
+
(start: number, deleteCount: number, ...items: Infer<T>[]): Infer<T>[];
|
|
132
|
+
(start: number, deleteCount?: number): Infer<T>[];
|
|
133
|
+
};
|
|
134
|
+
with: (index: number, value: Infer<T>) => Infer<T>[];
|
|
135
|
+
[Symbol.iterator]: () => ArrayIterator<Infer<T>>;
|
|
136
|
+
readonly [Symbol.unscopables]: {
|
|
137
|
+
[x: number]: boolean | undefined;
|
|
138
|
+
length?: boolean | undefined;
|
|
139
|
+
toString?: boolean | undefined;
|
|
140
|
+
toLocaleString?: boolean | undefined;
|
|
141
|
+
pop?: boolean | undefined;
|
|
142
|
+
push?: boolean | undefined;
|
|
143
|
+
concat?: boolean | undefined;
|
|
144
|
+
join?: boolean | undefined;
|
|
145
|
+
reverse?: boolean | undefined;
|
|
146
|
+
shift?: boolean | undefined;
|
|
147
|
+
slice?: boolean | undefined;
|
|
148
|
+
sort?: boolean | undefined;
|
|
149
|
+
splice?: boolean | undefined;
|
|
150
|
+
unshift?: boolean | undefined;
|
|
151
|
+
indexOf?: boolean | undefined;
|
|
152
|
+
lastIndexOf?: boolean | undefined;
|
|
153
|
+
every?: boolean | undefined;
|
|
154
|
+
some?: boolean | undefined;
|
|
155
|
+
forEach?: boolean | undefined;
|
|
156
|
+
map?: boolean | undefined;
|
|
157
|
+
filter?: boolean | undefined;
|
|
158
|
+
reduce?: boolean | undefined;
|
|
159
|
+
reduceRight?: boolean | undefined;
|
|
160
|
+
find?: boolean | undefined;
|
|
161
|
+
findIndex?: boolean | undefined;
|
|
162
|
+
fill?: boolean | undefined;
|
|
163
|
+
copyWithin?: boolean | undefined;
|
|
164
|
+
entries?: boolean | undefined;
|
|
165
|
+
keys?: boolean | undefined;
|
|
166
|
+
values?: boolean | undefined;
|
|
167
|
+
includes?: boolean | undefined;
|
|
168
|
+
flatMap?: boolean | undefined;
|
|
169
|
+
flat?: boolean | undefined;
|
|
170
|
+
at?: boolean | undefined;
|
|
171
|
+
findLast?: boolean | undefined;
|
|
172
|
+
findLastIndex?: boolean | undefined;
|
|
173
|
+
toReversed?: boolean | undefined;
|
|
174
|
+
toSorted?: boolean | undefined;
|
|
175
|
+
toSpliced?: boolean | undefined;
|
|
176
|
+
with?: boolean | undefined;
|
|
177
|
+
[Symbol.iterator]?: boolean | undefined;
|
|
178
|
+
readonly [Symbol.unscopables]?: boolean | undefined;
|
|
179
|
+
};
|
|
180
|
+
clear: () => void;
|
|
181
|
+
dispose: () => void;
|
|
182
|
+
dispatch: <K extends keyof Events<T_1>, V>(event: K, value?: V | undefined) => void;
|
|
183
|
+
on: <K extends keyof Events<T_1>>(event: K, listener: Listener<Events<T[]>[K]>) => void;
|
|
184
|
+
once: <K extends keyof Events<T_1>>(event: K, listener: Listener<Events<T[]>[K]>) => void;
|
|
185
|
+
};
|
|
41
186
|
export default _default;
|
|
42
|
-
export type {
|
|
187
|
+
export type { ReactiveArray };
|
package/package.json
CHANGED
package/src/reactive/array.ts
CHANGED
|
@@ -1,17 +1,19 @@
|
|
|
1
|
-
import { isNumber } from '@esportsplus/utilities';
|
|
1
|
+
import { isNumber, Prettify } from '@esportsplus/utilities';
|
|
2
2
|
import { REACTIVE_ARRAY } from '~/constants';
|
|
3
3
|
import { Infer } from '~/types';
|
|
4
4
|
import { isReactiveObject } from './object';
|
|
5
5
|
|
|
6
6
|
|
|
7
|
-
type
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
7
|
+
type ReactiveArray<T extends unknown[]> = Prettify<
|
|
8
|
+
Infer<T> & {
|
|
9
|
+
clear: () => void;
|
|
10
|
+
dispose: () => void;
|
|
11
|
+
dispatch: <K extends keyof Events<T>, V>(event: K, value?: V) => void;
|
|
12
|
+
map: <R>(fn: (this: ReactiveArray<T>, value: T[number], i: number) => R, i?: number, n?: number) => R[];
|
|
13
|
+
on: <K extends keyof Events<T>>(event: K, listener: Listener<Events<T>[K]>) => void;
|
|
14
|
+
once: <K extends keyof Events<T>>(event: K, listener: Listener<Events<T>[K]>) => void;
|
|
15
|
+
}
|
|
16
|
+
>;
|
|
15
17
|
|
|
16
18
|
type Events<T> = {
|
|
17
19
|
clear: undefined,
|
|
@@ -96,8 +98,8 @@ function dispose<T>(data: T[]) {
|
|
|
96
98
|
|
|
97
99
|
function map<T, R>(
|
|
98
100
|
data: T[],
|
|
99
|
-
proxy:
|
|
100
|
-
fn: (this:
|
|
101
|
+
proxy: ReactiveArray<typeof data>,
|
|
102
|
+
fn: (this: ReactiveArray<typeof data>, value: T, i: number) => R,
|
|
101
103
|
i?: number,
|
|
102
104
|
n?: number
|
|
103
105
|
) {
|
|
@@ -252,7 +254,7 @@ export default <T>(data: T[]) => {
|
|
|
252
254
|
|
|
253
255
|
return true;
|
|
254
256
|
}
|
|
255
|
-
}) as
|
|
257
|
+
}) as ReactiveArray<typeof data>,
|
|
256
258
|
wrapper = {
|
|
257
259
|
[REACTIVE_ARRAY]: true,
|
|
258
260
|
at: (i: number) => data[i],
|
|
@@ -269,7 +271,7 @@ export default <T>(data: T[]) => {
|
|
|
269
271
|
return proxy;
|
|
270
272
|
},
|
|
271
273
|
map: <R>(
|
|
272
|
-
fn: (this:
|
|
274
|
+
fn: (this: ReactiveArray<typeof data>, value: T, i: number) => R,
|
|
273
275
|
i?: number,
|
|
274
276
|
n?: number
|
|
275
277
|
) => {
|
|
@@ -302,4 +304,4 @@ export default <T>(data: T[]) => {
|
|
|
302
304
|
|
|
303
305
|
return proxy;
|
|
304
306
|
};
|
|
305
|
-
export type {
|
|
307
|
+
export type { ReactiveArray };
|