@esportsplus/reactivity 0.16.4 → 0.16.6

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,11 +1,11 @@
1
1
  import { Prettify } from '@esportsplus/utilities';
2
- type ReactiveArray<T extends unknown[]> = Prettify<T & {
2
+ type ReactiveArray<T> = Prettify<T[] & {
3
3
  clear: () => void;
4
4
  dispose: () => void;
5
- dispatch: <K extends keyof Events<T[number]>, V>(event: K, value?: V) => void;
6
- map: <R>(fn: (this: ReactiveArray<T>, value: T[number], i: number) => R) => R[];
7
- on: <K extends keyof Events<T[number]>>(event: K, listener: Listener<Events<T[number]>[K]>) => void;
8
- once: <K extends keyof Events<T[number]>>(event: K, listener: Listener<Events<T[number]>[K]>) => void;
5
+ dispatch: <K extends keyof Events<T>, V>(event: K, value?: V) => void;
6
+ map: <R>(fn: (this: ReactiveArray<T>, value: T, i: number) => R) => R[];
7
+ on: <K extends keyof Events<T>>(event: K, listener: Listener<Events<T>[K]>) => void;
8
+ once: <K extends keyof Events<T>>(event: K, listener: Listener<Events<T>[K]>) => void;
9
9
  }>;
10
10
  type Events<T> = {
11
11
  clear: undefined;
@@ -58,10 +58,10 @@ declare const _default: <T>(data: T[]) => {
58
58
  sort: (compareFn?: ((a: T, b: T) => number) | undefined) => T[] & {
59
59
  clear: () => void;
60
60
  dispose: () => void;
61
- dispatch: <K extends keyof Events<T_1[number]>, V>(event: K, value?: V | undefined) => void;
61
+ dispatch: <K extends keyof Events<T_1>, V>(event: K, value?: V | undefined) => void;
62
62
  map: <R>(fn: (this: any, value: T, i: number) => R) => R[];
63
- on: <K extends keyof Events<T_1[number]>>(event: K, listener: Listener<Events<T>[K]>) => void;
64
- once: <K extends keyof Events<T_1[number]>>(event: K, listener: Listener<Events<T>[K]>) => void;
63
+ on: <K extends keyof Events<T_1>>(event: K, listener: Listener<Events<T>[K]>) => void;
64
+ once: <K extends keyof Events<T_1>>(event: K, listener: Listener<Events<T>[K]>) => void;
65
65
  };
66
66
  splice: {
67
67
  (start: number, deleteCount?: number): T[];
@@ -99,18 +99,18 @@ declare const _default: <T>(data: T[]) => {
99
99
  fill: (value: T, start?: number, end?: number) => T[] & {
100
100
  clear: () => void;
101
101
  dispose: () => void;
102
- dispatch: <K extends keyof Events<T_1[number]>, V>(event: K, value?: V | undefined) => void;
102
+ dispatch: <K extends keyof Events<T_1>, V>(event: K, value?: V | undefined) => void;
103
103
  map: <R>(fn: (this: any, value: T, i: number) => R) => R[];
104
- on: <K extends keyof Events<T_1[number]>>(event: K, listener: Listener<Events<T>[K]>) => void;
105
- once: <K extends keyof Events<T_1[number]>>(event: K, listener: Listener<Events<T>[K]>) => void;
104
+ on: <K extends keyof Events<T_1>>(event: K, listener: Listener<Events<T>[K]>) => void;
105
+ once: <K extends keyof Events<T_1>>(event: K, listener: Listener<Events<T>[K]>) => void;
106
106
  };
107
107
  copyWithin: (target: number, start: number, end?: number) => T[] & {
108
108
  clear: () => void;
109
109
  dispose: () => void;
110
- dispatch: <K extends keyof Events<T_1[number]>, V>(event: K, value?: V | undefined) => void;
110
+ dispatch: <K extends keyof Events<T_1>, V>(event: K, value?: V | undefined) => void;
111
111
  map: <R>(fn: (this: any, value: T, i: number) => R) => R[];
112
- on: <K extends keyof Events<T_1[number]>>(event: K, listener: Listener<Events<T>[K]>) => void;
113
- once: <K extends keyof Events<T_1[number]>>(event: K, listener: Listener<Events<T>[K]>) => void;
112
+ on: <K extends keyof Events<T_1>>(event: K, listener: Listener<Events<T>[K]>) => void;
113
+ once: <K extends keyof Events<T_1>>(event: K, listener: Listener<Events<T>[K]>) => void;
114
114
  };
115
115
  entries: () => ArrayIterator<[number, T]>;
116
116
  keys: () => ArrayIterator<number>;
@@ -178,9 +178,9 @@ declare const _default: <T>(data: T[]) => {
178
178
  };
179
179
  clear: () => void;
180
180
  dispose: () => void;
181
- dispatch: <K extends keyof Events<T_1[number]>, V>(event: K, value?: V | undefined) => void;
182
- on: <K extends keyof Events<T_1[number]>>(event: K, listener: Listener<Events<T>[K]>) => void;
183
- once: <K extends keyof Events<T_1[number]>>(event: K, listener: Listener<Events<T>[K]>) => void;
181
+ dispatch: <K extends keyof Events<T_1>, V>(event: K, value?: V | undefined) => void;
182
+ on: <K extends keyof Events<T_1>>(event: K, listener: Listener<Events<T>[K]>) => void;
183
+ once: <K extends keyof Events<T_1>>(event: K, listener: Listener<Events<T>[K]>) => void;
184
184
  };
185
185
  export default _default;
186
186
  export type { ReactiveArray };
@@ -1,6 +1,6 @@
1
- import array from './array.js';
2
- import object from './object.js';
3
- type API<T> = T extends Record<PropertyKey, unknown> ? ReturnType<typeof object<T>> : T extends unknown[] ? ReturnType<typeof array<T>> : never;
1
+ import { ReactiveArray } from './array.js';
2
+ import { ReactiveObject } from './object.js';
3
+ type API<T> = T extends Record<PropertyKey, unknown> ? ReactiveObject<T> : T extends (infer U)[] ? ReactiveArray<U> : never;
4
4
  declare const _default: <T extends Record<PropertyKey, any> | unknown[]>(input: T extends {
5
5
  dispose: any;
6
6
  } ? {
package/build/types.d.ts CHANGED
@@ -15,9 +15,6 @@ interface Computed<T> {
15
15
  subsTail: Link | null;
16
16
  value: T;
17
17
  }
18
- type Infer<T> = T extends (...args: unknown[]) => Promise<infer R> ? R | undefined : T extends (...args: any[]) => infer R ? R : T extends (infer U)[] ? Infer<U>[] : T extends ReactiveObject<any> ? T : T extends Record<PropertyKey, unknown> ? {
19
- [K in keyof T]: T[K];
20
- } : T;
21
18
  interface Link {
22
19
  dep: Signal<unknown> | Computed<unknown>;
23
20
  sub: Computed<unknown>;
@@ -32,4 +29,4 @@ type Signal<T> = {
32
29
  subsTail: Link | null;
33
30
  value: T;
34
31
  };
35
- export type { Computed, Infer, Link, Signal, ReactiveArray, ReactiveObject };
32
+ export type { Computed, Link, Signal, ReactiveArray, ReactiveObject };
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.16.4",
15
+ "version": "0.16.6",
16
16
  "scripts": {
17
17
  "build": "tsc && tsc-alias",
18
18
  "-": "-"
@@ -3,14 +3,14 @@ import { REACTIVE_ARRAY } from '~/constants';
3
3
  import { isReactiveObject } from './object';
4
4
 
5
5
 
6
- type ReactiveArray<T extends unknown[]> = Prettify<
7
- T & {
6
+ type ReactiveArray<T> = Prettify<
7
+ T[] & {
8
8
  clear: () => void;
9
9
  dispose: () => void;
10
- dispatch: <K extends keyof Events<T[number]>, V>(event: K, value?: V) => void;
11
- map: <R>(fn: (this: ReactiveArray<T>, value: T[number], i: number) => R) => R[];
12
- on: <K extends keyof Events<T[number]>>(event: K, listener: Listener<Events<T[number]>[K]>) => void;
13
- once: <K extends keyof Events<T[number]>>(event: K, listener: Listener<Events<T[number]>[K]>) => void;
10
+ dispatch: <K extends keyof Events<T>, V>(event: K, value?: V) => void;
11
+ map: <R>(fn: (this: ReactiveArray<T>, value: T, i: number) => R) => R[];
12
+ on: <K extends keyof Events<T>>(event: K, listener: Listener<Events<T>[K]>) => void;
13
+ once: <K extends keyof Events<T>>(event: K, listener: Listener<Events<T>[K]>) => void;
14
14
  }
15
15
  >;
16
16
 
@@ -97,8 +97,8 @@ function dispose<T>(data: T[]) {
97
97
 
98
98
  function map<T, R>(
99
99
  data: T[],
100
- proxy: ReactiveArray<typeof data>,
101
- fn: (this: ReactiveArray<typeof data>, value: T, i: number) => R
100
+ proxy: ReactiveArray<T>,
101
+ fn: (this: ReactiveArray<T>, value: T, i: number) => R
102
102
  ) {
103
103
  let n = data.length,
104
104
  values: R[] = new Array(n);
@@ -242,7 +242,7 @@ export default <T>(data: T[]) => {
242
242
 
243
243
  return true;
244
244
  }
245
- }) as ReactiveArray<typeof data>,
245
+ }) as ReactiveArray<T>,
246
246
  wrapper = {
247
247
  [REACTIVE_ARRAY]: true,
248
248
  at: (i: number) => data[i],
@@ -258,7 +258,7 @@ export default <T>(data: T[]) => {
258
258
  dispose(data);
259
259
  return proxy;
260
260
  },
261
- map: <R>(fn: (this: ReactiveArray<typeof data>, value: T, i: number) => R) => {
261
+ map: <R>(fn: (this: ReactiveArray<T>, value: T, i: number) => R) => {
262
262
  return map(data, proxy, fn);
263
263
  },
264
264
  on: <K extends keyof Events<T>>(event: K, listener: Listener<Events<T>[K]>) => {
@@ -1,14 +1,14 @@
1
1
  import { isArray, isObject } from '@esportsplus/utilities';
2
2
  import { onCleanup, root } from '~/system';
3
- import array from './array';
4
- import object from './object';
3
+ import array, { ReactiveArray } from './array';
4
+ import object, { ReactiveObject } from './object';
5
5
 
6
6
 
7
7
  type API<T> =
8
8
  T extends Record<PropertyKey, unknown>
9
- ? ReturnType<typeof object<T>>
10
- : T extends unknown[]
11
- ? ReturnType<typeof array<T>>
9
+ ? ReactiveObject<T>
10
+ : T extends (infer U)[]
11
+ ? ReactiveArray<U>
12
12
  : never;
13
13
 
14
14
 
package/src/types.ts CHANGED
@@ -23,19 +23,6 @@ interface Computed<T> {
23
23
  value: T;
24
24
  }
25
25
 
26
- type Infer<T> =
27
- T extends (...args: unknown[]) => Promise<infer R>
28
- ? R | undefined
29
- : T extends (...args: any[]) => infer R
30
- ? R
31
- : T extends (infer U)[]
32
- ? Infer<U>[]
33
- : T extends ReactiveObject<any>
34
- ? T
35
- : T extends Record<PropertyKey, unknown>
36
- ? { [K in keyof T]: T[K] }
37
- : T;
38
-
39
26
  interface Link {
40
27
  dep: Signal<unknown> | Computed<unknown>;
41
28
  sub: Computed<unknown>;
@@ -55,7 +42,6 @@ type Signal<T> = {
55
42
 
56
43
  export type {
57
44
  Computed,
58
- Infer,
59
45
  Link,
60
46
  Signal,
61
47
  ReactiveArray, ReactiveObject