@akanjs/store 0.0.150 → 0.0.152
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/cjs/src/baseSt.js +99 -0
- package/cjs/src/index.js +1 -0
- package/cjs/src/storeDecorators.js +7 -7
- package/esm/src/baseSt.js +82 -0
- package/esm/src/index.js +1 -0
- package/esm/src/storeDecorators.js +7 -7
- package/package.json +1 -1
- package/src/baseSt.d.ts +204 -0
- package/src/index.d.ts +1 -0
- package/src/storeDecorators.d.ts +8 -8
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __export = (target, all) => {
|
|
6
|
+
for (var name in all)
|
|
7
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
+
};
|
|
9
|
+
var __copyProps = (to, from, except, desc) => {
|
|
10
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
+
for (let key of __getOwnPropNames(from))
|
|
12
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
+
}
|
|
15
|
+
return to;
|
|
16
|
+
};
|
|
17
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
+
var __decorateClass = (decorators, target, key, kind) => {
|
|
19
|
+
var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
|
|
20
|
+
for (var i = decorators.length - 1, decorator; i >= 0; i--)
|
|
21
|
+
if (decorator = decorators[i])
|
|
22
|
+
result = (kind ? decorator(target, key, result) : decorator(result)) || result;
|
|
23
|
+
if (kind && result)
|
|
24
|
+
__defProp(target, key, result);
|
|
25
|
+
return result;
|
|
26
|
+
};
|
|
27
|
+
var baseSt_exports = {};
|
|
28
|
+
__export(baseSt_exports, {
|
|
29
|
+
RootStore: () => RootStore,
|
|
30
|
+
st: () => st,
|
|
31
|
+
store: () => store
|
|
32
|
+
});
|
|
33
|
+
module.exports = __toCommonJS(baseSt_exports);
|
|
34
|
+
var import_client = require("@akanjs/client");
|
|
35
|
+
var import_constant = require("@akanjs/constant");
|
|
36
|
+
var import_signal = require("@akanjs/signal");
|
|
37
|
+
var import_storeDecorators = require("./storeDecorators");
|
|
38
|
+
const defaultMessage = {
|
|
39
|
+
type: "info",
|
|
40
|
+
content: "",
|
|
41
|
+
duration: 3,
|
|
42
|
+
// seconds
|
|
43
|
+
key: Math.random().toString(36).slice(2, 15)
|
|
44
|
+
};
|
|
45
|
+
let RootStore = class extends (0, import_storeDecorators.scalarStateOf)("root", {
|
|
46
|
+
csrLoaded: false,
|
|
47
|
+
path: "/",
|
|
48
|
+
pathname: typeof window !== "undefined" ? window.location.pathname : "/",
|
|
49
|
+
params: {},
|
|
50
|
+
searchParams: {},
|
|
51
|
+
theme: "system",
|
|
52
|
+
prefix: void 0,
|
|
53
|
+
innerWidth: 0,
|
|
54
|
+
innerHeight: 0,
|
|
55
|
+
responsive: "md",
|
|
56
|
+
uiOperation: "sleep",
|
|
57
|
+
messages: [],
|
|
58
|
+
tryJwt: null,
|
|
59
|
+
trySignalType: "graphql",
|
|
60
|
+
tryRoles: [...import_signal.roleTypes],
|
|
61
|
+
tryAccount: import_signal.defaultAccount,
|
|
62
|
+
keyboardHeight: 0,
|
|
63
|
+
pageState: import_client.defaultPageState,
|
|
64
|
+
devMode: false,
|
|
65
|
+
getSelf: async ({ reset } = {}) => {
|
|
66
|
+
},
|
|
67
|
+
deviceToken: "",
|
|
68
|
+
currentPath: "",
|
|
69
|
+
connectStatus: "disconnected"
|
|
70
|
+
}) {
|
|
71
|
+
setDevMode(value) {
|
|
72
|
+
this.set({ devMode: value });
|
|
73
|
+
localStorage.setItem("devMode", value.toString());
|
|
74
|
+
}
|
|
75
|
+
setWindowSize() {
|
|
76
|
+
if (typeof window === "undefined")
|
|
77
|
+
return;
|
|
78
|
+
const responsive = import_constant.Responsive.values[import_constant.responsiveWidths.findIndex((w) => w < window.innerWidth)];
|
|
79
|
+
this.set({ innerWidth: window.innerWidth, innerHeight: window.innerHeight, responsive });
|
|
80
|
+
}
|
|
81
|
+
showMessage(message) {
|
|
82
|
+
message.key ??= Math.random().toString(36).slice(2, 15);
|
|
83
|
+
const { messages } = this.get();
|
|
84
|
+
const newMessage = { ...defaultMessage, ...message };
|
|
85
|
+
if (messages.some((m) => m.key === newMessage.key))
|
|
86
|
+
this.set({ messages: messages.map((m) => m.key === newMessage.key ? newMessage : m) });
|
|
87
|
+
else
|
|
88
|
+
this.set({ messages: [...messages.length > 6 ? messages.slice(1) : messages, newMessage] });
|
|
89
|
+
}
|
|
90
|
+
hideMessage(key) {
|
|
91
|
+
const { messages } = this.get();
|
|
92
|
+
this.set({ messages: messages.filter((m) => m.key !== key) });
|
|
93
|
+
}
|
|
94
|
+
};
|
|
95
|
+
RootStore = __decorateClass([
|
|
96
|
+
(0, import_storeDecorators.Store)({ name: "root" })
|
|
97
|
+
], RootStore);
|
|
98
|
+
const store = RootStore;
|
|
99
|
+
const st = (0, import_storeDecorators.makeStore)(import_storeDecorators.baseSt, store, { library: true });
|
package/cjs/src/index.js
CHANGED
|
@@ -16,3 +16,4 @@ var src_exports = {};
|
|
|
16
16
|
module.exports = __toCommonJS(src_exports);
|
|
17
17
|
__reExport(src_exports, require("./types"), module.exports);
|
|
18
18
|
__reExport(src_exports, require("./storeDecorators"), module.exports);
|
|
19
|
+
__reExport(src_exports, require("./baseSt"), module.exports);
|
|
@@ -21,12 +21,12 @@ __export(storeDecorators_exports, {
|
|
|
21
21
|
MixStore: () => MixStore,
|
|
22
22
|
Store: () => Store,
|
|
23
23
|
Toast: () => Toast,
|
|
24
|
+
baseSt: () => baseSt,
|
|
24
25
|
createActions: () => createActions,
|
|
25
26
|
createState: () => createState,
|
|
26
27
|
makeStore: () => makeStore,
|
|
27
28
|
rootStoreOf: () => rootStoreOf,
|
|
28
29
|
scalarStateOf: () => scalarStateOf,
|
|
29
|
-
st: () => st,
|
|
30
30
|
stateOf: () => stateOf
|
|
31
31
|
});
|
|
32
32
|
module.exports = __toCommonJS(storeDecorators_exports);
|
|
@@ -39,7 +39,7 @@ var import_react = require("react");
|
|
|
39
39
|
var import_zustand = require("zustand");
|
|
40
40
|
var import_middleware = require("zustand/middleware");
|
|
41
41
|
var import_immer = require("zustand/middleware/immer");
|
|
42
|
-
const
|
|
42
|
+
const baseSt = {};
|
|
43
43
|
class StoreStorage {
|
|
44
44
|
}
|
|
45
45
|
const getStoreMeta = (storeName) => {
|
|
@@ -877,8 +877,8 @@ const createSelectors = (_store, store = {}) => {
|
|
|
877
877
|
store.get = _store.getState;
|
|
878
878
|
store.set = (s) => {
|
|
879
879
|
if (typeof s === "function")
|
|
880
|
-
_store.setState((
|
|
881
|
-
s(
|
|
880
|
+
_store.setState((st) => {
|
|
881
|
+
s(st);
|
|
882
882
|
});
|
|
883
883
|
else
|
|
884
884
|
_store.setState(s);
|
|
@@ -1019,9 +1019,9 @@ const makePicker = (set, get) => (...fields) => {
|
|
|
1019
1019
|
}
|
|
1020
1020
|
return ret;
|
|
1021
1021
|
};
|
|
1022
|
-
const makeStore = (
|
|
1022
|
+
const makeStore = (st, storeRef, { library } = {}) => {
|
|
1023
1023
|
if (library)
|
|
1024
|
-
return
|
|
1024
|
+
return st;
|
|
1025
1025
|
const zustandStore = (0, import_zustand.create)(
|
|
1026
1026
|
(0, import_middleware.devtools)(
|
|
1027
1027
|
(0, import_middleware.subscribeWithSelector)(
|
|
@@ -1040,7 +1040,7 @@ const makeStore = (st2, storeRef, { library } = {}) => {
|
|
|
1040
1040
|
{ name: "root", anonymousActionType: "root", type: "root" }
|
|
1041
1041
|
)
|
|
1042
1042
|
);
|
|
1043
|
-
return createSelectors(zustandStore,
|
|
1043
|
+
return createSelectors(zustandStore, st);
|
|
1044
1044
|
};
|
|
1045
1045
|
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) => {
|
|
1046
1046
|
const stores = [
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __decorateClass = (decorators, target, key, kind) => {
|
|
4
|
+
var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
|
|
5
|
+
for (var i = decorators.length - 1, decorator; i >= 0; i--)
|
|
6
|
+
if (decorator = decorators[i])
|
|
7
|
+
result = (kind ? decorator(target, key, result) : decorator(result)) || result;
|
|
8
|
+
if (kind && result)
|
|
9
|
+
__defProp(target, key, result);
|
|
10
|
+
return result;
|
|
11
|
+
};
|
|
12
|
+
import { defaultPageState } from "@akanjs/client";
|
|
13
|
+
import { Responsive, responsiveWidths } from "@akanjs/constant";
|
|
14
|
+
import { defaultAccount, roleTypes } from "@akanjs/signal";
|
|
15
|
+
import { baseSt, makeStore, scalarStateOf, Store } from "./storeDecorators";
|
|
16
|
+
const defaultMessage = {
|
|
17
|
+
type: "info",
|
|
18
|
+
content: "",
|
|
19
|
+
duration: 3,
|
|
20
|
+
// seconds
|
|
21
|
+
key: Math.random().toString(36).slice(2, 15)
|
|
22
|
+
};
|
|
23
|
+
let RootStore = class extends scalarStateOf("root", {
|
|
24
|
+
csrLoaded: false,
|
|
25
|
+
path: "/",
|
|
26
|
+
pathname: typeof window !== "undefined" ? window.location.pathname : "/",
|
|
27
|
+
params: {},
|
|
28
|
+
searchParams: {},
|
|
29
|
+
theme: "system",
|
|
30
|
+
prefix: void 0,
|
|
31
|
+
innerWidth: 0,
|
|
32
|
+
innerHeight: 0,
|
|
33
|
+
responsive: "md",
|
|
34
|
+
uiOperation: "sleep",
|
|
35
|
+
messages: [],
|
|
36
|
+
tryJwt: null,
|
|
37
|
+
trySignalType: "graphql",
|
|
38
|
+
tryRoles: [...roleTypes],
|
|
39
|
+
tryAccount: defaultAccount,
|
|
40
|
+
keyboardHeight: 0,
|
|
41
|
+
pageState: defaultPageState,
|
|
42
|
+
devMode: false,
|
|
43
|
+
getSelf: async ({ reset } = {}) => {
|
|
44
|
+
},
|
|
45
|
+
deviceToken: "",
|
|
46
|
+
currentPath: "",
|
|
47
|
+
connectStatus: "disconnected"
|
|
48
|
+
}) {
|
|
49
|
+
setDevMode(value) {
|
|
50
|
+
this.set({ devMode: value });
|
|
51
|
+
localStorage.setItem("devMode", value.toString());
|
|
52
|
+
}
|
|
53
|
+
setWindowSize() {
|
|
54
|
+
if (typeof window === "undefined")
|
|
55
|
+
return;
|
|
56
|
+
const responsive = Responsive.values[responsiveWidths.findIndex((w) => w < window.innerWidth)];
|
|
57
|
+
this.set({ innerWidth: window.innerWidth, innerHeight: window.innerHeight, responsive });
|
|
58
|
+
}
|
|
59
|
+
showMessage(message) {
|
|
60
|
+
message.key ??= Math.random().toString(36).slice(2, 15);
|
|
61
|
+
const { messages } = this.get();
|
|
62
|
+
const newMessage = { ...defaultMessage, ...message };
|
|
63
|
+
if (messages.some((m) => m.key === newMessage.key))
|
|
64
|
+
this.set({ messages: messages.map((m) => m.key === newMessage.key ? newMessage : m) });
|
|
65
|
+
else
|
|
66
|
+
this.set({ messages: [...messages.length > 6 ? messages.slice(1) : messages, newMessage] });
|
|
67
|
+
}
|
|
68
|
+
hideMessage(key) {
|
|
69
|
+
const { messages } = this.get();
|
|
70
|
+
this.set({ messages: messages.filter((m) => m.key !== key) });
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
RootStore = __decorateClass([
|
|
74
|
+
Store({ name: "root" })
|
|
75
|
+
], RootStore);
|
|
76
|
+
const store = RootStore;
|
|
77
|
+
const st = makeStore(baseSt, store, { library: true });
|
|
78
|
+
export {
|
|
79
|
+
RootStore,
|
|
80
|
+
st,
|
|
81
|
+
store
|
|
82
|
+
};
|
package/esm/src/index.js
CHANGED
|
@@ -24,7 +24,7 @@ import { useEffect, useRef } from "react";
|
|
|
24
24
|
import { create } from "zustand";
|
|
25
25
|
import { devtools, subscribeWithSelector } from "zustand/middleware";
|
|
26
26
|
import { immer } from "zustand/middleware/immer";
|
|
27
|
-
const
|
|
27
|
+
const baseSt = {};
|
|
28
28
|
class StoreStorage {
|
|
29
29
|
}
|
|
30
30
|
const getStoreMeta = (storeName) => {
|
|
@@ -862,8 +862,8 @@ const createSelectors = (_store, store = {}) => {
|
|
|
862
862
|
store.get = _store.getState;
|
|
863
863
|
store.set = (s) => {
|
|
864
864
|
if (typeof s === "function")
|
|
865
|
-
_store.setState((
|
|
866
|
-
s(
|
|
865
|
+
_store.setState((st) => {
|
|
866
|
+
s(st);
|
|
867
867
|
});
|
|
868
868
|
else
|
|
869
869
|
_store.setState(s);
|
|
@@ -1004,9 +1004,9 @@ const makePicker = (set, get) => (...fields) => {
|
|
|
1004
1004
|
}
|
|
1005
1005
|
return ret;
|
|
1006
1006
|
};
|
|
1007
|
-
const makeStore = (
|
|
1007
|
+
const makeStore = (st, storeRef, { library } = {}) => {
|
|
1008
1008
|
if (library)
|
|
1009
|
-
return
|
|
1009
|
+
return st;
|
|
1010
1010
|
const zustandStore = create(
|
|
1011
1011
|
devtools(
|
|
1012
1012
|
subscribeWithSelector(
|
|
@@ -1025,7 +1025,7 @@ const makeStore = (st2, storeRef, { library } = {}) => {
|
|
|
1025
1025
|
{ name: "root", anonymousActionType: "root", type: "root" }
|
|
1026
1026
|
)
|
|
1027
1027
|
);
|
|
1028
|
-
return createSelectors(zustandStore,
|
|
1028
|
+
return createSelectors(zustandStore, st);
|
|
1029
1029
|
};
|
|
1030
1030
|
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) => {
|
|
1031
1031
|
const stores = [
|
|
@@ -1089,11 +1089,11 @@ export {
|
|
|
1089
1089
|
MixStore,
|
|
1090
1090
|
Store,
|
|
1091
1091
|
Toast,
|
|
1092
|
+
baseSt,
|
|
1092
1093
|
createActions,
|
|
1093
1094
|
createState,
|
|
1094
1095
|
makeStore,
|
|
1095
1096
|
rootStoreOf,
|
|
1096
1097
|
scalarStateOf,
|
|
1097
|
-
st,
|
|
1098
1098
|
stateOf
|
|
1099
1099
|
};
|
package/package.json
CHANGED
package/src/baseSt.d.ts
ADDED
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
import { Responsive } from "@akanjs/constant";
|
|
2
|
+
import { RoleType, SignalType } from "@akanjs/signal";
|
|
3
|
+
declare const defaultMessage: {
|
|
4
|
+
type: "info" | "success" | "error" | "warning" | "loading";
|
|
5
|
+
content: string;
|
|
6
|
+
duration: number;
|
|
7
|
+
key: string;
|
|
8
|
+
};
|
|
9
|
+
declare const RootStore_base: import("@akanjs/base").Type<{
|
|
10
|
+
readonly get: () => {
|
|
11
|
+
csrLoaded: boolean;
|
|
12
|
+
path: string;
|
|
13
|
+
pathname: string;
|
|
14
|
+
params: {
|
|
15
|
+
[key: string]: string;
|
|
16
|
+
};
|
|
17
|
+
searchParams: {
|
|
18
|
+
[key: string]: string;
|
|
19
|
+
};
|
|
20
|
+
theme: string;
|
|
21
|
+
prefix: string | undefined;
|
|
22
|
+
innerWidth: number;
|
|
23
|
+
innerHeight: number;
|
|
24
|
+
responsive: Responsive;
|
|
25
|
+
uiOperation: "sleep" | "loading" | "idle";
|
|
26
|
+
messages: (typeof defaultMessage)[];
|
|
27
|
+
tryJwt: string | null;
|
|
28
|
+
trySignalType: SignalType;
|
|
29
|
+
tryRoles: RoleType[];
|
|
30
|
+
tryAccount: {
|
|
31
|
+
__InternalArg__: "Account";
|
|
32
|
+
self?: import("@akanjs/signal").Self;
|
|
33
|
+
me?: import("@akanjs/signal").Me;
|
|
34
|
+
appName: string;
|
|
35
|
+
environment: import("@akanjs/base").Environment;
|
|
36
|
+
};
|
|
37
|
+
keyboardHeight: number;
|
|
38
|
+
pageState: import("@akanjs/client").PageState;
|
|
39
|
+
devMode: boolean;
|
|
40
|
+
getSelf: ({ reset }?: {
|
|
41
|
+
reset?: boolean;
|
|
42
|
+
}) => Promise<void>;
|
|
43
|
+
deviceToken: string;
|
|
44
|
+
currentPath: string;
|
|
45
|
+
connectStatus: "connected" | "connecting" | "disconnected";
|
|
46
|
+
};
|
|
47
|
+
readonly set: (state: Partial<{
|
|
48
|
+
csrLoaded: boolean;
|
|
49
|
+
path: string;
|
|
50
|
+
pathname: string;
|
|
51
|
+
params: {
|
|
52
|
+
[key: string]: string;
|
|
53
|
+
};
|
|
54
|
+
searchParams: {
|
|
55
|
+
[key: string]: string;
|
|
56
|
+
};
|
|
57
|
+
theme: string;
|
|
58
|
+
prefix: string | undefined;
|
|
59
|
+
innerWidth: number;
|
|
60
|
+
innerHeight: number;
|
|
61
|
+
responsive: Responsive;
|
|
62
|
+
uiOperation: "sleep" | "loading" | "idle";
|
|
63
|
+
messages: (typeof defaultMessage)[];
|
|
64
|
+
tryJwt: string | null;
|
|
65
|
+
trySignalType: SignalType;
|
|
66
|
+
tryRoles: RoleType[];
|
|
67
|
+
tryAccount: {
|
|
68
|
+
__InternalArg__: "Account";
|
|
69
|
+
self?: import("@akanjs/signal").Self;
|
|
70
|
+
me?: import("@akanjs/signal").Me;
|
|
71
|
+
appName: string;
|
|
72
|
+
environment: import("@akanjs/base").Environment;
|
|
73
|
+
};
|
|
74
|
+
keyboardHeight: number;
|
|
75
|
+
pageState: import("@akanjs/client").PageState;
|
|
76
|
+
devMode: boolean;
|
|
77
|
+
getSelf: ({ reset }?: {
|
|
78
|
+
reset?: boolean;
|
|
79
|
+
}) => Promise<void>;
|
|
80
|
+
deviceToken: string;
|
|
81
|
+
currentPath: string;
|
|
82
|
+
connectStatus: "connected" | "connecting" | "disconnected";
|
|
83
|
+
}> | ((state: {
|
|
84
|
+
csrLoaded: boolean;
|
|
85
|
+
path: string;
|
|
86
|
+
pathname: string;
|
|
87
|
+
params: {
|
|
88
|
+
[key: string]: string;
|
|
89
|
+
};
|
|
90
|
+
searchParams: {
|
|
91
|
+
[key: string]: string;
|
|
92
|
+
};
|
|
93
|
+
theme: string;
|
|
94
|
+
prefix: string | undefined;
|
|
95
|
+
innerWidth: number;
|
|
96
|
+
innerHeight: number;
|
|
97
|
+
responsive: Responsive;
|
|
98
|
+
uiOperation: "sleep" | "loading" | "idle";
|
|
99
|
+
messages: (typeof defaultMessage)[];
|
|
100
|
+
tryJwt: string | null;
|
|
101
|
+
trySignalType: SignalType;
|
|
102
|
+
tryRoles: RoleType[];
|
|
103
|
+
tryAccount: {
|
|
104
|
+
__InternalArg__: "Account";
|
|
105
|
+
self?: import("@akanjs/signal").Self;
|
|
106
|
+
me?: import("@akanjs/signal").Me;
|
|
107
|
+
appName: string;
|
|
108
|
+
environment: import("@akanjs/base").Environment;
|
|
109
|
+
};
|
|
110
|
+
keyboardHeight: number;
|
|
111
|
+
pageState: import("@akanjs/client").PageState;
|
|
112
|
+
devMode: boolean;
|
|
113
|
+
getSelf: ({ reset }?: {
|
|
114
|
+
reset?: boolean;
|
|
115
|
+
}) => Promise<void>;
|
|
116
|
+
deviceToken: string;
|
|
117
|
+
currentPath: string;
|
|
118
|
+
connectStatus: "connected" | "connecting" | "disconnected";
|
|
119
|
+
}) => any)) => void;
|
|
120
|
+
readonly pick: (...fields: ("path" | "params" | "prefix" | "pathname" | "searchParams" | "innerHeight" | "innerWidth" | "csrLoaded" | "theme" | "tryAccount" | "keyboardHeight" | "pageState" | "devMode" | "getSelf" | "responsive" | "uiOperation" | "messages" | "tryJwt" | "trySignalType" | "tryRoles" | "deviceToken" | "currentPath" | "connectStatus")[]) => {
|
|
121
|
+
path: string;
|
|
122
|
+
params: {
|
|
123
|
+
[key: string]: string;
|
|
124
|
+
};
|
|
125
|
+
prefix: string;
|
|
126
|
+
pathname: string;
|
|
127
|
+
searchParams: {
|
|
128
|
+
[key: string]: string;
|
|
129
|
+
};
|
|
130
|
+
innerHeight: number;
|
|
131
|
+
innerWidth: number;
|
|
132
|
+
csrLoaded: boolean;
|
|
133
|
+
theme: string;
|
|
134
|
+
tryAccount: {
|
|
135
|
+
__InternalArg__: "Account";
|
|
136
|
+
self?: import("@akanjs/signal").Self;
|
|
137
|
+
me?: import("@akanjs/signal").Me;
|
|
138
|
+
appName: string;
|
|
139
|
+
environment: import("@akanjs/base").Environment;
|
|
140
|
+
};
|
|
141
|
+
keyboardHeight: number;
|
|
142
|
+
pageState: import("@akanjs/client").PageState;
|
|
143
|
+
devMode: boolean;
|
|
144
|
+
getSelf: ({ reset }?: {
|
|
145
|
+
reset?: boolean;
|
|
146
|
+
}) => Promise<void>;
|
|
147
|
+
responsive: Responsive;
|
|
148
|
+
uiOperation: "sleep" | "idle";
|
|
149
|
+
messages: (typeof defaultMessage)[];
|
|
150
|
+
tryJwt: string;
|
|
151
|
+
trySignalType: SignalType;
|
|
152
|
+
tryRoles: RoleType[];
|
|
153
|
+
deviceToken: string;
|
|
154
|
+
currentPath: string;
|
|
155
|
+
connectStatus: "connected" | "connecting" | "disconnected";
|
|
156
|
+
};
|
|
157
|
+
} & {
|
|
158
|
+
csrLoaded: boolean;
|
|
159
|
+
path: string;
|
|
160
|
+
pathname: string;
|
|
161
|
+
params: {
|
|
162
|
+
[key: string]: string;
|
|
163
|
+
};
|
|
164
|
+
searchParams: {
|
|
165
|
+
[key: string]: string;
|
|
166
|
+
};
|
|
167
|
+
theme: string;
|
|
168
|
+
prefix: string | undefined;
|
|
169
|
+
innerWidth: number;
|
|
170
|
+
innerHeight: number;
|
|
171
|
+
responsive: Responsive;
|
|
172
|
+
uiOperation: "sleep" | "loading" | "idle";
|
|
173
|
+
messages: (typeof defaultMessage)[];
|
|
174
|
+
tryJwt: string | null;
|
|
175
|
+
trySignalType: SignalType;
|
|
176
|
+
tryRoles: RoleType[];
|
|
177
|
+
tryAccount: {
|
|
178
|
+
__InternalArg__: "Account";
|
|
179
|
+
self?: import("@akanjs/signal").Self;
|
|
180
|
+
me?: import("@akanjs/signal").Me;
|
|
181
|
+
appName: string;
|
|
182
|
+
environment: import("@akanjs/base").Environment;
|
|
183
|
+
};
|
|
184
|
+
keyboardHeight: number;
|
|
185
|
+
pageState: import("@akanjs/client").PageState;
|
|
186
|
+
devMode: boolean;
|
|
187
|
+
getSelf: ({ reset }?: {
|
|
188
|
+
reset?: boolean;
|
|
189
|
+
}) => Promise<void>;
|
|
190
|
+
deviceToken: string;
|
|
191
|
+
currentPath: string;
|
|
192
|
+
connectStatus: "connected" | "connecting" | "disconnected";
|
|
193
|
+
}>;
|
|
194
|
+
export declare class RootStore extends RootStore_base {
|
|
195
|
+
setDevMode(value: boolean): void;
|
|
196
|
+
setWindowSize(): void;
|
|
197
|
+
showMessage(message: {
|
|
198
|
+
content: string | string[];
|
|
199
|
+
} & Partial<typeof defaultMessage>): void;
|
|
200
|
+
hideMessage(key: string): void;
|
|
201
|
+
}
|
|
202
|
+
export declare const store: typeof RootStore;
|
|
203
|
+
export declare const st: import("./storeDecorators").WithSelectors<RootStore> & import("./storeDecorators").WithSelectors<any>;
|
|
204
|
+
export {};
|
package/src/index.d.ts
CHANGED
package/src/storeDecorators.d.ts
CHANGED
|
@@ -5,7 +5,7 @@ import { DbGraphQL, DefaultOf, FetchInitForm, FieldState, FilterListArgs, Filter
|
|
|
5
5
|
import { MutableRefObject } from "react";
|
|
6
6
|
import { Mutate, StoreApi } from "zustand";
|
|
7
7
|
import type { Submit } from "./types";
|
|
8
|
-
export declare const
|
|
8
|
+
export declare const baseSt: WithSelectors<any>;
|
|
9
9
|
type BaseState<T extends string, Full> = {
|
|
10
10
|
[K in Uncapitalize<T>]: Full | null;
|
|
11
11
|
} & {
|
|
@@ -192,10 +192,10 @@ export declare const stateOf: <T extends string, Input, Full extends {
|
|
|
192
192
|
}, Insight, Filter extends FilterType, Fetch, Signal, State extends {
|
|
193
193
|
[key: string]: any;
|
|
194
194
|
}>(gql: DbGraphQL<T, Input, Full, Light, Insight, Filter, Fetch, Signal>, state: State) => Type<{
|
|
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" | "
|
|
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" | "
|
|
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" | "
|
|
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" | "
|
|
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" | "loading" | "sleep" | "idle"; } & { [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" | "loading" | "sleep" | "idle"; } & { [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" | "loading" | "sleep" | "idle"; } & { [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" | "loading" | "sleep" | "idle"; } & { [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" | "loading" | "sleep" | "idle"; } & { [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?: {
|
|
199
199
|
refresh?: boolean;
|
|
200
200
|
remove?: boolean;
|
|
201
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; }>;
|
|
@@ -211,7 +211,7 @@ interface StoreDecoratorInput {
|
|
|
211
211
|
}
|
|
212
212
|
export declare const Store: (returnsOrObj: (() => Type) | StoreDecoratorInput) => (target: Type) => void;
|
|
213
213
|
type SetKey<T extends string> = `set${Capitalize<T>}`;
|
|
214
|
-
interface WithSelectors<SA> {
|
|
214
|
+
export interface WithSelectors<SA> {
|
|
215
215
|
sub: {
|
|
216
216
|
(listener: (selectedState: SA, previousSelectedState: SA) => void): () => void;
|
|
217
217
|
<U>(selector: (state: SA) => U, listener: (selectedState: U, previousSelectedState: U) => void, options?: {
|
|
@@ -238,9 +238,9 @@ interface WithSelectors<SA> {
|
|
|
238
238
|
interface MakeStoreOption {
|
|
239
239
|
library?: boolean;
|
|
240
240
|
}
|
|
241
|
-
export declare const makeStore: <SA extends {
|
|
241
|
+
export declare const makeStore: <BaseStore extends WithSelectors<any>, SA extends {
|
|
242
242
|
[key: string]: any;
|
|
243
|
-
}>(st:
|
|
243
|
+
}>(st: BaseStore, storeRef: Type<SA>, { library }?: MakeStoreOption) => WithSelectors<SA> & BaseStore;
|
|
244
244
|
export type StoreOf<T extends string, State> = SliceMeta & {
|
|
245
245
|
use: {
|
|
246
246
|
[K in keyof State as State[K] extends (...args: any) => any ? never : K]: () => State[K];
|