@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.
@@ -1,6 +1,5 @@
1
1
  import { Prettify } from '@esportsplus/utilities';
2
- import { Infer } from '../types.js';
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]: Infer<T>;
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: () => Infer<T> | undefined;
50
- push: (...items: Infer<T>[]) => number;
48
+ pop: () => T | undefined;
49
+ push: (...items: T[]) => number;
51
50
  concat: {
52
- (...items: ConcatArray<Infer<T>>[]): Infer<T>[];
53
- (...items: (Infer<T> | ConcatArray<Infer<T>>)[]): Infer<T>[];
51
+ (...items: ConcatArray<T>[]): T[];
52
+ (...items: (T | ConcatArray<T>)[]): T[];
54
53
  };
55
54
  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>[] & {
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): Infer<T>[];
69
- (start: number, deleteCount: number, ...items: Infer<T>[]): Infer<T>[];
67
+ (start: number, deleteCount?: number): T[];
68
+ (start: number, deleteCount: number, ...items: T[]): T[];
70
69
  };
71
- unshift: (...items: Infer<T>[]) => number;
72
- indexOf: (searchElement: Infer<T>, fromIndex?: number) => number;
73
- lastIndexOf: (searchElement: Infer<T>, fromIndex?: number) => number;
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 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;
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: 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) => R[]);
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 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>[];
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: 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;
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: 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;
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 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;
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: Infer<T>, index: number, obj: Infer<T>[]) => unknown, thisArg?: any) => number;
100
- fill: (value: Infer<T>, start?: number, end?: number) => Infer<T>[] & {
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) => Infer<T>[] & {
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, Infer<T>]>;
115
+ entries: () => ArrayIterator<[number, T]>;
117
116
  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[];
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) => Infer<T> | undefined;
121
+ at: (index: number) => T | undefined;
123
122
  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;
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: 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>[];
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: Infer<T>[]): Infer<T>[];
132
- (start: number, deleteCount?: number): Infer<T>[];
130
+ (start: number, deleteCount: number, ...items: T[]): T[];
131
+ (start: number, deleteCount?: number): T[];
133
132
  };
134
- with: (index: number, value: Infer<T>) => Infer<T>[];
135
- [Symbol.iterator]: () => ArrayIterator<Infer<T>>;
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
@@ -12,7 +12,7 @@
12
12
  "private": false,
13
13
  "type": "module",
14
14
  "types": "build/index.d.ts",
15
- "version": "0.16.3",
15
+ "version": "0.16.4",
16
16
  "scripts": {
17
17
  "build": "tsc && tsc-alias",
18
18
  "-": "-"
@@ -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
- Infer<T> & {
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;
@@ -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, Infer, Signal } from '~/types';
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;