@esportsplus/reactivity 0.14.1 → 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.
@@ -1,10 +1,10 @@
1
1
  import { Prettify } from '@esportsplus/utilities';
2
2
  import { Infer } from '../types.js';
3
- type API<T extends unknown[]> = Prettify<Infer<T> & {
3
+ type ReactiveArray<T extends unknown[]> = Prettify<Infer<T> & {
4
4
  clear: () => void;
5
5
  dispose: () => void;
6
6
  dispatch: <K extends keyof Events<T>, V>(event: K, value?: V) => void;
7
- map: <R>(this: API<T>, fn: (this: API<T>, value: T, i: number) => R, i?: number, n?: number) => R[];
7
+ map: <R>(fn: (this: ReactiveArray<T>, value: T[number], i: number) => R, i?: number, n?: number) => R[];
8
8
  on: <K extends keyof Events<T>>(event: K, listener: Listener<Events<T>[K]>) => void;
9
9
  once: <K extends keyof Events<T>>(event: K, listener: Listener<Events<T>[K]>) => void;
10
10
  }>;
@@ -38,20 +38,150 @@ type Listener<V> = {
38
38
  once?: boolean;
39
39
  (value: V): void;
40
40
  };
41
- declare const _default: <T extends unknown[]>(data: T) => Infer<T> & {
42
- clear: () => void;
43
- dispose: () => void;
44
- dispatch: <K_1 extends keyof Events<T_2>, V>(event: K_1, value?: V | undefined) => void;
45
- map: <R>(this: any, fn: (this: any, value: T, i: number) => R, i?: number, n?: number) => R[];
46
- on: <K_1 extends keyof Events<T_2>>(event: K_1, listener: Listener<Events<T>[K_1]>) => void;
47
- once: <K_1 extends keyof Events<T_2>>(event: K_1, listener: Listener<Events<T>[K_1]>) => void;
48
- } extends infer T_1 ? { [K in keyof T_1]: (Infer<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
+ };
49
180
  clear: () => void;
50
181
  dispose: () => void;
51
- dispatch: <K_1 extends keyof Events<T_2>, V>(event: K_1, value?: V | undefined) => void;
52
- map: <R>(this: any, fn: (this: any, value: T, i: number) => R, i?: number, n?: number) => R[];
53
- on: <K_1 extends keyof Events<T_2>>(event: K_1, listener: Listener<Events<T>[K_1]>) => void;
54
- once: <K_1 extends keyof Events<T_2>>(event: K_1, listener: Listener<Events<T>[K_1]>) => void;
55
- })[K]; } : never;
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
+ };
56
186
  export default _default;
57
- export type { API as ReactiveArray };
187
+ export type { ReactiveArray };
package/package.json CHANGED
@@ -12,7 +12,7 @@
12
12
  "private": false,
13
13
  "type": "module",
14
14
  "types": "build/index.d.ts",
15
- "version": "0.14.1",
15
+ "version": "0.14.2",
16
16
  "scripts": {
17
17
  "build": "tsc && tsc-alias",
18
18
  "-": "-"
@@ -4,12 +4,12 @@ import { Infer } from '~/types';
4
4
  import { isReactiveObject } from './object';
5
5
 
6
6
 
7
- type API<T extends unknown[]> = Prettify<
7
+ type ReactiveArray<T extends unknown[]> = Prettify<
8
8
  Infer<T> & {
9
9
  clear: () => void;
10
10
  dispose: () => void;
11
11
  dispatch: <K extends keyof Events<T>, V>(event: K, value?: V) => void;
12
- map: <R>(this: API<T>, fn: (this: API<T>, value: T, i: number) => R, i?: number, n?: number) => R[];
12
+ map: <R>(fn: (this: ReactiveArray<T>, value: T[number], i: number) => R, i?: number, n?: number) => R[];
13
13
  on: <K extends keyof Events<T>>(event: K, listener: Listener<Events<T>[K]>) => void;
14
14
  once: <K extends keyof Events<T>>(event: K, listener: Listener<Events<T>[K]>) => void;
15
15
  }
@@ -96,10 +96,10 @@ function dispose<T>(data: T[]) {
96
96
  }
97
97
  }
98
98
 
99
- function map<T extends unknown[], R>(
100
- data: T,
101
- proxy: API<T>,
102
- fn: (this: API<T>, value: T[number], i: number) => R,
99
+ function map<T, R>(
100
+ data: T[],
101
+ proxy: ReactiveArray<typeof data>,
102
+ fn: (this: ReactiveArray<typeof data>, value: T, i: number) => R,
103
103
  i?: number,
104
104
  n?: number
105
105
  ) {
@@ -186,12 +186,12 @@ function shift<T>(data: T[], listeners: Listeners) {
186
186
  return item;
187
187
  }
188
188
 
189
- function sort<T extends unknown[]>(data: T, listeners: Listeners, fn: (a: T[number], b: T[number]) => number) {
189
+ function sort<T>(data: T[], listeners: Listeners, fn: (a: T, b: T) => number) {
190
190
  data.sort((a, b) => fn(a, b));
191
191
  dispatch(listeners, 'sort');
192
192
  }
193
193
 
194
- function splice<T extends unknown[]>(data: T, listeners: Listeners, start: number, deleteCount: number = data.length, items: T[] = []) {
194
+ function splice<T>(data: T[], listeners: Listeners, start: number, deleteCount: number = data.length, items: T[] = []) {
195
195
  let removed = data.splice(start, deleteCount, ...items);
196
196
 
197
197
  if (items.length > 0 || removed.length > 0) {
@@ -218,7 +218,7 @@ function unshift<T>(data: T[], listeners: Listeners, items: T[]) {
218
218
  }
219
219
 
220
220
 
221
- export default <T extends unknown[]>(data: T) => {
221
+ export default <T>(data: T[]) => {
222
222
  let listeners: Listeners = {},
223
223
  proxy = new Proxy({}, {
224
224
  get(_, key: any) {
@@ -254,7 +254,7 @@ export default <T extends unknown[]>(data: T) => {
254
254
 
255
255
  return true;
256
256
  }
257
- }) as API<T>,
257
+ }) as ReactiveArray<typeof data>,
258
258
  wrapper = {
259
259
  [REACTIVE_ARRAY]: true,
260
260
  at: (i: number) => data[i],
@@ -271,7 +271,7 @@ export default <T extends unknown[]>(data: T) => {
271
271
  return proxy;
272
272
  },
273
273
  map: <R>(
274
- fn: (this: API<T>, value: T[number], i: number) => R,
274
+ fn: (this: ReactiveArray<typeof data>, value: T, i: number) => R,
275
275
  i?: number,
276
276
  n?: number
277
277
  ) => {
@@ -292,7 +292,7 @@ export default <T extends unknown[]>(data: T) => {
292
292
  return proxy;
293
293
  },
294
294
  shift: () => shift(data, listeners),
295
- sort: (fn: (a: T[number], b: T[number]) => number) => {
295
+ sort: (fn: (a: T, b: T) => number) => {
296
296
  sort(data, listeners, fn);
297
297
  return proxy;
298
298
  },
@@ -304,4 +304,4 @@ export default <T extends unknown[]>(data: T) => {
304
304
 
305
305
  return proxy;
306
306
  };
307
- export type { API as ReactiveArray };
307
+ export type { ReactiveArray };