@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.
@@ -1,12 +1,13 @@
1
+ import { Prettify } from '@esportsplus/utilities';
1
2
  import { Infer } from '../types.js';
2
- type API<T> = Infer<T[]> & {
3
+ type ReactiveArray<T extends unknown[]> = Prettify<Infer<T> & {
3
4
  clear: () => void;
4
5
  dispose: () => void;
5
- dispatch: <T, K extends keyof Events<T>, V>(event: K, value?: V) => void;
6
- map: <T, R>(this: API<T>, fn: (this: API<T>, value: T, i: number) => R, i?: number, n?: number) => R[];
7
- on: <T, K extends keyof Events<T>>(event: K, listener: Listener<Events<T>[K]>) => void;
8
- once: <T, K extends keyof Events<T>>(event: K, listener: Listener<Events<T>[K]>) => void;
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[]) => API<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 { 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.0",
15
+ "version": "0.14.2",
16
16
  "scripts": {
17
17
  "build": "tsc && tsc-alias",
18
18
  "-": "-"
@@ -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 API<T> = Infer<T[]> & {
8
- clear: () => void;
9
- dispose: () => void;
10
- dispatch: <T, K extends keyof Events<T>, V>(event: K, value?: V) => void;
11
- map: <T, R>(this: API<T>, fn: (this: API<T>, value: T, i: number) => R, i?: number, n?: number) => R[];
12
- on: <T, K extends keyof Events<T>>(event: K, listener: Listener<Events<T>[K]>) => void;
13
- once: <T, K extends keyof Events<T>>(event: K, listener: Listener<Events<T>[K]>) => void;
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: API<T>,
100
- fn: (this: API<T>, value: T, i: number) => R,
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 API<T>,
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: API<T>, value: T, i: number) => R,
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 { API as ReactiveArray };
307
+ export type { ReactiveArray };