@pihanga2/core 0.2.0
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/dist/card.d.ts +22 -0
- package/dist/card.d.ts.map +1 -0
- package/dist/card.js +493 -0
- package/dist/card.js.map +1 -0
- package/dist/index.d.ts +50 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +88 -0
- package/dist/index.js.map +1 -0
- package/dist/logger.d.ts +5 -0
- package/dist/logger.d.ts.map +1 -0
- package/dist/logger.js +12 -0
- package/dist/logger.js.map +1 -0
- package/dist/reducer.d.ts +5 -0
- package/dist/reducer.d.ts.map +1 -0
- package/dist/reducer.js +77 -0
- package/dist/reducer.js.map +1 -0
- package/dist/redux.d.ts +31 -0
- package/dist/redux.d.ts.map +1 -0
- package/dist/redux.js +50 -0
- package/dist/redux.js.map +1 -0
- package/dist/rest/delete.d.ts +4 -0
- package/dist/rest/delete.d.ts.map +1 -0
- package/dist/rest/delete.js +23 -0
- package/dist/rest/delete.js.map +1 -0
- package/dist/rest/enums.d.ts +6 -0
- package/dist/rest/enums.d.ts.map +1 -0
- package/dist/rest/enums.js +9 -0
- package/dist/rest/enums.js.map +1 -0
- package/dist/rest/get.d.ts +10 -0
- package/dist/rest/get.d.ts.map +1 -0
- package/dist/rest/get.js +31 -0
- package/dist/rest/get.js.map +1 -0
- package/dist/rest/index.d.ts +6 -0
- package/dist/rest/index.d.ts.map +1 -0
- package/dist/rest/index.js +6 -0
- package/dist/rest/index.js.map +1 -0
- package/dist/rest/postPutPatch.d.ts +6 -0
- package/dist/rest/postPutPatch.d.ts.map +1 -0
- package/dist/rest/postPutPatch.js +72 -0
- package/dist/rest/postPutPatch.js.map +1 -0
- package/dist/rest/types.d.ts +93 -0
- package/dist/rest/types.d.ts.map +1 -0
- package/dist/rest/types.js +38 -0
- package/dist/rest/types.js.map +1 -0
- package/dist/rest/utils.d.ts +8 -0
- package/dist/rest/utils.d.ts.map +1 -0
- package/dist/rest/utils.js +212 -0
- package/dist/rest/utils.js.map +1 -0
- package/dist/router.d.ts +25 -0
- package/dist/router.d.ts.map +1 -0
- package/dist/router.js +136 -0
- package/dist/router.js.map +1 -0
- package/dist/store.d.ts +1 -0
- package/dist/store.d.ts.map +1 -0
- package/dist/store.js +18 -0
- package/dist/store.js.map +1 -0
- package/dist/types.d.ts +94 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/package.json +71 -0
- package/src/card.tsx +628 -0
- package/src/index.tsx +193 -0
- package/src/logger.ts +13 -0
- package/src/reducer.ts +127 -0
- package/src/redux.ts +64 -0
- package/src/rest/delete.ts +41 -0
- package/src/rest/enums.ts +8 -0
- package/src/rest/get.ts +50 -0
- package/src/rest/index.ts +7 -0
- package/src/rest/postPutPatch.ts +118 -0
- package/src/rest/types.ts +135 -0
- package/src/rest/utils.ts +265 -0
- package/src/router.ts +171 -0
- package/src/store.ts +19 -0
- package/src/types.ts +146 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/rest/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { registerActions } from "../redux";
|
|
2
|
+
export const Domain = "pi/rest";
|
|
3
|
+
export const ACTION_TYPES = registerActions(Domain, [
|
|
4
|
+
// "GET_SUBMITTED",
|
|
5
|
+
// "GET_RESULT",
|
|
6
|
+
// "GET_ERROR",
|
|
7
|
+
// "GET_INTERNAL_ERROR",
|
|
8
|
+
// "GET_PERIODIC_TICK",
|
|
9
|
+
"POST_SUBMITTED",
|
|
10
|
+
"POST_RESULT",
|
|
11
|
+
"POST_ERROR",
|
|
12
|
+
"POST_INTERNAL_ERROR",
|
|
13
|
+
"PUT_SUBMITTED",
|
|
14
|
+
"PUT_RESULT",
|
|
15
|
+
"PUT_ERROR",
|
|
16
|
+
"PUT_INTERNAL_ERROR",
|
|
17
|
+
"PATCH_SUBMITTED",
|
|
18
|
+
"PATCH_RESULT",
|
|
19
|
+
"PATCH_ERROR",
|
|
20
|
+
"PATCH_INTERNAL_ERROR",
|
|
21
|
+
"DELETE_SUBMITTED",
|
|
22
|
+
"DELETE_RESULT",
|
|
23
|
+
"DELETE_ERROR",
|
|
24
|
+
"DELETE_INTERNAL_ERROR",
|
|
25
|
+
"UNAUTHORISED_ERROR",
|
|
26
|
+
"PERMISSION_DENIED_ERROR",
|
|
27
|
+
"NOT_FOUND_ERROR",
|
|
28
|
+
"ERROR",
|
|
29
|
+
"CONTEXT_ERROR"
|
|
30
|
+
]);
|
|
31
|
+
export var ErrorKind;
|
|
32
|
+
(function (ErrorKind) {
|
|
33
|
+
ErrorKind["Unauthorised"] = "Unauthorised";
|
|
34
|
+
ErrorKind["PermissionDenied"] = "PermissionDenied";
|
|
35
|
+
ErrorKind["NotFound"] = "NotFound";
|
|
36
|
+
ErrorKind["Other"] = "Other";
|
|
37
|
+
})(ErrorKind || (ErrorKind = {}));
|
|
38
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/rest/types.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAG1C,MAAM,CAAC,MAAM,MAAM,GAAG,SAAS,CAAA;AAC/B,MAAM,CAAC,MAAM,YAAY,GAAG,eAAe,CAAC,MAAM,EAAE;IAClD,mBAAmB;IACnB,gBAAgB;IAChB,eAAe;IACf,wBAAwB;IACxB,uBAAuB;IACvB,gBAAgB;IAChB,aAAa;IACb,YAAY;IACZ,qBAAqB;IACrB,eAAe;IACf,YAAY;IACZ,WAAW;IACX,oBAAoB;IACpB,iBAAiB;IACjB,cAAc;IACd,aAAa;IACb,sBAAsB;IACtB,kBAAkB;IAClB,eAAe;IACf,cAAc;IACd,uBAAuB;IACvB,oBAAoB;IACpB,yBAAyB;IACzB,iBAAiB;IACjB,OAAO;IACP,eAAe;CAChB,CAAC,CAAA;AA+EF,MAAM,CAAN,IAAY,SAKX;AALD,WAAY,SAAS;IACnB,0CAA6B,CAAA;IAC7B,kDAAqC,CAAA;IACrC,kCAAqB,CAAA;IACrB,4BAAe,CAAA;AACjB,CAAC,EALW,SAAS,KAAT,SAAS,QAKpB"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { PiReducer, ReduxAction, ReduxState } from "../types";
|
|
2
|
+
import { Bindings, ErrorAction, HttpResponse, RegisterGenericProps } from "./types";
|
|
3
|
+
import { RestContentType } from "./enums";
|
|
4
|
+
export declare function parseResponse(response: Response): Promise<[any, RestContentType, string, Response]>;
|
|
5
|
+
export declare function createErrorAction<R>(type: string, resp: HttpResponse, name: string, url: URL, request: R): ErrorAction<R>;
|
|
6
|
+
export type RequestF<S extends ReduxState, A extends ReduxAction> = (state: S, action: A) => [RequestInit, Bindings];
|
|
7
|
+
export declare function registerCommon<S extends ReduxState, A extends ReduxAction, R, C = any>(reducer: PiReducer, props: RegisterGenericProps<S, A, R, C>, requestF: RequestF<S, A>, submitType: string, resultType: string, errorType: string, intErrorType: string): void;
|
|
8
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/rest/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAa,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AACxE,OAAO,EAEL,QAAQ,EAER,WAAW,EAEX,YAAY,EACZ,oBAAoB,EAErB,MAAM,SAAS,CAAA;AAChB,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAEzC,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,QAAQ,GACjB,OAAO,CAAC,CAAC,GAAG,EAAE,eAAe,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAenD;AAED,wBAAgB,iBAAiB,CAAC,CAAC,EACjC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,YAAY,EAClB,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,GAAG,EACR,OAAO,EAAE,CAAC,GACT,WAAW,CAAC,CAAC,CAAC,CAoBhB;AAED,MAAM,MAAM,QAAQ,CAAC,CAAC,SAAS,UAAU,EAAE,CAAC,SAAS,WAAW,IAAI,CAClE,KAAK,EAAE,CAAC,EACR,MAAM,EAAE,CAAC,KACN,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAA;AAE5B,wBAAgB,cAAc,CAAC,CAAC,SAAS,UAAU,EAAE,CAAC,SAAS,WAAW,EAAE,CAAC,EAAE,CAAC,GAAG,GAAG,EACpF,OAAO,EAAE,SAAS,EAClB,KAAK,EAAE,oBAAoB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACvC,QAAQ,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,EACxB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,QA0HrB"}
|
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
import { ACTION_TYPES, ErrorKind, } from "./types";
|
|
2
|
+
import { RestContentType } from "./enums";
|
|
3
|
+
export function parseResponse(response) {
|
|
4
|
+
const mimeType = response.headers.get("content-type");
|
|
5
|
+
if (mimeType) {
|
|
6
|
+
switch (mimeType) {
|
|
7
|
+
case "application/json":
|
|
8
|
+
return response.json().then((j) => [j, RestContentType.Object, mimeType, response]);
|
|
9
|
+
case "application/jose":
|
|
10
|
+
return response.text().then((t) => [t, RestContentType.Text, mimeType, response]);
|
|
11
|
+
default:
|
|
12
|
+
if (mimeType.startsWith("text")) {
|
|
13
|
+
return response.text().then((t) => [t, RestContentType.Text, mimeType, response]);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
return response.blob().then((t) => [t, RestContentType.Blob, mimeType || "unknown", response]);
|
|
18
|
+
}
|
|
19
|
+
export function createErrorAction(type, resp, name, url, request) {
|
|
20
|
+
let error;
|
|
21
|
+
const status = resp.statusCode;
|
|
22
|
+
if (status === 401) {
|
|
23
|
+
error = ErrorKind.Unauthorised;
|
|
24
|
+
}
|
|
25
|
+
else if (status === 403) {
|
|
26
|
+
error = ErrorKind.PermissionDenied;
|
|
27
|
+
}
|
|
28
|
+
else if (status === 404) {
|
|
29
|
+
error = ErrorKind.NotFound;
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
error = ErrorKind.Other;
|
|
33
|
+
}
|
|
34
|
+
return {
|
|
35
|
+
type,
|
|
36
|
+
requestID: name,
|
|
37
|
+
error,
|
|
38
|
+
url: url.toString(),
|
|
39
|
+
request,
|
|
40
|
+
...resp,
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
export function registerCommon(reducer, props, requestF, submitType, resultType, errorType, intErrorType) {
|
|
44
|
+
const { name, origin = window.location.href, url, trigger, context, guard, headers, reply, error, } = props;
|
|
45
|
+
if (!name) {
|
|
46
|
+
throw Error('Missing "name"');
|
|
47
|
+
}
|
|
48
|
+
if (!url) {
|
|
49
|
+
throw Error('Missing "url"');
|
|
50
|
+
}
|
|
51
|
+
if (!trigger) {
|
|
52
|
+
throw Error('Missing "trigger"');
|
|
53
|
+
}
|
|
54
|
+
if (!reply) {
|
|
55
|
+
throw Error('Missing "reply"');
|
|
56
|
+
}
|
|
57
|
+
reducer.register(trigger, (state, action, dispatch) => {
|
|
58
|
+
const ctxtP = context ? context(action, state) : null;
|
|
59
|
+
if (ctxtP) {
|
|
60
|
+
// const s = current(state) // need
|
|
61
|
+
ctxtP
|
|
62
|
+
.then((ctxt) => handleEvent(null, action, dispatch, ctxt))
|
|
63
|
+
.catch((err) => {
|
|
64
|
+
const a = {
|
|
65
|
+
type: ACTION_TYPES.CONTEXT_ERROR,
|
|
66
|
+
error: err.toString(),
|
|
67
|
+
pendingAction: action
|
|
68
|
+
};
|
|
69
|
+
dispatch(a);
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
// we should remove state as argument
|
|
74
|
+
handleEvent(null, action, dispatch, {});
|
|
75
|
+
}
|
|
76
|
+
return state;
|
|
77
|
+
});
|
|
78
|
+
function handleEvent(state, action, dispatch, ctxt) {
|
|
79
|
+
if (guard) {
|
|
80
|
+
if (!guard(action, state, dispatch, ctxt)) {
|
|
81
|
+
return state;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
let bindings = {};
|
|
85
|
+
let request;
|
|
86
|
+
let url2;
|
|
87
|
+
try {
|
|
88
|
+
;
|
|
89
|
+
[request, bindings] = requestF(state, action);
|
|
90
|
+
if (headers) {
|
|
91
|
+
const h = headers(action, state, ctxt);
|
|
92
|
+
request.headers = request.headers ? { ...request.headers, ...h } : h;
|
|
93
|
+
}
|
|
94
|
+
let o;
|
|
95
|
+
if (typeof origin === "function") {
|
|
96
|
+
const ox = origin(action, state, ctxt);
|
|
97
|
+
o = ox instanceof URL ? ox.toString() : ox;
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
o = origin;
|
|
101
|
+
}
|
|
102
|
+
url2 = buildURL(url, o, bindings);
|
|
103
|
+
}
|
|
104
|
+
catch (e) {
|
|
105
|
+
dispatch({
|
|
106
|
+
type: intErrorType,
|
|
107
|
+
error: e === null || e === void 0 ? void 0 : e.message,
|
|
108
|
+
call: name,
|
|
109
|
+
action,
|
|
110
|
+
bindings,
|
|
111
|
+
});
|
|
112
|
+
return state;
|
|
113
|
+
}
|
|
114
|
+
dispatch({
|
|
115
|
+
type: submitType,
|
|
116
|
+
requestID: name,
|
|
117
|
+
url: url2.toString(),
|
|
118
|
+
bindings,
|
|
119
|
+
});
|
|
120
|
+
_fetch(url2, request)
|
|
121
|
+
.then((resp) => {
|
|
122
|
+
if (resp.statusCode < 300) {
|
|
123
|
+
const a = {
|
|
124
|
+
type: resultType,
|
|
125
|
+
queryID: name,
|
|
126
|
+
...resp,
|
|
127
|
+
url: url2.toString(),
|
|
128
|
+
request: action,
|
|
129
|
+
};
|
|
130
|
+
dispatch(a);
|
|
131
|
+
}
|
|
132
|
+
else {
|
|
133
|
+
const a = createErrorAction(errorType, resp, name, url2, action);
|
|
134
|
+
dispatch(a);
|
|
135
|
+
}
|
|
136
|
+
})
|
|
137
|
+
.catch((error) => console.log("_fetch", error));
|
|
138
|
+
return state;
|
|
139
|
+
}
|
|
140
|
+
reducer.register(resultType, (state, ra, dispatch) => {
|
|
141
|
+
return reply(state, ra.content, dispatch, ra);
|
|
142
|
+
});
|
|
143
|
+
if (error) {
|
|
144
|
+
reducer.register(errorType, (state, action, dispatch) => {
|
|
145
|
+
return error(state, action, action.request, dispatch);
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
function buildURL(url, origin, bindings) {
|
|
150
|
+
const u = new URL(url, origin);
|
|
151
|
+
u.pathname = u.pathname
|
|
152
|
+
.split("/")
|
|
153
|
+
.map((p) => {
|
|
154
|
+
return resolveBinding(p, bindings, encodeURIComponent);
|
|
155
|
+
})
|
|
156
|
+
.join("/");
|
|
157
|
+
if (u.search !== "") {
|
|
158
|
+
const params = new URLSearchParams();
|
|
159
|
+
u.searchParams.forEach((v, k) => {
|
|
160
|
+
const v2 = resolveBinding(v, bindings);
|
|
161
|
+
if (v2) {
|
|
162
|
+
params.set(k, v2);
|
|
163
|
+
}
|
|
164
|
+
});
|
|
165
|
+
u.search = "?" + params.toString();
|
|
166
|
+
}
|
|
167
|
+
return u;
|
|
168
|
+
}
|
|
169
|
+
function resolveBinding(value, bindings, encoder = undefined) {
|
|
170
|
+
const first = value[0];
|
|
171
|
+
if (first === ":" || first === "?") {
|
|
172
|
+
const k = value.slice(1);
|
|
173
|
+
let v = bindings[k];
|
|
174
|
+
if (v === undefined) {
|
|
175
|
+
if (first === "?") {
|
|
176
|
+
return undefined;
|
|
177
|
+
}
|
|
178
|
+
else {
|
|
179
|
+
throw new Error(`Missing binding '${k}'.`);
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
if (typeof v !== "string") {
|
|
183
|
+
v = `${v}`;
|
|
184
|
+
}
|
|
185
|
+
return encoder ? encoder(v) : v;
|
|
186
|
+
}
|
|
187
|
+
else {
|
|
188
|
+
return value;
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
function _fetch(url, request) {
|
|
192
|
+
return fetch(url, request)
|
|
193
|
+
.then(parseResponse)
|
|
194
|
+
.then(([content, contentType, mimeType, response]) => {
|
|
195
|
+
return {
|
|
196
|
+
statusCode: response.status,
|
|
197
|
+
content,
|
|
198
|
+
contentType,
|
|
199
|
+
mimeType,
|
|
200
|
+
size: getSize(response),
|
|
201
|
+
headers: response.headers,
|
|
202
|
+
};
|
|
203
|
+
});
|
|
204
|
+
}
|
|
205
|
+
function getSize(response) {
|
|
206
|
+
const s = response.headers.get("Content-Length");
|
|
207
|
+
if (!s) {
|
|
208
|
+
return -1;
|
|
209
|
+
}
|
|
210
|
+
return Number(s);
|
|
211
|
+
}
|
|
212
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/rest/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,YAAY,EAIZ,SAAS,GAIV,MAAM,SAAS,CAAA;AAChB,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAEzC,MAAM,UAAU,aAAa,CAC3B,QAAkB;IAElB,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;IACrD,IAAI,QAAQ,EAAE,CAAC;QACb,QAAQ,QAAQ,EAAE,CAAC;YACjB,KAAK,kBAAkB;gBACrB,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,eAAe,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAA;YACrF,KAAK,kBAAkB;gBACrB,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,eAAe,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAA;YACnF;gBACE,IAAI,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;oBAChC,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,eAAe,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAA;gBACnF,CAAC;QACL,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,eAAe,CAAC,IAAI,EAAE,QAAQ,IAAI,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAA;AAChG,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,IAAY,EACZ,IAAkB,EAClB,IAAY,EACZ,GAAQ,EACR,OAAU;IAEV,IAAI,KAAgB,CAAA;IACpB,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAA;IAC9B,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;QACnB,KAAK,GAAG,SAAS,CAAC,YAAY,CAAA;IAChC,CAAC;SAAM,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;QAC1B,KAAK,GAAG,SAAS,CAAC,gBAAgB,CAAA;IACpC,CAAC;SAAM,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;QAC1B,KAAK,GAAG,SAAS,CAAC,QAAQ,CAAA;IAC5B,CAAC;SAAM,CAAC;QACN,KAAK,GAAG,SAAS,CAAC,KAAK,CAAA;IACzB,CAAC;IACD,OAAO;QACL,IAAI;QACJ,SAAS,EAAE,IAAI;QACf,KAAK;QACL,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE;QACnB,OAAO;QACP,GAAG,IAAI;KACR,CAAA;AACH,CAAC;AAOD,MAAM,UAAU,cAAc,CAC5B,OAAkB,EAClB,KAAuC,EACvC,QAAwB,EACxB,UAAkB,EAClB,UAAkB,EAClB,SAAiB,EACjB,YAAoB;IAEpB,MAAM,EACJ,IAAI,EACJ,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,EAC7B,GAAG,EACH,OAAO,EACP,OAAO,EACP,KAAK,EACL,OAAO,EACP,KAAK,EACL,KAAK,GACN,GAAG,KAAK,CAAA;IAET,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,KAAK,CAAC,gBAAgB,CAAC,CAAA;IAC/B,CAAC;IACD,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,KAAK,CAAC,eAAe,CAAC,CAAA;IAC9B,CAAC;IACD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,KAAK,CAAC,mBAAmB,CAAC,CAAA;IAClC,CAAC;IACD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,KAAK,CAAC,iBAAiB,CAAC,CAAA;IAChC,CAAC;IAED,OAAO,CAAC,QAAQ,CACd,OAAO,EACP,CAAC,KAAQ,EAAE,MAAS,EAAE,QAAmB,EAAE,EAAE;QAC3C,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;QACrD,IAAI,KAAK,EAAE,CAAC;YACV,mCAAmC;YACnC,KAAK;iBACF,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,IAAoB,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;iBACzE,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBACb,MAAM,CAAC,GAAuB;oBAC5B,IAAI,EAAE,YAAY,CAAC,aAAa;oBAChC,KAAK,EAAE,GAAG,CAAC,QAAQ,EAAE;oBACrB,aAAa,EAAE,MAAM;iBACtB,CAAA;gBACD,QAAQ,CAAC,CAAC,CAAC,CAAA;YACb,CAAC,CAAC,CAAA;QACN,CAAC;aAAM,CAAC;YACN,qCAAqC;YACrC,WAAW,CAAC,IAAoB,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAS,CAAC,CAAA;QAChE,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC,CAAC,CAAA;IAEJ,SAAS,WAAW,CAAC,KAAQ,EAAE,MAAS,EAAE,QAAmB,EAAE,IAAO;QACpE,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC;gBAC1C,OAAO,KAAK,CAAA;YACd,CAAC;QACH,CAAC;QACD,IAAI,QAAQ,GAAa,EAAE,CAAA;QAC3B,IAAI,OAAoB,CAAA;QACxB,IAAI,IAAS,CAAA;QACb,IAAI,CAAC;YACH,CAAC;YAAA,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;YAC9C,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;gBACtC,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;YACtE,CAAC;YACD,IAAI,CAAS,CAAA;YACb,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE,CAAC;gBACjC,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;gBACtC,CAAC,GAAG,EAAE,YAAY,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;YAC5C,CAAC;iBAAM,CAAC;gBACN,CAAC,GAAG,MAAM,CAAA;YACZ,CAAC;YACD,IAAI,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAA;QACnC,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,QAAQ,CAAC;gBACP,IAAI,EAAE,YAAY;gBAClB,KAAK,EAAE,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,OAAO;gBACjB,IAAI,EAAE,IAAI;gBACV,MAAM;gBACN,QAAQ;aACT,CAAC,CAAA;YACF,OAAO,KAAK,CAAA;QACd,CAAC;QAED,QAAQ,CAAC;YACP,IAAI,EAAE,UAAU;YAChB,SAAS,EAAE,IAAI;YACf,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE;YACpB,QAAQ;SACT,CAAC,CAAA;QACF,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC;aAClB,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;YACb,IAAI,IAAI,CAAC,UAAU,GAAG,GAAG,EAAE,CAAC;gBAC1B,MAAM,CAAC,GAAoB;oBACzB,IAAI,EAAE,UAAU;oBAChB,OAAO,EAAE,IAAI;oBACb,GAAG,IAAI;oBACP,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE;oBACpB,OAAO,EAAE,MAAM;iBAChB,CAAA;gBACD,QAAQ,CAAC,CAAC,CAAC,CAAA;YACb,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,GAAG,iBAAiB,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;gBAChE,QAAQ,CAAC,CAAC,CAAC,CAAA;YACb,CAAC;QACH,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAA;QACjD,OAAO,KAAK,CAAA;IACd,CAAC;IAED,OAAO,CAAC,QAAQ,CAAqB,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE;QACvE,OAAO,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAA;IAC/C,CAAC,CAAC,CAAA;IAEF,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,CAAC,QAAQ,CACd,SAAS,EACT,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE;YAC1B,OAAO,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;QACvD,CAAC,CACF,CAAA;IACH,CAAC;AACH,CAAC;AAED,SAAS,QAAQ,CAAC,GAAW,EAAE,MAAc,EAAE,QAAkB;IAC/D,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;IAC9B,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ;SACpB,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACT,OAAO,cAAc,CAAC,CAAC,EAAE,QAAQ,EAAE,kBAAkB,CAAC,CAAA;IACxD,CAAC,CAAC;SACD,IAAI,CAAC,GAAG,CAAC,CAAA;IACZ,IAAI,CAAC,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;QACpB,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAA;QACpC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YAC9B,MAAM,EAAE,GAAG,cAAc,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAA;YACtC,IAAI,EAAE,EAAE,CAAC;gBACP,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;YACnB,CAAC;QACH,CAAC,CAAC,CAAA;QACF,CAAC,CAAC,MAAM,GAAG,GAAG,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAA;IACpC,CAAC;IACD,OAAO,CAAC,CAAA;AACV,CAAC;AAED,SAAS,cAAc,CACrB,KAAa,EACb,QAAkB,EAClB,UAA+C,SAAS;IAExD,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;IACtB,IAAI,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;QACnC,MAAM,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QACxB,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;QACnB,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;YACpB,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;gBAClB,OAAO,SAAS,CAAA;YAClB,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAA;YAC5C,CAAC;QACH,CAAC;QACD,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;YAC1B,CAAC,GAAG,GAAG,CAAC,EAAE,CAAA;QACZ,CAAC;QACD,OAAO,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACjC,CAAC;SAAM,CAAC;QACN,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC;AAED,SAAS,MAAM,CAAC,GAAQ,EAAE,OAAoB;IAC5C,OAAO,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC;SACvB,IAAI,CAAC,aAAa,CAAC;SACnB,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,EAAE;QACnD,OAAO;YACL,UAAU,EAAE,QAAQ,CAAC,MAAM;YAC3B,OAAO;YACP,WAAW;YACX,QAAQ;YACR,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC;YACvB,OAAO,EAAE,QAAQ,CAAC,OAAO;SAC1B,CAAA;IACH,CAAC,CAAC,CAAA;AACN,CAAC;AAED,SAAS,OAAO,CAAC,QAAkB;IACjC,MAAM,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAA;IAChD,IAAI,CAAC,CAAC,EAAE,CAAC;QACP,OAAO,CAAC,CAAC,CAAA;IACX,CAAC;IACD,OAAO,MAAM,CAAC,CAAC,CAAC,CAAA;AAClB,CAAC"}
|
package/dist/router.d.ts
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { DispatchF, PathQuery, PiReducer, ReduceF, ReduxAction, ReduxState, Route } from './types';
|
|
2
|
+
import { PiRegister } from '.';
|
|
3
|
+
export declare const browserHistory: import("history").BrowserHistory;
|
|
4
|
+
export declare const ACTION_TYPES: {
|
|
5
|
+
SHOW_PAGE: string;
|
|
6
|
+
NAVIGATE_TO_PAGE: string;
|
|
7
|
+
};
|
|
8
|
+
export type ShowPageEvent = {
|
|
9
|
+
path: string[];
|
|
10
|
+
query?: PathQuery;
|
|
11
|
+
fromBrowser?: boolean;
|
|
12
|
+
};
|
|
13
|
+
export declare const onShowPage: <S extends ReduxState>(register: PiRegister, f: ReduceF<S, ReduxAction & ShowPageEvent>) => void;
|
|
14
|
+
export declare const showPage: (dispatch: DispatchF, path: string[], query?: PathQuery) => void;
|
|
15
|
+
export declare const createShowPageAction: (path: string[], query?: PathQuery) => ReduxAction & ShowPageEvent;
|
|
16
|
+
export type NavigateToPageEvent = {
|
|
17
|
+
url: string;
|
|
18
|
+
fromBrowser: boolean;
|
|
19
|
+
};
|
|
20
|
+
export declare const onNavigateToPage: <S extends ReduxState>(register: PiRegister, f: ReduceF<S, ReduxAction & NavigateToPageEvent>) => void;
|
|
21
|
+
export declare const ON_INIT_ACTION = "pi/start";
|
|
22
|
+
export declare const onInit: <S extends ReduxState>(register: PiRegister, f: ReduceF<S, ReduxAction>) => void;
|
|
23
|
+
export declare function currentRoute(pathPrefix?: string): Route;
|
|
24
|
+
export declare function init(reducer: PiReducer, pathPrefix?: string): Route;
|
|
25
|
+
//# sourceMappingURL=router.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AACnG,OAAO,EAAE,UAAU,EAAE,MAAM,GAAG,CAAC;AAG/B,eAAO,MAAM,cAAc,kCAAyB,CAAC;AASrD,eAAO,MAAM,YAAY;;;CAAkE,CAAC;AAE5F,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB,CAAA;AACD,eAAO,MAAM,UAAU,mCA6IX,UAAU,iDAEjB,IAAI,AA/IsE,CAAA;AAE/E,eAAO,MAAM,QAAQ,aAAc,SAAS,QAAQ,MAAM,EAAE,UAAU,SAAS,SAE9E,CAAA;AAED,eAAO,MAAM,oBAAoB,SAAU,MAAM,EAAE,UAAU,SAAS,KAAG,WAAW,GAAG,aAGrF,CAAA;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,GAAG,EAAE,MAAM,CAAA;IACX,WAAW,EAAE,OAAO,CAAA;CACrB,CAAA;AACD,eAAO,MAAM,gBAAgB,mCA8HjB,UAAU,uDAEjB,IAAI,AAhIyF,CAAA;AAElG,eAAO,MAAM,cAAc,aAAa,CAAA;AACxC,eAAO,MAAM,MAAM,mCA2HP,UAAU,iCAEjB,IAAI,AA7H+C,CAAA;AAExD,wBAAgB,YAAY,CAAC,UAAU,SAAK,GAAG,KAAK,CAMnD;AAED,wBAAgB,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,UAAU,SAAK,GAAG,KAAK,CAiE/D"}
|
package/dist/router.js
ADDED
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
import { createBrowserHistory } from 'history';
|
|
2
|
+
import { getLogger } from './logger';
|
|
3
|
+
import { registerActions } from './redux';
|
|
4
|
+
const logger = getLogger("router");
|
|
5
|
+
export const browserHistory = createBrowserHistory();
|
|
6
|
+
// type Route = {
|
|
7
|
+
// path: string[]
|
|
8
|
+
// query: PathQuery
|
|
9
|
+
// url: string
|
|
10
|
+
// fromBrowser?: boolean
|
|
11
|
+
// }
|
|
12
|
+
export const ACTION_TYPES = registerActions('pi/router', ['show_page', 'navigate_to_page']);
|
|
13
|
+
export const onShowPage = createOnAction(ACTION_TYPES.SHOW_PAGE);
|
|
14
|
+
export const showPage = (dispatch, path, query) => {
|
|
15
|
+
dispatch(createShowPageAction(path, query));
|
|
16
|
+
};
|
|
17
|
+
export const createShowPageAction = (path, query) => ({
|
|
18
|
+
type: ACTION_TYPES.SHOW_PAGE,
|
|
19
|
+
path, query, fromBrowser: false
|
|
20
|
+
});
|
|
21
|
+
export const onNavigateToPage = createOnAction(ACTION_TYPES.NAVIGATE_TO_PAGE);
|
|
22
|
+
export const ON_INIT_ACTION = "pi/start";
|
|
23
|
+
export const onInit = createOnAction(ON_INIT_ACTION);
|
|
24
|
+
export function currentRoute(pathPrefix = '') {
|
|
25
|
+
const f = route_functions(pathPrefix);
|
|
26
|
+
const r2 = f.url2route(window.location.href);
|
|
27
|
+
const r = f.location2route(browserHistory.location);
|
|
28
|
+
return r;
|
|
29
|
+
}
|
|
30
|
+
export function init(reducer, pathPrefix = '') {
|
|
31
|
+
let workingURL;
|
|
32
|
+
const f = route_functions(pathPrefix);
|
|
33
|
+
browserHistory.listen(({ action, location }) => {
|
|
34
|
+
// location is an object like window.location
|
|
35
|
+
const { url } = f.location2route(location);
|
|
36
|
+
if (workingURL !== url) {
|
|
37
|
+
logger.info('browser history:', url, action);
|
|
38
|
+
setTimeout(() => navigateToPage(url, action === 'POP'));
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
function browserPath() {
|
|
42
|
+
return f.location2route(browserHistory.location);
|
|
43
|
+
}
|
|
44
|
+
function navigateToPage(url, fromBrowser = false) {
|
|
45
|
+
reducer.dispatch({
|
|
46
|
+
type: ACTION_TYPES.NAVIGATE_TO_PAGE,
|
|
47
|
+
url,
|
|
48
|
+
fromBrowser,
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
reducer.register(ACTION_TYPES.NAVIGATE_TO_PAGE, (state, { url, fromBrowser }, dispatch) => {
|
|
52
|
+
var _a;
|
|
53
|
+
const r = f.url2route(url);
|
|
54
|
+
r.fromBrowser = fromBrowser;
|
|
55
|
+
if (workingURL && ((_a = state.route) === null || _a === void 0 ? void 0 : _a.url) === r.url) {
|
|
56
|
+
return state;
|
|
57
|
+
}
|
|
58
|
+
dispatch({
|
|
59
|
+
type: ACTION_TYPES.SHOW_PAGE,
|
|
60
|
+
...r,
|
|
61
|
+
});
|
|
62
|
+
return state;
|
|
63
|
+
});
|
|
64
|
+
reducer.register(ACTION_TYPES.SHOW_PAGE, (state, { path, query = {}, fromBrowser = false }) => {
|
|
65
|
+
const route = f.pathl2route(path, query);
|
|
66
|
+
workingURL = route.url;
|
|
67
|
+
if (!fromBrowser) {
|
|
68
|
+
const hp = browserPath();
|
|
69
|
+
if (route.url !== hp.url) {
|
|
70
|
+
browserHistory.push(route.url);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
state.route = {
|
|
74
|
+
...route,
|
|
75
|
+
fromBrowser,
|
|
76
|
+
};
|
|
77
|
+
return state;
|
|
78
|
+
});
|
|
79
|
+
reducer.register('@@INIT', (state) => {
|
|
80
|
+
const url = browserPath().url;
|
|
81
|
+
logger.info(`Request navigation to '${url}'`);
|
|
82
|
+
setTimeout(() => navigateToPage(url, true));
|
|
83
|
+
return state;
|
|
84
|
+
});
|
|
85
|
+
return f.location2route(browserHistory.location);
|
|
86
|
+
}
|
|
87
|
+
;
|
|
88
|
+
function route_functions(pathPrefix = '') {
|
|
89
|
+
const location2route = (location) => {
|
|
90
|
+
const [p, s] = [location.pathname, location.search];
|
|
91
|
+
const url = s ? `${p}${s}` : p;
|
|
92
|
+
return url2route(url);
|
|
93
|
+
};
|
|
94
|
+
const url2route = (url) => {
|
|
95
|
+
const [pn, search] = url.split("?");
|
|
96
|
+
const path = pn.substring(pathPrefix.length).split('/').filter(s => s !== '');
|
|
97
|
+
const query = {};
|
|
98
|
+
const s = search;
|
|
99
|
+
if (s && s.length > 0) {
|
|
100
|
+
s.split('&').forEach((el) => {
|
|
101
|
+
const [k, v] = el.split('=');
|
|
102
|
+
query[decodeURI(k)] = v ? decodeURI(v) : true;
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
return { url, path, query };
|
|
106
|
+
};
|
|
107
|
+
const pathl2route = (path, query) => {
|
|
108
|
+
let url = `${pathPrefix}/${path.join('/')}`;
|
|
109
|
+
if (query) {
|
|
110
|
+
const qa = Object.entries(query);
|
|
111
|
+
if (qa.length > 0) {
|
|
112
|
+
const s = qa.map(([k, v]) => {
|
|
113
|
+
const n = encodeURI(k);
|
|
114
|
+
if (typeof v === 'boolean') {
|
|
115
|
+
return n;
|
|
116
|
+
}
|
|
117
|
+
else if (typeof v === 'number') {
|
|
118
|
+
return `${n}=${v}`;
|
|
119
|
+
}
|
|
120
|
+
else {
|
|
121
|
+
return `${n}=${encodeURI(v)}`;
|
|
122
|
+
}
|
|
123
|
+
}).join('&');
|
|
124
|
+
url = `${url}?${s}`;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
return { url, path, query };
|
|
128
|
+
};
|
|
129
|
+
return { location2route, url2route, pathl2route };
|
|
130
|
+
}
|
|
131
|
+
function createOnAction(actionType) {
|
|
132
|
+
return (register, f) => {
|
|
133
|
+
register.reducer.register(actionType, f);
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
//# sourceMappingURL=router.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"router.js","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"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"}
|
package/dist/store.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":""}
|
package/dist/store.js
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// import { configureStore, ThunkAction, Action } from "@reduxjs/toolkit"
|
|
3
|
+
// import counterReducer from "../UNUSED/features/counter/counterSlice"
|
|
4
|
+
// export type Store = any
|
|
5
|
+
// export const store: Store = configureStore({
|
|
6
|
+
// reducer: {
|
|
7
|
+
// counter: counterReducer,
|
|
8
|
+
// },
|
|
9
|
+
// })
|
|
10
|
+
// export type AppDispatch = typeof store.dispatch
|
|
11
|
+
// export type RootState = ReturnType<typeof store.getState>
|
|
12
|
+
// export type AppThunk<ReturnType = void> = ThunkAction<
|
|
13
|
+
// ReturnType,
|
|
14
|
+
// RootState,
|
|
15
|
+
// unknown,
|
|
16
|
+
// Action<string>
|
|
17
|
+
// >
|
|
18
|
+
//# sourceMappingURL=store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":";AAAA,yEAAyE;AACzE,uEAAuE;AAEvE,0BAA0B;AAE1B,+CAA+C;AAC/C,eAAe;AACf,+BAA+B;AAC/B,OAAO;AACP,KAAK;AAEL,kDAAkD;AAClD,4DAA4D;AAC5D,yDAAyD;AACzD,gBAAgB;AAChB,eAAe;AACf,aAAa;AACb,mBAAmB;AACnB,IAAI"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
export type ReduxState = {
|
|
3
|
+
route: Route;
|
|
4
|
+
pihanga?: {
|
|
5
|
+
[key: string]: any;
|
|
6
|
+
};
|
|
7
|
+
};
|
|
8
|
+
export type Route = {
|
|
9
|
+
path: string[];
|
|
10
|
+
query: PathQuery;
|
|
11
|
+
url: string;
|
|
12
|
+
fromBrowser?: boolean;
|
|
13
|
+
};
|
|
14
|
+
export type PathQuery = {
|
|
15
|
+
[k: string]: string | number | boolean;
|
|
16
|
+
};
|
|
17
|
+
export type ReduxAction = {
|
|
18
|
+
type: string;
|
|
19
|
+
};
|
|
20
|
+
export type CardAction = ReduxAction & {
|
|
21
|
+
cardID: string;
|
|
22
|
+
};
|
|
23
|
+
export type PiRegisterComponent = {
|
|
24
|
+
name: string;
|
|
25
|
+
component: any;
|
|
26
|
+
events?: {
|
|
27
|
+
[key: string]: string;
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
export type ReduceF<S extends ReduxState, A extends ReduxAction> = (state: S, action: A, dispatch: DispatchF) => S;
|
|
31
|
+
export type ReduceOnceF<S extends ReduxState, A extends ReduxAction> = (state: S, action: A, dispatch: DispatchF) => [S, boolean];
|
|
32
|
+
export type DispatchF = <T extends ReduxAction>(a: T) => void;
|
|
33
|
+
export interface PiReducer {
|
|
34
|
+
register: PiRegisterReducerF;
|
|
35
|
+
registerOneShot: PiRegisterOneShotReducerF;
|
|
36
|
+
dispatch: DispatchF;
|
|
37
|
+
dispatchFromReducer: DispatchF;
|
|
38
|
+
}
|
|
39
|
+
export type PiRegisterReducerF = <S extends ReduxState, A extends ReduxAction>(eventType: string, mapper: ReduceF<S, A>, // (state: S, action: A, dispatch: DispatchF) => S,
|
|
40
|
+
priority?: number) => void;
|
|
41
|
+
export type PiRegisterOneShotReducerF = <S extends ReduxState, A extends ReduxAction>(eventType: string, mapper: ReduceOnceF<S, A>, priority?: number) => void;
|
|
42
|
+
export type PiDefCtxtProps = {
|
|
43
|
+
[k: string]: any;
|
|
44
|
+
};
|
|
45
|
+
export type CardProp = {
|
|
46
|
+
cardName: PiCardRef;
|
|
47
|
+
cardKey?: string;
|
|
48
|
+
parentCard: string;
|
|
49
|
+
} & PiDefCtxtProps;
|
|
50
|
+
export type PiCardProps<P, E = {}> = P & {
|
|
51
|
+
cardName: string;
|
|
52
|
+
children?: React.ReactNode[];
|
|
53
|
+
_cls: (elName: string | string[], styles?: CSSModuleClasses) => string;
|
|
54
|
+
_dispatch: DispatchF;
|
|
55
|
+
} & {
|
|
56
|
+
[Key in keyof E]: (ev: E[Key]) => void;
|
|
57
|
+
};
|
|
58
|
+
export type CSSModuleClasses = {
|
|
59
|
+
readonly [key: string]: string;
|
|
60
|
+
};
|
|
61
|
+
export type PiCardRef = string | PiCardDef;
|
|
62
|
+
export type RefF = any;
|
|
63
|
+
export type StateMapper<T, S extends ReduxState, C = PiDefCtxtProps> = (state: S, context: StateMapperContext<C>) => T;
|
|
64
|
+
export type StateMapperContext<C> = {
|
|
65
|
+
cardName: string;
|
|
66
|
+
cardKey?: string;
|
|
67
|
+
ctxtProps: C;
|
|
68
|
+
ref?: RefF;
|
|
69
|
+
};
|
|
70
|
+
export type PiMapProps<CType, S extends ReduxState, EType = {}, C = PiDefCtxtProps> = {
|
|
71
|
+
[Property in keyof CType]: CType[Property] | StateMapper<CType[Property], S, C>;
|
|
72
|
+
} & EventHandler<EType, S> & EventMapper<EType>;
|
|
73
|
+
export type EventHandler<T, S extends ReduxState> = {
|
|
74
|
+
[Key in keyof T]?: ReduceF<S, T[Key] & ReduxAction>;
|
|
75
|
+
};
|
|
76
|
+
export type EventMapper<T> = {
|
|
77
|
+
[Key in keyof T as `${Key & string}Mapper`]?: (ev: T[Key]) => ReduxAction | null;
|
|
78
|
+
};
|
|
79
|
+
export type GenericCardParameterT = unknown | StateMapper<unknown, ReduxState, unknown>;
|
|
80
|
+
export type PiCardDef = {
|
|
81
|
+
cardType: string;
|
|
82
|
+
} & {
|
|
83
|
+
[k: string]: GenericCardParameterT;
|
|
84
|
+
};
|
|
85
|
+
export type PiRegisterMetaCard = {
|
|
86
|
+
type: string;
|
|
87
|
+
mapper: MetaCardMapperF;
|
|
88
|
+
events?: {
|
|
89
|
+
[key: string]: string;
|
|
90
|
+
};
|
|
91
|
+
};
|
|
92
|
+
export type RegisterCardF = (name: string, parameters: PiCardDef) => PiCardRef;
|
|
93
|
+
export type MetaCardMapperF = (name: string, props: any, registerCard: RegisterCardF) => PiCardDef;
|
|
94
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|