@akanjs/store 0.0.40 → 0.0.42
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/index.d.ts +1 -9
- package/index.js +2185 -21
- package/package.json +12 -2
- package/src/index.d.ts +2 -9
- package/src/storeDecorators.d.ts +32 -295
- package/src/types.d.ts +1 -3
- package/src/index.js +0 -23
- package/src/storeDecorators.js +0 -1244
- package/src/types.js +0 -15
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@akanjs/store",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.42",
|
|
4
4
|
"type": "commonjs",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -14,5 +14,15 @@
|
|
|
14
14
|
"engines": {
|
|
15
15
|
"node": ">=22"
|
|
16
16
|
},
|
|
17
|
-
"dependencies": {
|
|
17
|
+
"dependencies": {
|
|
18
|
+
"@urql/core": "^5.1.0",
|
|
19
|
+
"dayjs": "^1.11.13",
|
|
20
|
+
"immer": "^10.1.1",
|
|
21
|
+
"next": "^15.3.2",
|
|
22
|
+
"pluralize": "^8.0.0",
|
|
23
|
+
"react": "^18.3.1",
|
|
24
|
+
"reflect-metadata": "^0.2.2",
|
|
25
|
+
"socket.io-client": "^4.8.1",
|
|
26
|
+
"zustand": "^5.0.2"
|
|
27
|
+
}
|
|
18
28
|
}
|
package/src/index.d.ts
CHANGED
|
@@ -1,9 +1,2 @@
|
|
|
1
|
-
export
|
|
2
|
-
export
|
|
3
|
-
import 'dayjs';
|
|
4
|
-
import 'fs';
|
|
5
|
-
import 'stream';
|
|
6
|
-
import '@urql/core';
|
|
7
|
-
import 'mongoose';
|
|
8
|
-
import 'react';
|
|
9
|
-
import 'zustand';
|
|
1
|
+
export * from "./types";
|
|
2
|
+
export * from "./storeDecorators";
|
package/src/storeDecorators.d.ts
CHANGED
|
@@ -1,273 +1,11 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
declare class DataList<Light extends {
|
|
11
|
-
id: string;
|
|
12
|
-
}> {
|
|
13
|
-
#private;
|
|
14
|
-
length: number;
|
|
15
|
-
values: Light[];
|
|
16
|
-
constructor(data?: Light[] | DataList<Light>);
|
|
17
|
-
indexOf(id: string): number;
|
|
18
|
-
set(value: Light): this;
|
|
19
|
-
delete(id: string): this;
|
|
20
|
-
get(id: string): Light | undefined;
|
|
21
|
-
at(idx: number): Light | undefined;
|
|
22
|
-
pickAt(idx: number): Light;
|
|
23
|
-
pick(id: string): Light;
|
|
24
|
-
has(id: string): boolean;
|
|
25
|
-
find(fn: (value: Light, idx: number) => boolean): Light | undefined;
|
|
26
|
-
findIndex(fn: (value: Light, idx: number) => boolean): number;
|
|
27
|
-
some(fn: (value: Light, idx: number) => boolean): boolean;
|
|
28
|
-
every(fn: (value: Light, idx: number) => boolean): boolean;
|
|
29
|
-
forEach(fn: (value: Light, idx: number) => void): void;
|
|
30
|
-
map<T>(fn: (value: Light, idx: number) => T): T[];
|
|
31
|
-
flatMap<T>(fn: (value: Light, idx: number, array: Light[]) => T | readonly T[]): T[];
|
|
32
|
-
sort(fn: (a: Light, b: Light) => number): DataList<Light>;
|
|
33
|
-
filter(fn: (value: Light, idx: number) => boolean): DataList<Light>;
|
|
34
|
-
reduce<T>(fn: (acc: T, value: Light, idx: number) => T, initialValue: T): T;
|
|
35
|
-
slice(start: number, end?: number): DataList<Light>;
|
|
36
|
-
save(): DataList<Light>;
|
|
37
|
-
[Symbol.iterator](): ArrayIterator<Light>;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
type Type<T = any> = new (...args: any[]) => T;
|
|
41
|
-
|
|
42
|
-
declare class BaseObject {
|
|
43
|
-
id: string;
|
|
44
|
-
createdAt: Dayjs;
|
|
45
|
-
updatedAt: Dayjs;
|
|
46
|
-
removedAt: Dayjs | null;
|
|
47
|
-
}
|
|
48
|
-
declare class Upload {
|
|
49
|
-
__Scalar__: "upload";
|
|
50
|
-
filename: string;
|
|
51
|
-
mimetype: string;
|
|
52
|
-
encoding: string;
|
|
53
|
-
createReadStream: () => ReadStream | Readable;
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
interface FetchPolicy<Returns = any> {
|
|
57
|
-
cache?: boolean | number | RequestPolicy;
|
|
58
|
-
crystalize?: boolean;
|
|
59
|
-
url?: string;
|
|
60
|
-
onError?: (error: string) => void;
|
|
61
|
-
token?: string;
|
|
62
|
-
partial?: string[];
|
|
63
|
-
transport?: "udp" | "websocket" | "graphql" | "restapi";
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
type Optional<T, K extends keyof T> = Pick<Partial<T>, K> & Omit<T, K>;
|
|
67
|
-
type OptionalKeys<T> = T extends {
|
|
68
|
-
[key: string]: any;
|
|
69
|
-
} ? {
|
|
70
|
-
[K in keyof T]-?: null extends T[K] ? K : never;
|
|
71
|
-
}[keyof T] : never;
|
|
72
|
-
type ObjectToId<O, D = Dayjs> = O extends BaseObject ? string : O extends BaseObject[] ? string[] : O extends Dayjs ? D : O extends {
|
|
73
|
-
[key: string]: any;
|
|
74
|
-
} ? DocumentModel<O> : O;
|
|
75
|
-
type SortOf<Filter> = keyof GetStateObject<Filter>;
|
|
76
|
-
type FilterType = Record<string, any>;
|
|
77
|
-
type DocumentModel<T, D = Dayjs> = T extends (infer S)[] ? DocumentModel<S>[] : T extends string ? T : T extends number ? T : T extends boolean ? T : T extends Dayjs ? T : T extends Map<infer K, infer V> ? Map<K, DocumentModel<V, D>> : Optional<{
|
|
78
|
-
[K in keyof GetStateObject<T>]: T[K] extends infer S ? S extends null ? undefined : ObjectToId<T[K], D> : never;
|
|
79
|
-
}, OptionalKeys<GetStateObject<T>>>;
|
|
80
|
-
type GetStateObject<T> = Omit<{
|
|
81
|
-
[K in keyof T as T[K] extends (...args: any) => any ? never : K]: T[K];
|
|
82
|
-
}, "prototype">;
|
|
83
|
-
interface ProtoFile {
|
|
84
|
-
id: string;
|
|
85
|
-
filename: string;
|
|
86
|
-
abstractData: string | null;
|
|
87
|
-
imageSize: [number, number];
|
|
88
|
-
progress: number | null;
|
|
89
|
-
url: string;
|
|
90
|
-
size: number;
|
|
91
|
-
status: string;
|
|
92
|
-
createdAt: Dayjs;
|
|
93
|
-
updatedAt: Dayjs;
|
|
94
|
-
removedAt: Dayjs | null;
|
|
95
|
-
mimetype: string;
|
|
96
|
-
encoding: string;
|
|
97
|
-
origin: string | null;
|
|
98
|
-
lastModifiedAt: Dayjs;
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
interface SliceMeta {
|
|
102
|
-
refName: string;
|
|
103
|
-
sliceName: string;
|
|
104
|
-
argLength: number;
|
|
105
|
-
defaultArgs: any[];
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
type PurifyFunc<I, M> = (self: DefaultOf<Pick<M, keyof I extends keyof M ? keyof I : never>>, isChild?: boolean) => DocumentModel<I> | null;
|
|
109
|
-
type CrystalizeFunc<M> = (self: {
|
|
110
|
-
[K in keyof M as M[K] extends (...args: any) => any ? never : K]: M[K];
|
|
111
|
-
}, isChild?: boolean) => M;
|
|
112
|
-
type FieldState<T> = T extends string ? T : T extends number ? T : T extends boolean ? T : T extends Dayjs ? T : T extends any[] ? T : T extends {
|
|
113
|
-
id: string;
|
|
114
|
-
} ? T | null : T;
|
|
115
|
-
type DefaultOf<S> = S extends infer T ? {
|
|
116
|
-
[K in keyof T]: FieldState<T[K]>;
|
|
117
|
-
} : never;
|
|
118
|
-
interface FetchInitForm<Input, Full, Filter extends FilterType> {
|
|
119
|
-
page?: number;
|
|
120
|
-
limit?: number;
|
|
121
|
-
sort?: SortOf<Filter> | symbol;
|
|
122
|
-
default?: Partial<DefaultOf<Input>>;
|
|
123
|
-
invalidate?: boolean;
|
|
124
|
-
insight?: boolean;
|
|
125
|
-
}
|
|
126
|
-
type ServerInit<T extends string, Light, Insight = any, QueryArgs = any[], Filter extends FilterType = any> = SliceMeta & {
|
|
127
|
-
[K in `${Uncapitalize<T>}ObjList`]: Light[];
|
|
128
|
-
} & {
|
|
129
|
-
[K in `${Uncapitalize<T>}ObjInsight`]: Insight;
|
|
130
|
-
} & {
|
|
131
|
-
[K in `pageOf${Capitalize<T>}`]: number;
|
|
132
|
-
} & {
|
|
133
|
-
[K in `lastPageOf${Capitalize<T>}`]: number;
|
|
134
|
-
} & {
|
|
135
|
-
[K in `limitOf${Capitalize<T>}`]: number;
|
|
136
|
-
} & {
|
|
137
|
-
[K in `queryArgsOf${Capitalize<T>}`]: QueryArgs;
|
|
138
|
-
} & {
|
|
139
|
-
[K in `sortOf${Capitalize<T>}`]: SortOf<Filter>;
|
|
140
|
-
} & {
|
|
141
|
-
[K in `${Uncapitalize<T>}InitAt`]: Date;
|
|
142
|
-
};
|
|
143
|
-
type ClientInit<T extends string, Light, Insight = any, QueryArgs = any[], Filter extends FilterType = any> = Promise<ServerInit<T, Light, Insight, QueryArgs, Filter>> | ServerInit<T, Light, Insight, QueryArgs, Filter>;
|
|
144
|
-
type ServerView<T extends string, M> = {
|
|
145
|
-
refName: T;
|
|
146
|
-
} & {
|
|
147
|
-
[K in `${Uncapitalize<T>}Obj`]: M;
|
|
148
|
-
} & {
|
|
149
|
-
[K in `${Uncapitalize<T>}ViewAt`]: Date;
|
|
150
|
-
};
|
|
151
|
-
type ClientView<T extends string, M> = Promise<ServerView<T, M>> | ServerView<T, M>;
|
|
152
|
-
type ServerEdit<T extends string, M> = {
|
|
153
|
-
refName: T;
|
|
154
|
-
} & {
|
|
155
|
-
[K in `${Uncapitalize<T>}Obj`]: M;
|
|
156
|
-
} & {
|
|
157
|
-
[K in `${Uncapitalize<T>}ViewAt`]: Date;
|
|
158
|
-
};
|
|
159
|
-
type ClientEdit<T extends string, M> = Promise<ServerEdit<T, M>> | ServerEdit<T, M>;
|
|
160
|
-
type GqlScalarUtil<T extends string, M, I = M> = {
|
|
161
|
-
[K in `default${Capitalize<T>}`]: DefaultOf<M>;
|
|
162
|
-
} & {
|
|
163
|
-
[K in `purify${Capitalize<T>}`]: PurifyFunc<DocumentModel<I>, M>;
|
|
164
|
-
} & {
|
|
165
|
-
[K in `crystalize${Capitalize<T>}`]: CrystalizeFunc<M>;
|
|
166
|
-
};
|
|
167
|
-
type FilterSkipLimitSort<Args, Filter> = Args extends [
|
|
168
|
-
...args: infer QueryArgs,
|
|
169
|
-
skip: number | null,
|
|
170
|
-
limit: number | null,
|
|
171
|
-
sort: string | null
|
|
172
|
-
] ? QueryArgs : never;
|
|
173
|
-
type FilterListArgs<Args, Filter> = FilterOutInternalArgs<FilterSkipLimitSort<FilterOutInternalArgs<Args>, Filter>>;
|
|
174
|
-
type FilterStateArgs<Args, Filter> = FilterSkipLimitSort<FilterOutInternalArgs<Args>, Filter>;
|
|
175
|
-
type DbGraphQL<T extends string, Input, Full, Light extends {
|
|
176
|
-
id: string;
|
|
177
|
-
}, Insight, Filter extends FilterType, Fetch, Signal> = {
|
|
178
|
-
refName: string;
|
|
179
|
-
slices: SliceMeta[];
|
|
180
|
-
} & GetWsMessageOf<Signal> & GetWsPubsubOf<Signal> & GqlScalarUtil<T, Full> & {
|
|
181
|
-
[K in `lightCrystalize${Capitalize<T>}`]: CrystalizeFunc<Light>;
|
|
182
|
-
} & {
|
|
183
|
-
[K in `default${Capitalize<T>}Insight`]: Insight;
|
|
184
|
-
} & {
|
|
185
|
-
[K in `add${Capitalize<T>}Files`]: (fileList: FileList, parentId?: string, option?: FetchPolicy) => Promise<ProtoFile[]>;
|
|
186
|
-
} & {
|
|
187
|
-
[K in `merge${Capitalize<T>}`]: (modelOrId: Full | string, data: Partial<DocumentModel<Input>>, option?: FetchPolicy) => Promise<Full>;
|
|
188
|
-
} & {
|
|
189
|
-
[K in `view${Capitalize<T>}`]: (id: string, option?: FetchPolicy) => Promise<{
|
|
190
|
-
[K in Uncapitalize<T>]: Full;
|
|
191
|
-
} & {
|
|
192
|
-
[K in `${Uncapitalize<T>}View`]: ServerView<T, Full>;
|
|
193
|
-
}>;
|
|
194
|
-
} & {
|
|
195
|
-
[K in `get${Capitalize<T>}View`]: (id: string, option?: FetchPolicy) => ClientView<T, Full>;
|
|
196
|
-
} & {
|
|
197
|
-
[K in `edit${Capitalize<T>}`]: (id: string, option?: FetchPolicy) => Promise<{
|
|
198
|
-
[K in Uncapitalize<T>]: Full;
|
|
199
|
-
} & {
|
|
200
|
-
[K in `${Uncapitalize<T>}Edit`]: ServerEdit<T, Full>;
|
|
201
|
-
}>;
|
|
202
|
-
} & {
|
|
203
|
-
[K in `get${Capitalize<T>}Edit`]: (id: string, option?: FetchPolicy) => ClientEdit<T, Full>;
|
|
204
|
-
} & Fetch & {
|
|
205
|
-
[K in `init${Capitalize<T>}`]: (query?: FilterQuery<DocumentModel<Full>>, option?: FetchPolicy & FetchInitForm<Input, Full, Filter>) => Promise<{
|
|
206
|
-
[K in `${Uncapitalize<T>}Init`]: ServerInit<T, Light, Insight, [query?: FilterQuery<DocumentModel<Full>>], Filter>;
|
|
207
|
-
} & {
|
|
208
|
-
[K in `${Uncapitalize<T>}List`]: DataList<Light>;
|
|
209
|
-
} & {
|
|
210
|
-
[K in `${Uncapitalize<T>}Insight`]: Insight;
|
|
211
|
-
}>;
|
|
212
|
-
} & {
|
|
213
|
-
[K in `get${Capitalize<T>}Init`]: (query?: FilterQuery<DocumentModel<Full>>, option?: FetchPolicy & FetchInitForm<Input, Full, Filter>) => ClientInit<T, Light, Insight, [query?: FilterQuery<DocumentModel<Full>>], Filter>;
|
|
214
|
-
} & {
|
|
215
|
-
[K in keyof Signal as K extends `${T}List${infer Suffix}` ? `init${Capitalize<T>}${Suffix}` : never]: K extends `${T}List${infer Suffix}` ? Signal[K] extends (...args: infer Args) => Promise<Full[]> ? (...args: [
|
|
216
|
-
...queryArgs: FilterListArgs<Args, Filter>,
|
|
217
|
-
option?: FetchPolicy & FetchInitForm<Input, Full, Filter>
|
|
218
|
-
]) => Promise<{
|
|
219
|
-
[K in `${Uncapitalize<T>}Init${Suffix}`]: ServerInit<T, Light, Insight, FilterListArgs<Args, Filter>, Filter>;
|
|
220
|
-
} & {
|
|
221
|
-
[K in `${Uncapitalize<T>}List${Suffix}`]: DataList<Light>;
|
|
222
|
-
} & {
|
|
223
|
-
[K in `${Uncapitalize<T>}Insight${Suffix}`]: Insight;
|
|
224
|
-
}> : never : never;
|
|
225
|
-
} & {
|
|
226
|
-
[K in keyof Signal as K extends `${T}List${infer Suffix}` ? `get${Capitalize<T>}Init${Suffix}` : never]: K extends `${T}List${infer Suffix}` ? Signal[K] extends (...args: infer Args) => Promise<Full[]> ? (...args: [
|
|
227
|
-
...queryArgs: FilterListArgs<Args, Filter>,
|
|
228
|
-
option?: FetchPolicy & FetchInitForm<Input, Full, Filter>
|
|
229
|
-
]) => ClientInit<T, Light, Insight, FilterListArgs<Args, Filter>, Filter> : never : never;
|
|
230
|
-
};
|
|
231
|
-
type ConvertArg<T> = T extends Upload[] ? FileList : T;
|
|
232
|
-
type IsInternalArgs<T> = T extends {
|
|
233
|
-
__InternalArg__: any;
|
|
234
|
-
} ? true : T extends {
|
|
235
|
-
__InternalArg__: any;
|
|
236
|
-
} | null ? true : false;
|
|
237
|
-
type FilterOutInternalArgs<T> = T extends [arg: infer Head, ...args: infer Rest] ? IsInternalArgs<Head> extends true ? FilterOutInternalArgs<Rest> : Head extends undefined ? [arg?: ConvertArg<Head> | undefined, ...args: FilterOutInternalArgs<Rest>] : Head extends null ? [arg?: ConvertArg<Head> | undefined, ...args: FilterOutInternalArgs<Rest>] : [
|
|
238
|
-
arg: ConvertArg<Head>,
|
|
239
|
-
...args: FilterOutInternalArgs<Rest>
|
|
240
|
-
] : [];
|
|
241
|
-
type FunctionToTuple<F extends (...args: any) => any> = F extends (...args: infer A) => any ? A : never;
|
|
242
|
-
type TupleToFunction<T extends any[], R> = (...args: [...args: T, option?: FetchPolicy]) => R;
|
|
243
|
-
type RemoveInternalArgs<F extends (...args: any) => any, Returns = ReturnType<F>> = TupleToFunction<FilterOutInternalArgs<FunctionToTuple<F>>, Returns>;
|
|
244
|
-
type ApplyVoidReturn<T> = T extends (...args: infer Args) => any ? (...args: Args) => void : never;
|
|
245
|
-
type GetWsMessageOf<Sig> = {
|
|
246
|
-
[K in keyof Sig as Sig[K] extends (...args: any) => Promise<{
|
|
247
|
-
__Returns__: "Emit";
|
|
248
|
-
}> ? K : Sig[K] extends (...args: any) => {
|
|
249
|
-
__Returns__: "Emit";
|
|
250
|
-
} ? K : never]: Sig[K] extends (...args: any) => any ? ApplyVoidReturn<RemoveInternalArgs<Sig[K], void>> : never;
|
|
251
|
-
} & {
|
|
252
|
-
[K in keyof Sig as K extends string ? Sig[K] extends (...args: any) => Promise<{
|
|
253
|
-
__Returns__: "Emit";
|
|
254
|
-
}> | {
|
|
255
|
-
__Returns__: "Emit";
|
|
256
|
-
} ? `listen${Capitalize<K>}` : never : never]: Sig[K] extends (...args: any) => any ? (handleEvent: (data: Awaited<ReturnType<Sig[K]>>) => any, options?: FetchPolicy) => () => void : never;
|
|
257
|
-
};
|
|
258
|
-
type GetWsPubsubOf<Sig> = {
|
|
259
|
-
[K in keyof Sig as K extends string ? Sig[K] extends (...args: any) => Promise<{
|
|
260
|
-
__Returns__: "Subscribe";
|
|
261
|
-
}> ? `subscribe${Capitalize<K>}` : Sig[K] extends (...args: any) => {
|
|
262
|
-
__Returns__: "Subscribe";
|
|
263
|
-
} ? `subscribe${Capitalize<K>}` : never : never]: Sig[K] extends (...args: infer Args) => Promise<{
|
|
264
|
-
__Returns__: "Subscribe";
|
|
265
|
-
} & infer Return> ? (...args: [...args: FilterOutInternalArgs<Args>, onData: (data: Return) => void, fetchPolicy?: FetchPolicy]) => () => void : Sig[K] extends (...args: infer Args) => {
|
|
266
|
-
__Returns__: "Subscribe";
|
|
267
|
-
} & infer Return ? (...args: [...args: FilterOutInternalArgs<Args>, onData: (data: Return) => void, fetchPolicy?: FetchPolicy]) => () => void : never;
|
|
268
|
-
};
|
|
269
|
-
|
|
270
|
-
declare const st: WithSelectors<any>;
|
|
1
|
+
import { DataList, type Dayjs, Type } from "@akanjs/base";
|
|
2
|
+
import { type FetchPolicy } from "@akanjs/common";
|
|
3
|
+
import { DocumentModel, type FilterType, type GetStateObject, ProtoFile, QueryOf, type SortOf } from "@akanjs/constant";
|
|
4
|
+
import { DbGraphQL, DefaultOf, FetchInitForm, FieldState, FilterListArgs, FilterStateArgs, SliceMeta } from "@akanjs/signal";
|
|
5
|
+
import { MutableRefObject } from "react";
|
|
6
|
+
import { Mutate, StoreApi } from "zustand";
|
|
7
|
+
import type { Submit } from "./types";
|
|
8
|
+
export declare const st: WithSelectors<any>;
|
|
271
9
|
type BaseState<T extends string, Full> = {
|
|
272
10
|
[K in Uncapitalize<T>]: Full | null;
|
|
273
11
|
} & {
|
|
@@ -318,10 +56,10 @@ type MergeFields<T> = {
|
|
|
318
56
|
type UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends (k: infer I) => void ? I : never;
|
|
319
57
|
type DefaultState<T extends string, Full, Light extends {
|
|
320
58
|
id: string;
|
|
321
|
-
}, Insight, Filter extends FilterType, Signal> = BaseState<T, Full> & SliceState<T, Full, Light, [query:
|
|
59
|
+
}, Insight, Filter extends FilterType, Signal> = BaseState<T, Full> & SliceState<T, Full, Light, [query: QueryOf<DocumentModel<Full>>], Insight, Filter> & UnionToIntersection<MergeFields<{
|
|
322
60
|
[K in keyof Signal as K extends `${T}List${infer Suffix}` ? K : never]: K extends `${T}List${infer Suffix}` ? Signal[K] extends (...args: infer Args) => Promise<Full[]> ? SliceState<T, Full, Light, FilterStateArgs<Args, Filter>, Insight, Filter, Suffix> : never : never;
|
|
323
61
|
}>>;
|
|
324
|
-
declare const createState: <T extends string, Input, Full, Light extends {
|
|
62
|
+
export declare const createState: <T extends string, Input, Full, Light extends {
|
|
325
63
|
id: string;
|
|
326
64
|
}, Insight, Filter extends FilterType, Fetch, Signal>(gql: DbGraphQL<T, Input, Full, Light, Insight, Filter, Fetch, Signal>) => DefaultState<T, Full, Light, Insight, Filter, Signal>;
|
|
327
65
|
type GetState<T, K> = K extends keyof T ? T[K] : never;
|
|
@@ -330,18 +68,18 @@ type PickFunc<T, F extends keyof T = keyof T> = (...fields: F[]) => {
|
|
|
330
68
|
[K in (typeof fields)[number]]: Exclude<T[K], null | undefined | "loading">;
|
|
331
69
|
};
|
|
332
70
|
type MakeState<Maker> = Maker extends (...args: any) => infer S ? S : Maker;
|
|
333
|
-
interface SetGet<State> {
|
|
71
|
+
export interface SetGet<State> {
|
|
334
72
|
set: (state: Partial<MakeState<State>> | ((state: MakeState<State>) => any)) => void;
|
|
335
73
|
get: GetState<Mutate<StoreApi<MakeState<State>>, []>, "getState">;
|
|
336
74
|
pick: PickState<GetState<Mutate<StoreApi<MakeState<State>>, []>, "getState">>;
|
|
337
75
|
}
|
|
338
|
-
interface SetPick<State> {
|
|
76
|
+
export interface SetPick<State> {
|
|
339
77
|
set: (state: Partial<MakeState<State>> | ((state: MakeState<State>) => any)) => void;
|
|
340
78
|
pick: PickState<GetState<Mutate<StoreApi<MakeState<State>>, []>, "getState">>;
|
|
341
79
|
}
|
|
342
|
-
type State<StateMaker, Actions = () => Record<string, never>> = (StateMaker extends (...args: any) => infer R ? R : StateMaker) & (Actions extends (...args: any) => infer R ? R : never);
|
|
343
|
-
type Get<State, Actions> = MakeState<State> & MakeState<Actions>;
|
|
344
|
-
interface CreateOption<Full extends {
|
|
80
|
+
export type State<StateMaker, Actions = () => Record<string, never>> = (StateMaker extends (...args: any) => infer R ? R : StateMaker) & (Actions extends (...args: any) => infer R ? R : never);
|
|
81
|
+
export type Get<State, Actions> = MakeState<State> & MakeState<Actions>;
|
|
82
|
+
export interface CreateOption<Full extends {
|
|
345
83
|
id: string;
|
|
346
84
|
}> {
|
|
347
85
|
idx?: number;
|
|
@@ -351,7 +89,7 @@ interface CreateOption<Full extends {
|
|
|
351
89
|
onError?: (e: string) => void;
|
|
352
90
|
onSuccess?: (model: Full) => void | Promise<void>;
|
|
353
91
|
}
|
|
354
|
-
interface NewOption {
|
|
92
|
+
export interface NewOption {
|
|
355
93
|
modal?: string;
|
|
356
94
|
setDefault?: boolean;
|
|
357
95
|
sliceName?: string;
|
|
@@ -418,10 +156,10 @@ type SliceAction<T extends string, Input, Full extends {
|
|
|
418
156
|
};
|
|
419
157
|
type DefaultActions<T extends string, Input, Full extends {
|
|
420
158
|
id: string;
|
|
421
|
-
}, Light, Filter extends FilterType, Fetch, Signal> = BaseAction<T, Input, Full, Light> & FormSetter<Full, T> & SliceAction<T, Input, Full, Light, [query:
|
|
159
|
+
}, Light, Filter extends FilterType, Fetch, Signal> = BaseAction<T, Input, Full, Light> & FormSetter<Full, T> & SliceAction<T, Input, Full, Light, [query: QueryOf<DocumentModel<Full>>], Filter> & UnionToIntersection<MergeFields<{
|
|
422
160
|
[K in keyof Signal as K extends `${T}List${infer Suffix}` ? K : never]: K extends `${T}List${infer Suffix}` ? Signal[K] extends (...args: infer Args) => Promise<Full[]> ? SliceAction<T, Input, Full, Light, FilterListArgs<Args, Filter>, Filter, Suffix> : never : never;
|
|
423
161
|
}>>;
|
|
424
|
-
declare const createActions: <T extends string, Input, Full extends {
|
|
162
|
+
export declare const createActions: <T extends string, Input, Full extends {
|
|
425
163
|
id: string;
|
|
426
164
|
}, Light extends {
|
|
427
165
|
id: string;
|
|
@@ -447,21 +185,21 @@ type FormSetter<Full, S extends string> = {
|
|
|
447
185
|
} & {
|
|
448
186
|
[K in `writeOn${Capitalize<S>}`]: (path: string | (string | number)[], value: any) => void;
|
|
449
187
|
};
|
|
450
|
-
declare const stateOf: <T extends string, Input, Full extends {
|
|
188
|
+
export declare const stateOf: <T extends string, Input, Full extends {
|
|
451
189
|
id: string;
|
|
452
190
|
}, Light extends {
|
|
453
191
|
id: string;
|
|
454
192
|
}, Insight, Filter extends FilterType, Fetch, Signal, State extends {
|
|
455
193
|
[key: string]: any;
|
|
456
194
|
}>(gql: DbGraphQL<T, Input, Full, Light, Insight, Filter, Fetch, Signal>, state: State) => Type<{
|
|
457
|
-
readonly get: () => State & { [K in Uncapitalize<T>]: Full | null; } & { [K_1 in `${Uncapitalize<T>}Loading`]: string | boolean; } & { [K_2 in `${Uncapitalize<T>}Form`]: DefaultOf<Full>; } & { [K_3 in `${Uncapitalize<T>}FormLoading`]: string | boolean; } & { [K_4 in `${Uncapitalize<T>}Submit`]: Submit; } & { [K_5 in `${Uncapitalize<T>}ViewAt`]: Date; } & { [K_6 in `${Uncapitalize<T>}Modal`]: string | null; } & { [K_7 in `${Uncapitalize<T>}Operation`]: "error" | "reset" | "sleep" | "idle" | "loading"; } & { [K_8 in `default${Capitalize<T>}`]: DefaultOf<Full>; } & { [K_9 in `${Uncapitalize<T>}List`]: DataList<Light>; } & { [K_10 in `${Uncapitalize<T>}ListLoading`]: boolean; } & { [K_11 in `${Uncapitalize<T>}InitList`]: DataList<Light>; } & { [K_12 in `${Uncapitalize<T>}InitAt`]: Date; } & { [K_13 in `${Uncapitalize<T>}Selection`]: DataList<Light>; } & { [K_14 in `${Uncapitalize<T>}Insight`]: Insight; } & { [K_15 in `lastPageOf${Capitalize<T>}`]: number; } & { [K_16 in `pageOf${Capitalize<T>}`]: number; } & { [K_17 in `limitOf${Capitalize<T>}`]: number; } & { [K_18 in `queryArgsOf${Capitalize<T>}`]: [query:
|
|
458
|
-
readonly set: (state: Partial<MakeState<State & { [K in Uncapitalize<T>]: Full | null; } & { [K_1 in `${Uncapitalize<T>}Loading`]: string | boolean; } & { [K_2 in `${Uncapitalize<T>}Form`]: DefaultOf<Full>; } & { [K_3 in `${Uncapitalize<T>}FormLoading`]: string | boolean; } & { [K_4 in `${Uncapitalize<T>}Submit`]: Submit; } & { [K_5 in `${Uncapitalize<T>}ViewAt`]: Date; } & { [K_6 in `${Uncapitalize<T>}Modal`]: string | null; } & { [K_7 in `${Uncapitalize<T>}Operation`]: "error" | "reset" | "sleep" | "idle" | "loading"; } & { [K_8 in `default${Capitalize<T>}`]: DefaultOf<Full>; } & { [K_9 in `${Uncapitalize<T>}List`]: DataList<Light>; } & { [K_10 in `${Uncapitalize<T>}ListLoading`]: boolean; } & { [K_11 in `${Uncapitalize<T>}InitList`]: DataList<Light>; } & { [K_12 in `${Uncapitalize<T>}InitAt`]: Date; } & { [K_13 in `${Uncapitalize<T>}Selection`]: DataList<Light>; } & { [K_14 in `${Uncapitalize<T>}Insight`]: Insight; } & { [K_15 in `lastPageOf${Capitalize<T>}`]: number; } & { [K_16 in `pageOf${Capitalize<T>}`]: number; } & { [K_17 in `limitOf${Capitalize<T>}`]: number; } & { [K_18 in `queryArgsOf${Capitalize<T>}`]: [query:
|
|
459
|
-
readonly pick: PickState<GetState<Mutate<StoreApi<MakeState<State & { [K in Uncapitalize<T>]: Full | null; } & { [K_1 in `${Uncapitalize<T>}Loading`]: string | boolean; } & { [K_2 in `${Uncapitalize<T>}Form`]: DefaultOf<Full>; } & { [K_3 in `${Uncapitalize<T>}FormLoading`]: string | boolean; } & { [K_4 in `${Uncapitalize<T>}Submit`]: Submit; } & { [K_5 in `${Uncapitalize<T>}ViewAt`]: Date; } & { [K_6 in `${Uncapitalize<T>}Modal`]: string | null; } & { [K_7 in `${Uncapitalize<T>}Operation`]: "error" | "reset" | "sleep" | "idle" | "loading"; } & { [K_8 in `default${Capitalize<T>}`]: DefaultOf<Full>; } & { [K_9 in `${Uncapitalize<T>}List`]: DataList<Light>; } & { [K_10 in `${Uncapitalize<T>}ListLoading`]: boolean; } & { [K_11 in `${Uncapitalize<T>}InitList`]: DataList<Light>; } & { [K_12 in `${Uncapitalize<T>}InitAt`]: Date; } & { [K_13 in `${Uncapitalize<T>}Selection`]: DataList<Light>; } & { [K_14 in `${Uncapitalize<T>}Insight`]: Insight; } & { [K_15 in `lastPageOf${Capitalize<T>}`]: number; } & { [K_16 in `pageOf${Capitalize<T>}`]: number; } & { [K_17 in `limitOf${Capitalize<T>}`]: number; } & { [K_18 in `queryArgsOf${Capitalize<T>}`]: [query:
|
|
460
|
-
} & (State & { [K in Uncapitalize<T>]: Full | null; } & { [K_1 in `${Uncapitalize<T>}Loading`]: string | boolean; } & { [K_2 in `${Uncapitalize<T>}Form`]: DefaultOf<Full>; } & { [K_3 in `${Uncapitalize<T>}FormLoading`]: string | boolean; } & { [K_4 in `${Uncapitalize<T>}Submit`]: Submit; } & { [K_5 in `${Uncapitalize<T>}ViewAt`]: Date; } & { [K_6 in `${Uncapitalize<T>}Modal`]: string | null; } & { [K_7 in `${Uncapitalize<T>}Operation`]: "error" | "reset" | "sleep" | "idle" | "loading"; } & { [K_8 in `default${Capitalize<T>}`]: DefaultOf<Full>; } & { [K_9 in `${Uncapitalize<T>}List`]: DataList<Light>; } & { [K_10 in `${Uncapitalize<T>}ListLoading`]: boolean; } & { [K_11 in `${Uncapitalize<T>}InitList`]: DataList<Light>; } & { [K_12 in `${Uncapitalize<T>}InitAt`]: Date; } & { [K_13 in `${Uncapitalize<T>}Selection`]: DataList<Light>; } & { [K_14 in `${Uncapitalize<T>}Insight`]: Insight; } & { [K_15 in `lastPageOf${Capitalize<T>}`]: number; } & { [K_16 in `pageOf${Capitalize<T>}`]: number; } & { [K_17 in `limitOf${Capitalize<T>}`]: number; } & { [K_18 in `queryArgsOf${Capitalize<T>}`]: [query:
|
|
195
|
+
readonly get: () => State & { [K in Uncapitalize<T>]: Full | null; } & { [K_1 in `${Uncapitalize<T>}Loading`]: string | boolean; } & { [K_2 in `${Uncapitalize<T>}Form`]: DefaultOf<Full>; } & { [K_3 in `${Uncapitalize<T>}FormLoading`]: string | boolean; } & { [K_4 in `${Uncapitalize<T>}Submit`]: Submit; } & { [K_5 in `${Uncapitalize<T>}ViewAt`]: Date; } & { [K_6 in `${Uncapitalize<T>}Modal`]: string | null; } & { [K_7 in `${Uncapitalize<T>}Operation`]: "error" | "reset" | "sleep" | "idle" | "loading"; } & { [K_8 in `default${Capitalize<T>}`]: DefaultOf<Full>; } & { [K_9 in `${Uncapitalize<T>}List`]: DataList<Light>; } & { [K_10 in `${Uncapitalize<T>}ListLoading`]: boolean; } & { [K_11 in `${Uncapitalize<T>}InitList`]: DataList<Light>; } & { [K_12 in `${Uncapitalize<T>}InitAt`]: Date; } & { [K_13 in `${Uncapitalize<T>}Selection`]: DataList<Light>; } & { [K_14 in `${Uncapitalize<T>}Insight`]: Insight; } & { [K_15 in `lastPageOf${Capitalize<T>}`]: number; } & { [K_16 in `pageOf${Capitalize<T>}`]: number; } & { [K_17 in `limitOf${Capitalize<T>}`]: number; } & { [K_18 in `queryArgsOf${Capitalize<T>}`]: [query: QueryOf<DocumentModel<Full, Dayjs>>]; } & { [K_19 in `sortOf${Capitalize<T>}`]: Exclude<keyof { [K_20 in keyof Filter as Filter[K_20] extends (...args: any) => any ? never : K_20]: Filter[K_20]; }, "prototype">; } & UnionToIntersection<MergeFields<{ [K_21 in keyof Signal as K_21 extends `${T}List${infer Suffix}` ? K_21 : never]: K_21 extends `${T}List${infer Suffix_1}` ? Signal[K_21] extends (...args: infer Args) => Promise<Full[]> ? SliceState<T, Full, Light, import("@akanjs/signal").FilterOutInternalArgs<Args> extends infer T_1 ? T_1 extends import("@akanjs/signal").FilterOutInternalArgs<Args> ? T_1 extends [...args: infer QueryArgs, skip: number | null, limit: number | null, sort: string | null] ? QueryArgs : never : never : never, Insight, Filter, Suffix_1> : never : never; }>>;
|
|
196
|
+
readonly set: (state: Partial<MakeState<State & { [K in Uncapitalize<T>]: Full | null; } & { [K_1 in `${Uncapitalize<T>}Loading`]: string | boolean; } & { [K_2 in `${Uncapitalize<T>}Form`]: DefaultOf<Full>; } & { [K_3 in `${Uncapitalize<T>}FormLoading`]: string | boolean; } & { [K_4 in `${Uncapitalize<T>}Submit`]: Submit; } & { [K_5 in `${Uncapitalize<T>}ViewAt`]: Date; } & { [K_6 in `${Uncapitalize<T>}Modal`]: string | null; } & { [K_7 in `${Uncapitalize<T>}Operation`]: "error" | "reset" | "sleep" | "idle" | "loading"; } & { [K_8 in `default${Capitalize<T>}`]: DefaultOf<Full>; } & { [K_9 in `${Uncapitalize<T>}List`]: DataList<Light>; } & { [K_10 in `${Uncapitalize<T>}ListLoading`]: boolean; } & { [K_11 in `${Uncapitalize<T>}InitList`]: DataList<Light>; } & { [K_12 in `${Uncapitalize<T>}InitAt`]: Date; } & { [K_13 in `${Uncapitalize<T>}Selection`]: DataList<Light>; } & { [K_14 in `${Uncapitalize<T>}Insight`]: Insight; } & { [K_15 in `lastPageOf${Capitalize<T>}`]: number; } & { [K_16 in `pageOf${Capitalize<T>}`]: number; } & { [K_17 in `limitOf${Capitalize<T>}`]: number; } & { [K_18 in `queryArgsOf${Capitalize<T>}`]: [query: QueryOf<DocumentModel<Full, Dayjs>>]; } & { [K_19 in `sortOf${Capitalize<T>}`]: Exclude<keyof { [K_20 in keyof Filter as Filter[K_20] extends (...args: any) => any ? never : K_20]: Filter[K_20]; }, "prototype">; } & UnionToIntersection<MergeFields<{ [K_21 in keyof Signal as K_21 extends `${T}List${infer Suffix}` ? K_21 : never]: K_21 extends `${T}List${infer Suffix_1}` ? Signal[K_21] extends (...args: infer Args) => Promise<Full[]> ? SliceState<T, Full, Light, import("@akanjs/signal").FilterOutInternalArgs<Args> extends infer T_1 ? T_1 extends import("@akanjs/signal").FilterOutInternalArgs<Args> ? T_1 extends [...args: infer QueryArgs, skip: number | null, limit: number | null, sort: string | null] ? QueryArgs : never : never : never, Insight, Filter, Suffix_1> : never : never; }>>>> | ((state: MakeState<State & { [K in Uncapitalize<T>]: Full | null; } & { [K_1 in `${Uncapitalize<T>}Loading`]: string | boolean; } & { [K_2 in `${Uncapitalize<T>}Form`]: DefaultOf<Full>; } & { [K_3 in `${Uncapitalize<T>}FormLoading`]: string | boolean; } & { [K_4 in `${Uncapitalize<T>}Submit`]: Submit; } & { [K_5 in `${Uncapitalize<T>}ViewAt`]: Date; } & { [K_6 in `${Uncapitalize<T>}Modal`]: string | null; } & { [K_7 in `${Uncapitalize<T>}Operation`]: "error" | "reset" | "sleep" | "idle" | "loading"; } & { [K_8 in `default${Capitalize<T>}`]: DefaultOf<Full>; } & { [K_9 in `${Uncapitalize<T>}List`]: DataList<Light>; } & { [K_10 in `${Uncapitalize<T>}ListLoading`]: boolean; } & { [K_11 in `${Uncapitalize<T>}InitList`]: DataList<Light>; } & { [K_12 in `${Uncapitalize<T>}InitAt`]: Date; } & { [K_13 in `${Uncapitalize<T>}Selection`]: DataList<Light>; } & { [K_14 in `${Uncapitalize<T>}Insight`]: Insight; } & { [K_15 in `lastPageOf${Capitalize<T>}`]: number; } & { [K_16 in `pageOf${Capitalize<T>}`]: number; } & { [K_17 in `limitOf${Capitalize<T>}`]: number; } & { [K_18 in `queryArgsOf${Capitalize<T>}`]: [query: QueryOf<DocumentModel<Full, Dayjs>>]; } & { [K_19 in `sortOf${Capitalize<T>}`]: Exclude<keyof { [K_20 in keyof Filter as Filter[K_20] extends (...args: any) => any ? never : K_20]: Filter[K_20]; }, "prototype">; } & UnionToIntersection<MergeFields<{ [K_21 in keyof Signal as K_21 extends `${T}List${infer Suffix}` ? K_21 : never]: K_21 extends `${T}List${infer Suffix_1}` ? Signal[K_21] extends (...args: infer Args) => Promise<Full[]> ? SliceState<T, Full, Light, import("@akanjs/signal").FilterOutInternalArgs<Args> extends infer T_2 ? T_2 extends import("@akanjs/signal").FilterOutInternalArgs<Args> ? T_2 extends [...args: infer QueryArgs, skip: number | null, limit: number | null, sort: string | null] ? QueryArgs : never : never : never, Insight, Filter, Suffix_1> : never : never; }>>>) => any)) => void;
|
|
197
|
+
readonly pick: PickState<GetState<Mutate<StoreApi<MakeState<State & { [K in Uncapitalize<T>]: Full | null; } & { [K_1 in `${Uncapitalize<T>}Loading`]: string | boolean; } & { [K_2 in `${Uncapitalize<T>}Form`]: DefaultOf<Full>; } & { [K_3 in `${Uncapitalize<T>}FormLoading`]: string | boolean; } & { [K_4 in `${Uncapitalize<T>}Submit`]: Submit; } & { [K_5 in `${Uncapitalize<T>}ViewAt`]: Date; } & { [K_6 in `${Uncapitalize<T>}Modal`]: string | null; } & { [K_7 in `${Uncapitalize<T>}Operation`]: "error" | "reset" | "sleep" | "idle" | "loading"; } & { [K_8 in `default${Capitalize<T>}`]: DefaultOf<Full>; } & { [K_9 in `${Uncapitalize<T>}List`]: DataList<Light>; } & { [K_10 in `${Uncapitalize<T>}ListLoading`]: boolean; } & { [K_11 in `${Uncapitalize<T>}InitList`]: DataList<Light>; } & { [K_12 in `${Uncapitalize<T>}InitAt`]: Date; } & { [K_13 in `${Uncapitalize<T>}Selection`]: DataList<Light>; } & { [K_14 in `${Uncapitalize<T>}Insight`]: Insight; } & { [K_15 in `lastPageOf${Capitalize<T>}`]: number; } & { [K_16 in `pageOf${Capitalize<T>}`]: number; } & { [K_17 in `limitOf${Capitalize<T>}`]: number; } & { [K_18 in `queryArgsOf${Capitalize<T>}`]: [query: QueryOf<DocumentModel<Full, Dayjs>>]; } & { [K_19 in `sortOf${Capitalize<T>}`]: Exclude<keyof { [K_20 in keyof Filter as Filter[K_20] extends (...args: any) => any ? never : K_20]: Filter[K_20]; }, "prototype">; } & UnionToIntersection<MergeFields<{ [K_21 in keyof Signal as K_21 extends `${T}List${infer Suffix}` ? K_21 : never]: K_21 extends `${T}List${infer Suffix_1}` ? Signal[K_21] extends (...args: infer Args) => Promise<Full[]> ? SliceState<T, Full, Light, import("@akanjs/signal").FilterOutInternalArgs<Args> extends infer T_1 ? T_1 extends import("@akanjs/signal").FilterOutInternalArgs<Args> ? T_1 extends [...args: infer QueryArgs, skip: number | null, limit: number | null, sort: string | null] ? QueryArgs : never : never : never, Insight, Filter, Suffix_1> : never : never; }>>>>, []>, "getState">>;
|
|
198
|
+
} & (State & { [K in Uncapitalize<T>]: Full | null; } & { [K_1 in `${Uncapitalize<T>}Loading`]: string | boolean; } & { [K_2 in `${Uncapitalize<T>}Form`]: DefaultOf<Full>; } & { [K_3 in `${Uncapitalize<T>}FormLoading`]: string | boolean; } & { [K_4 in `${Uncapitalize<T>}Submit`]: Submit; } & { [K_5 in `${Uncapitalize<T>}ViewAt`]: Date; } & { [K_6 in `${Uncapitalize<T>}Modal`]: string | null; } & { [K_7 in `${Uncapitalize<T>}Operation`]: "error" | "reset" | "sleep" | "idle" | "loading"; } & { [K_8 in `default${Capitalize<T>}`]: DefaultOf<Full>; } & { [K_9 in `${Uncapitalize<T>}List`]: DataList<Light>; } & { [K_10 in `${Uncapitalize<T>}ListLoading`]: boolean; } & { [K_11 in `${Uncapitalize<T>}InitList`]: DataList<Light>; } & { [K_12 in `${Uncapitalize<T>}InitAt`]: Date; } & { [K_13 in `${Uncapitalize<T>}Selection`]: DataList<Light>; } & { [K_14 in `${Uncapitalize<T>}Insight`]: Insight; } & { [K_15 in `lastPageOf${Capitalize<T>}`]: number; } & { [K_16 in `pageOf${Capitalize<T>}`]: number; } & { [K_17 in `limitOf${Capitalize<T>}`]: number; } & { [K_18 in `queryArgsOf${Capitalize<T>}`]: [query: QueryOf<DocumentModel<Full, Dayjs>>]; } & { [K_19 in `sortOf${Capitalize<T>}`]: Exclude<keyof { [K_20 in keyof Filter as Filter[K_20] extends (...args: any) => any ? never : K_20]: Filter[K_20]; }, "prototype">; } & UnionToIntersection<MergeFields<{ [K_21 in keyof Signal as K_21 extends `${T}List${infer Suffix}` ? K_21 : never]: K_21 extends `${T}List${infer Suffix_1}` ? Signal[K_21] extends (...args: infer Args) => Promise<Full[]> ? SliceState<T, Full, Light, import("@akanjs/signal").FilterOutInternalArgs<Args> extends infer T_2 ? T_2 extends import("@akanjs/signal").FilterOutInternalArgs<Args> ? T_2 extends [...args: infer QueryArgs, skip: number | null, limit: number | null, sort: string | null] ? QueryArgs : never : never : never, Insight, Filter, Suffix_1> : never : never; }>>) & DefaultActions<T, Input, Full, Light, Filter, Fetch, Signal> & { [K_22 in keyof Fetch as K_22 extends `${T}List${infer Suffix_2}` ? `__SLICE__${T}${Suffix_2}` : never]: K_22 extends `${T}List${infer Suffix_3}` ? Fetch[K_22] extends (...args: [...args: infer QueryArgs_1, skip: null | undefined, limit: null | undefined, sort: null | undefined, option?: FetchPolicy]) => Promise<Light[]> ? StoreOf<T, RemoveSuffix<{ [K_23 in `default${Capitalize<T>}${Suffix_3}`]: DefaultOf<Full>; } & { [K_24 in `${Uncapitalize<T>}List${Suffix_3}`]: DataList<Light>; } & { [K_25 in `${Uncapitalize<T>}ListLoading${Suffix_3}`]: boolean; } & { [K_26 in `${Uncapitalize<T>}InitList${Suffix_3}`]: DataList<Light>; } & { [K_27 in `${Uncapitalize<T>}InitAt${Suffix_3}`]: Date; } & { [K_28 in `${Uncapitalize<T>}Selection${Suffix_3}`]: DataList<Light>; } & { [K_29 in `${Uncapitalize<T>}Insight${Suffix_3}`]: Insight; } & { [K_30 in `lastPageOf${Capitalize<T>}${Suffix_3}`]: number; } & { [K_31 in `pageOf${Capitalize<T>}${Suffix_3}`]: number; } & { [K_32 in `limitOf${Capitalize<T>}${Suffix_3}`]: number; } & { [K_33 in `queryArgsOf${Capitalize<T>}${Suffix_3}`]: QueryArgs_1; } & { [K_34 in `sortOf${Capitalize<T>}${Suffix_3}`]: Exclude<keyof { [K_20 in keyof Filter as Filter[K_20] extends (...args: any) => any ? never : K_20]: Filter[K_20]; }, "prototype">; } & { [K_35 in `init${Capitalize<T>}${Suffix_3}`]: (...args: [...args: QueryArgs_1, initForm?: (FetchInitForm<Input, Full, Filter> & FetchPolicy<any>) | undefined]) => Promise<void>; } & { [K_36 in `refresh${Capitalize<T>}${Suffix_3}`]: (...args: [...args: QueryArgs_1, initForm?: (FetchInitForm<Input, Full, Filter> & FetchPolicy<any>) | undefined]) => Promise<void>; } & { [K_37 in `select${Capitalize<T>}${Suffix_3}`]: (model: Light | Light[], options?: {
|
|
461
199
|
refresh?: boolean;
|
|
462
200
|
remove?: boolean;
|
|
463
201
|
}) => void; } & { [K_38 in `setPageOf${Capitalize<T>}${Suffix_3}`]: (page: number, options?: FetchPolicy) => Promise<void>; } & { [K_39 in `addPageOf${Capitalize<T>}${Suffix_3}`]: (page: number, options?: FetchPolicy) => Promise<void>; } & { [K_40 in `setLimitOf${Capitalize<T>}${Suffix_3}`]: (limit: number, options?: FetchPolicy) => Promise<void>; } & { [K_41 in `setQueryArgsOf${Capitalize<T>}${Suffix_3}`]: (...args: [...args: QueryArgs_1, options?: FetchPolicy<any> | undefined]) => Promise<void>; } & { [K_42 in `setSortOf${Capitalize<T>}${Suffix_3}`]: (sort: Exclude<keyof { [K_20 in keyof Filter as Filter[K_20] extends (...args: any) => any ? never : K_20]: Filter[K_20]; }, "prototype">, options?: FetchPolicy) => Promise<void>; }, Suffix_3>> : never : never; }>;
|
|
464
|
-
declare const scalarStateOf: <T extends string, State extends {
|
|
202
|
+
export declare const scalarStateOf: <T extends string, State extends {
|
|
465
203
|
[key: string]: any;
|
|
466
204
|
}>(refName: string, state: State) => Type<{
|
|
467
205
|
readonly get: () => State;
|
|
@@ -471,6 +209,7 @@ declare const scalarStateOf: <T extends string, State extends {
|
|
|
471
209
|
interface StoreDecoratorInput {
|
|
472
210
|
name: string;
|
|
473
211
|
}
|
|
212
|
+
export declare const Store: (returnsOrObj: (() => Type) | StoreDecoratorInput) => (target: Type) => void;
|
|
474
213
|
type SetKey<T extends string> = `set${Capitalize<T>}`;
|
|
475
214
|
type WithSelectors<SA> = {
|
|
476
215
|
sub: {
|
|
@@ -506,10 +245,10 @@ type WithSelectors<SA> = {
|
|
|
506
245
|
interface MakeStoreOption {
|
|
507
246
|
library?: boolean;
|
|
508
247
|
}
|
|
509
|
-
declare const makeStore: <SA extends {
|
|
248
|
+
export declare const makeStore: <SA extends {
|
|
510
249
|
[key: string]: any;
|
|
511
250
|
}>(st: WithSelectors<any>, storeRef: Type<SA>, { library }?: MakeStoreOption) => WithSelectors<SA>;
|
|
512
|
-
type StoreOf<T extends string, State> = SliceMeta & {
|
|
251
|
+
export type StoreOf<T extends string, State> = SliceMeta & {
|
|
513
252
|
use: {
|
|
514
253
|
[K in keyof State as State[K] extends (...args: any) => any ? never : K]: () => State[K];
|
|
515
254
|
};
|
|
@@ -525,15 +264,13 @@ type StoreOf<T extends string, State> = SliceMeta & {
|
|
|
525
264
|
type RemoveSuffix<State, Suffix extends string> = {
|
|
526
265
|
[K in keyof State as K extends `${infer Prefix}${Suffix}` ? Prefix : never]: State[K];
|
|
527
266
|
};
|
|
528
|
-
|
|
529
|
-
type Store<State> = WithSelectors<State>;
|
|
267
|
+
export type Store<State> = WithSelectors<State>;
|
|
530
268
|
type OmitGetSetPick<T> = Omit<T, "get" | "set" | "pick">;
|
|
531
|
-
declare const MixStore: <S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S11, S12, S13, S14, S15, S16, S17, S18, S19, S20, S21, S22, S23, S24, S25, S26, S27, S28, S29, S30>(s1: Type<S1>, s2?: Type<S2>, s3?: Type<S3>, s4?: Type<S4>, s5?: Type<S5>, s6?: Type<S6>, s7?: Type<S7>, s8?: Type<S8>, s9?: Type<S9>, s10?: Type<S10>, s11?: Type<S11>, s12?: Type<S12>, s13?: Type<S13>, s14?: Type<S14>, s15?: Type<S15>, s16?: Type<S16>, s17?: Type<S17>, s18?: Type<S18>, s19?: Type<S19>, s20?: Type<S20>, s21?: Type<S21>, s22?: Type<S22>, s23?: Type<S23>, s24?: Type<S24>, s25?: Type<S25>, s26?: Type<S26>, s27?: Type<S27>, s28?: Type<S28>, s29?: Type<S29>, s30?: Type<S30>) => Type<OmitGetSetPick<S1> & OmitGetSetPick<S2> & OmitGetSetPick<S3> & OmitGetSetPick<S4> & OmitGetSetPick<S5> & OmitGetSetPick<S6> & OmitGetSetPick<S7> & OmitGetSetPick<S8> & OmitGetSetPick<S9> & OmitGetSetPick<S10> & OmitGetSetPick<S11> & OmitGetSetPick<S12> & OmitGetSetPick<S13> & OmitGetSetPick<S14> & OmitGetSetPick<S15> & OmitGetSetPick<S16> & OmitGetSetPick<S17> & OmitGetSetPick<S18> & OmitGetSetPick<S19> & OmitGetSetPick<S20> & OmitGetSetPick<S21> & OmitGetSetPick<S22> & OmitGetSetPick<S23> & OmitGetSetPick<S24> & OmitGetSetPick<S25> & OmitGetSetPick<S26> & OmitGetSetPick<S27> & OmitGetSetPick<S28> & OmitGetSetPick<S29> & OmitGetSetPick<S30> & SetGet<OmitGetSetPick<S1> & OmitGetSetPick<S2> & OmitGetSetPick<S3> & OmitGetSetPick<S4> & OmitGetSetPick<S5> & OmitGetSetPick<S6> & OmitGetSetPick<S7> & OmitGetSetPick<S8> & OmitGetSetPick<S9> & OmitGetSetPick<S10> & OmitGetSetPick<S11> & OmitGetSetPick<S12> & OmitGetSetPick<S13> & OmitGetSetPick<S14> & OmitGetSetPick<S15> & OmitGetSetPick<S16> & OmitGetSetPick<S17> & OmitGetSetPick<S18> & OmitGetSetPick<S19> & OmitGetSetPick<S20> & OmitGetSetPick<S21> & OmitGetSetPick<S22> & OmitGetSetPick<S23> & OmitGetSetPick<S24> & OmitGetSetPick<S25> & OmitGetSetPick<S26> & OmitGetSetPick<S27> & OmitGetSetPick<S28> & OmitGetSetPick<S29> & OmitGetSetPick<S30>>>;
|
|
532
|
-
declare const rootStoreOf: <Store>(store: Type<Store>) => Type<Store>;
|
|
269
|
+
export declare const MixStore: <S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S11, S12, S13, S14, S15, S16, S17, S18, S19, S20, S21, S22, S23, S24, S25, S26, S27, S28, S29, S30>(s1: Type<S1>, s2?: Type<S2>, s3?: Type<S3>, s4?: Type<S4>, s5?: Type<S5>, s6?: Type<S6>, s7?: Type<S7>, s8?: Type<S8>, s9?: Type<S9>, s10?: Type<S10>, s11?: Type<S11>, s12?: Type<S12>, s13?: Type<S13>, s14?: Type<S14>, s15?: Type<S15>, s16?: Type<S16>, s17?: Type<S17>, s18?: Type<S18>, s19?: Type<S19>, s20?: Type<S20>, s21?: Type<S21>, s22?: Type<S22>, s23?: Type<S23>, s24?: Type<S24>, s25?: Type<S25>, s26?: Type<S26>, s27?: Type<S27>, s28?: Type<S28>, s29?: Type<S29>, s30?: Type<S30>) => Type<OmitGetSetPick<S1> & OmitGetSetPick<S2> & OmitGetSetPick<S3> & OmitGetSetPick<S4> & OmitGetSetPick<S5> & OmitGetSetPick<S6> & OmitGetSetPick<S7> & OmitGetSetPick<S8> & OmitGetSetPick<S9> & OmitGetSetPick<S10> & OmitGetSetPick<S11> & OmitGetSetPick<S12> & OmitGetSetPick<S13> & OmitGetSetPick<S14> & OmitGetSetPick<S15> & OmitGetSetPick<S16> & OmitGetSetPick<S17> & OmitGetSetPick<S18> & OmitGetSetPick<S19> & OmitGetSetPick<S20> & OmitGetSetPick<S21> & OmitGetSetPick<S22> & OmitGetSetPick<S23> & OmitGetSetPick<S24> & OmitGetSetPick<S25> & OmitGetSetPick<S26> & OmitGetSetPick<S27> & OmitGetSetPick<S28> & OmitGetSetPick<S29> & OmitGetSetPick<S30> & SetGet<OmitGetSetPick<S1> & OmitGetSetPick<S2> & OmitGetSetPick<S3> & OmitGetSetPick<S4> & OmitGetSetPick<S5> & OmitGetSetPick<S6> & OmitGetSetPick<S7> & OmitGetSetPick<S8> & OmitGetSetPick<S9> & OmitGetSetPick<S10> & OmitGetSetPick<S11> & OmitGetSetPick<S12> & OmitGetSetPick<S13> & OmitGetSetPick<S14> & OmitGetSetPick<S15> & OmitGetSetPick<S16> & OmitGetSetPick<S17> & OmitGetSetPick<S18> & OmitGetSetPick<S19> & OmitGetSetPick<S20> & OmitGetSetPick<S21> & OmitGetSetPick<S22> & OmitGetSetPick<S23> & OmitGetSetPick<S24> & OmitGetSetPick<S25> & OmitGetSetPick<S26> & OmitGetSetPick<S27> & OmitGetSetPick<S28> & OmitGetSetPick<S29> & OmitGetSetPick<S30>>>;
|
|
270
|
+
export declare const rootStoreOf: <Store>(store: Type<Store>) => Type<Store>;
|
|
533
271
|
interface ToastProps {
|
|
534
272
|
root?: string;
|
|
535
273
|
duration?: number;
|
|
536
274
|
}
|
|
537
|
-
declare const Toast: ({ root, duration }?: ToastProps) => (target: any, key: string, descriptor: PropertyDescriptor) => void;
|
|
538
|
-
|
|
539
|
-
export { type CreateOption, type Get, MixStore, type NewOption, type SetGet, type SetPick, type State, Store, type StoreOf, Toast, createActions, createState, makeStore, rootStoreOf, scalarStateOf, st, stateOf };
|
|
275
|
+
export declare const Toast: ({ root, duration }?: ToastProps) => (target: any, key: string, descriptor: PropertyDescriptor) => void;
|
|
276
|
+
export {};
|
package/src/types.d.ts
CHANGED
package/src/index.js
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
var __defProp = Object.defineProperty;
|
|
2
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
-
var __copyProps = (to, from, except, desc) => {
|
|
6
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
7
|
-
for (let key of __getOwnPropNames(from))
|
|
8
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
9
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
10
|
-
}
|
|
11
|
-
return to;
|
|
12
|
-
};
|
|
13
|
-
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
14
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
15
|
-
var src_exports = {};
|
|
16
|
-
module.exports = __toCommonJS(src_exports);
|
|
17
|
-
__reExport(src_exports, require("./types"), module.exports);
|
|
18
|
-
__reExport(src_exports, require("./storeDecorators"), module.exports);
|
|
19
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
20
|
-
0 && (module.exports = {
|
|
21
|
-
...require("./types"),
|
|
22
|
-
...require("./storeDecorators")
|
|
23
|
-
});
|