redux-paginator-immutable 19.0.1 → 19.1.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/agent.d.ts +1 -1
- package/agent.js +3 -2
- package/agent.js.map +1 -1
- package/createPaginator.js +5 -1
- package/createPaginator.js.map +1 -1
- package/fetcherRegistry.d.ts +2 -0
- package/fetcherRegistry.js +10 -0
- package/fetcherRegistry.js.map +1 -0
- package/index.d.ts +1 -0
- package/package.json +1 -1
- package/paginatorMiddleware.js +72 -33
- package/paginatorMiddleware.js.map +1 -1
- package/reducerItemData.js +3 -3
- package/reducerItemData.js.map +1 -1
- package/types.d.ts +2 -0
package/agent.d.ts
CHANGED
|
@@ -4,5 +4,5 @@ type FetchPageArgs = {
|
|
|
4
4
|
page: number;
|
|
5
5
|
token: string;
|
|
6
6
|
};
|
|
7
|
-
export declare const
|
|
7
|
+
export declare const fetchPage: ({ endpoint, pageArgName, page, token, }: FetchPageArgs) => any;
|
|
8
8
|
export {};
|
package/agent.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/* eslint-disable no-bitwise*/
|
|
2
2
|
import qs from "query-string";
|
|
3
3
|
import agent from "superagent";
|
|
4
|
-
|
|
4
|
+
const buildSuffix = (pageArgName, page, params) => {
|
|
5
5
|
const parsedParams = qs.parse(params);
|
|
6
6
|
let finalParsedParams = {}, startString = "";
|
|
7
7
|
for (const key of Object.keys(parsedParams)) {
|
|
@@ -19,7 +19,8 @@ export const buildSuffix = (pageArgName, page, params) => {
|
|
|
19
19
|
return startString + qs.stringify(Object.assign(Object.assign({}, finalParsedParams), { [pageArgName]: page }), {
|
|
20
20
|
encode: false,
|
|
21
21
|
}).replace(startString, "");
|
|
22
|
-
}
|
|
22
|
+
};
|
|
23
|
+
export const fetchPage = ({ endpoint, pageArgName, page, token, }) => {
|
|
23
24
|
const suffix = buildSuffix(pageArgName, page, token), url = endpoint + suffix, promise = new Promise((resolve, reject) => (agent.
|
|
24
25
|
get(url).
|
|
25
26
|
end((err, res) => err ? reject(err) : resolve(res))));
|
package/agent.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"AAAA,8BAA8B;AAS9B,OAAO,EAAE,MAAM,cAAc,CAAC;AAC9B,OAAO,KAAK,MAAM,YAAY,CAAC;AAE/B,
|
|
1
|
+
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"AAAA,8BAA8B;AAS9B,OAAO,EAAE,MAAM,cAAc,CAAC;AAC9B,OAAO,KAAK,MAAM,YAAY,CAAC;AAE/B,MACE,WAAW,GAAG,CAAC,WAAmB,EAAE,IAAY,EAAE,MAAc,EAAE,EAAE;IAClE,MAAM,YAAY,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACtC,IAAI,iBAAiB,GAAG,EAAE,EACxB,WAAW,GAAG,EAAE,CAAC;IAEnB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;QAC5C,IAAI,YAAY,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;YAC/B,WAAW,IAAI,GAAG,CAAC;QACrB,CAAC;aAAM,CAAC;YACN,iBAAiB,mCAAQ,iBAAiB,KACxC,CAAC,GAAG,CAAC,EAAE,YAAY,CAAC,GAAG,CAAC,GACzB,CAAC;QACJ,CAAC;IACH,CAAC;IAED,WAAW,GAAG,WAAW,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,WAAW,GAAG,CAAC;IAE3D,IAAI,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC;QAC3E,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;IACvD,CAAC;IAED,OAAO,WAAW,GAAG,EAAE,CAAC,SAAS,iCAAM,iBAAiB,KACtD,CAAC,WAAW,CAAC,EAAE,IAAI,KAClB;QACD,MAAM,EAAE,KAAK;KACd,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;AAC9B,CAAC,CAAC;AAEJ,MAAM,CAAC,MACL,SAAS,GAAG,CAAC,EACX,QAAQ,EACR,WAAW,EACX,IAAI,EACJ,KAAK,GACS,EAAE,EAAE;IAClB,MAAM,MAAM,GAAG,WAAW,CAAC,WAAW,EAAE,IAAI,EAAE,KAAK,CAAC,EAClD,GAAG,GAAG,QAAQ,GAAG,MAAM,EACvB,OAAO,GAAQ,IAAI,OAAO,CACxB,CAAC,OAAY,EAAE,MAAW,EAAE,EAAE,CAAC,CAC7B,KAAK;QACH,GAAG,CAAC,GAAG,CAAC;QACR,GAAG,CAAC,CAAC,GAAQ,EAAE,GAAQ,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAChE,CACF,CAAC;IAEJ,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,GAEpB,EAAE,EAAE,CAAC,CAAC;QACL,QAAQ,EAAE,GAAG,CAAC,IAAI;KACnB,CAAC,CAAC,CAAC;AACN,CAAC,CAAC"}
|
package/createPaginator.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
const defaultRowsPerLoad = 25;
|
|
2
2
|
import * as Immutable from "immutable";
|
|
3
3
|
import actions from "./actions.js";
|
|
4
|
+
import { registerFetcher } from "./fetcherRegistry.js";
|
|
4
5
|
import { dataItems as dataItemsReducer, items as itemsReducer, pages as pagesReducer } from "./reducers.js";
|
|
5
6
|
const getEndpoint = (data) => {
|
|
6
7
|
if (typeof data === "object") {
|
|
@@ -20,7 +21,7 @@ const getEndpoint = (data) => {
|
|
|
20
21
|
return reducer(state, action);
|
|
21
22
|
};
|
|
22
23
|
export const createPaginator = (endpointData, settings) => {
|
|
23
|
-
const { path: endpoint, cb: endpointCb, } = getEndpoint(endpointData), { key, normalizeDataItem, dataItemURL, manageEntity, resultsKey, totalKey = "Total", pageArgName = "page", idKey = "ID", rowsPerLoad = defaultRowsPerLoad, manipulateItems = (items) => items, } = settings, endpointedActions = {
|
|
24
|
+
const { path: endpoint, cb: endpointCb, } = getEndpoint(endpointData), { key, normalizeDataItem, dataItemURL, manageEntity, resultsKey, totalKey = "Total", pageArgName = "page", idKey = "ID", rowsPerLoad = defaultRowsPerLoad, manipulateItems = (items) => items, fetcher, } = settings, endpointedActions = {
|
|
24
25
|
requestPage: (page, token) => actions.requestPage({
|
|
25
26
|
endpoint,
|
|
26
27
|
endpointCb,
|
|
@@ -45,6 +46,9 @@ export const createPaginator = (endpointData, settings) => {
|
|
|
45
46
|
return actions.clearData(endpoint);
|
|
46
47
|
},
|
|
47
48
|
};
|
|
49
|
+
if (typeof fetcher === "function") {
|
|
50
|
+
registerFetcher(endpoint, fetcher);
|
|
51
|
+
}
|
|
48
52
|
return Object.assign({ key,
|
|
49
53
|
normalizeDataItem,
|
|
50
54
|
dataItemURL,
|
package/createPaginator.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createPaginator.js","sourceRoot":"","sources":["../src/createPaginator.ts"],"names":[],"mappings":"AAAA,MAAM,kBAAkB,GAAG,EAAE,CAAC;AAE9B,OAAO,KAAK,SAAS,MAAM,WAAW,CAAC;AACvC,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,EAAE,SAAS,IAAI,gBAAgB,EAAE,KAAK,IAAI,YAAY,EAAE,KAAK,IAAI,YAAY,EAAE,MAAM,YAAY,CAAC;AAgBzG,MAAM,WAAW,GAAG,CAAC,IAAc,EAAE,EAAE;IACnC,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,OAAO;YACL,IAAI,EAAG,IAAI,CAAC,IAAI;YAChB,EAAE,EAAK,IAAI,CAAC,EAAE;SACf,CAAC;IACJ,CAAC;IAED,OAAO;QACL,IAAI,EAAG,IAAI;QACX,EAAE,EAAK,IAAI;KACZ,CAAC;AACJ,CAAC,EACD,eAAe,GAAG,CAAC,QAAiB,EAAE,OAAa,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,SAAS,CAAC,GAAG,EAAE,EAAE,MAAe,EAAE,EAAE;IACnG,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,WAAW,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC5E,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAChC,CAAC,CAAC;AAEJ,MAAM,CAAC,MACL,eAAe,GAAG,CAAC,YAAsB,EAAE,QAA2B,EAAE,EAAE;IACxE,MACE,EACE,IAAI,EAAE,QAAQ,EACd,EAAE,EAAE,UAAU,GACf,GAAG,WAAW,CAAC,YAAY,CAAC,EAC7B,EACE,GAAG,EACH,iBAAiB,EACjB,WAAW,EACX,YAAY,EACZ,UAAU,EACV,QAAQ,GAAG,OAAO,EAClB,WAAW,GAAG,MAAM,EACpB,KAAK,GAAG,IAAI,EACZ,WAAW,GAAG,kBAAkB,EAChC,eAAe,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,
|
|
1
|
+
{"version":3,"file":"createPaginator.js","sourceRoot":"","sources":["../src/createPaginator.ts"],"names":[],"mappings":"AAAA,MAAM,kBAAkB,GAAG,EAAE,CAAC;AAE9B,OAAO,KAAK,SAAS,MAAM,WAAW,CAAC;AACvC,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,SAAS,IAAI,gBAAgB,EAAE,KAAK,IAAI,YAAY,EAAE,KAAK,IAAI,YAAY,EAAE,MAAM,YAAY,CAAC;AAgBzG,MAAM,WAAW,GAAG,CAAC,IAAc,EAAE,EAAE;IACnC,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,OAAO;YACL,IAAI,EAAG,IAAI,CAAC,IAAI;YAChB,EAAE,EAAK,IAAI,CAAC,EAAE;SACf,CAAC;IACJ,CAAC;IAED,OAAO;QACL,IAAI,EAAG,IAAI;QACX,EAAE,EAAK,IAAI;KACZ,CAAC;AACJ,CAAC,EACD,eAAe,GAAG,CAAC,QAAiB,EAAE,OAAa,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,SAAS,CAAC,GAAG,EAAE,EAAE,MAAe,EAAE,EAAE;IACnG,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,WAAW,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC5E,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAChC,CAAC,CAAC;AAEJ,MAAM,CAAC,MACL,eAAe,GAAG,CAAC,YAAsB,EAAE,QAA2B,EAAE,EAAE;IACxE,MACE,EACE,IAAI,EAAE,QAAQ,EACd,EAAE,EAAE,UAAU,GACf,GAAG,WAAW,CAAC,YAAY,CAAC,EAC7B,EACE,GAAG,EACH,iBAAiB,EACjB,WAAW,EACX,YAAY,EACZ,UAAU,EACV,QAAQ,GAAG,OAAO,EAClB,WAAW,GAAG,MAAM,EACpB,KAAK,GAAG,IAAI,EACZ,WAAW,GAAG,kBAAkB,EAChC,eAAe,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,EAClC,OAAO,GACR,GAAG,QAAQ,EACZ,iBAAiB,GAAG;QAClB,WAAW,EAAE,CAAC,IAAY,EAAE,KAAa,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC;YAChE,QAAQ;YACR,UAAU;YACV,YAAY;YACZ,UAAU;YACV,QAAQ;YACR,WAAW;YACX,KAAK;YACL,IAAI;YACJ,KAAK;SACN,CAAC;QAEF,SAAS,CAAE,KAAW;YACpB,OAAO,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAC5C,CAAC;QAED,UAAU,CAAE,EAAE,IAAI,EAAE,KAAK,EAAoC;YAC3D,OAAO,OAAO,CAAC,UAAU,CAAC,QAAQ,EAAE;gBAClC,IAAI;gBACJ,KAAK;aACN,CAAC,CAAC;QACL,CAAC;QAED,SAAS;YACP,OAAO,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QACrC,CAAC;KACF,CAAC;IAEJ,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE,CAAC;QAClC,eAAe,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACrC,CAAC;IAED,uBACE,GAAG;QACH,iBAAiB;QACjB,WAAW;QACX,eAAe;QACf,WAAW;QACX,YAAY;QACZ,UAAU;QACV,QAAQ,EACR,YAAY,EAAO,eAAe,CAAC,QAAQ,EAAE,YAAY,CAAC,EAC1D,YAAY,EAAO,eAAe,CAAC,QAAQ,EAAE,YAAY,CAAC,EAC1D,gBAAgB,EAAG,eAAe,CAAC,QAAQ,EAAE,gBAAgB,CAAC,IAC3D,iBAAiB,EACpB;AACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
// Endpoint → custom fetcher. A paginator created with a `fetcher` setting
|
|
2
|
+
// registers it here; paginatorMiddleware uses it instead of the built-in
|
|
3
|
+
// superagent HTTP call. Lets non-HTTP transports (e.g. Wails IPC) plug in
|
|
4
|
+
// without replacing the middleware. Endpoints without a registered fetcher
|
|
5
|
+
// keep the original superagent behaviour unchanged.
|
|
6
|
+
const registry = new Map();
|
|
7
|
+
export const registerFetcher = (endpoint, fetcher) => {
|
|
8
|
+
registry.set(endpoint, fetcher);
|
|
9
|
+
}, getFetcher = (endpoint) => registry.get(endpoint);
|
|
10
|
+
//# sourceMappingURL=fetcherRegistry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetcherRegistry.js","sourceRoot":"","sources":["../src/fetcherRegistry.ts"],"names":[],"mappings":"AAEA,0EAA0E;AAC1E,yEAAyE;AACzE,0EAA0E;AAC1E,2EAA2E;AAC3E,oDAAoD;AAEpD,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAmB,CAAC;AAE5C,MAAM,CAAC,MACL,eAAe,GAAG,CAAC,QAAgB,EAAE,OAAgB,EAAQ,EAAE;IAC7D,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AAClC,CAAC,EACD,UAAU,GAAG,CAAC,QAAgB,EAAuB,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC"}
|
package/index.d.ts
CHANGED
|
@@ -9,3 +9,4 @@ export { default as paginatorMiddleware } from "./paginatorMiddleware";
|
|
|
9
9
|
export { default as reducerOperations } from "./reducerOperations";
|
|
10
10
|
export { default as paginatorSelectors } from "./selectors";
|
|
11
11
|
export { manageDataEntity, manageEntity, manipulateDataItems, manipulateItems } from "./util";
|
|
12
|
+
export type { Fetcher, PaginatorSettings } from "./types";
|
package/package.json
CHANGED
package/paginatorMiddleware.js
CHANGED
|
@@ -1,33 +1,57 @@
|
|
|
1
1
|
/* eslint-disable no-console, max-lines-per-function */
|
|
2
|
-
import { REQUEST_PAGE } from "./actionTypes.js";
|
|
2
|
+
import { CLEAR_DATA, REQUEST_PAGE } from "./actionTypes.js";
|
|
3
3
|
import actions from "./actions.js";
|
|
4
4
|
import { fetchPage } from "./agent.js";
|
|
5
|
-
|
|
5
|
+
import { getFetcher } from "./fetcherRegistry.js";
|
|
6
|
+
const { receivePage } = actions,
|
|
7
|
+
// (endpoint|page|token) of fetches currently in flight. Guards against a
|
|
8
|
+
// remount / fast-nav race firing the same fetch twice (the pages reducer
|
|
9
|
+
// concats ids on RECEIVE_PAGE → duplicate rows). Transparent on the happy
|
|
10
|
+
// path: a single REQUEST_PAGE adds then removes its own key.
|
|
11
|
+
inFlight = new Set(),
|
|
12
|
+
// Per-endpoint generation. CLEAR_DATA bumps it; a fetch started before the
|
|
13
|
+
// clear is discarded on resolve, so a stale response cannot refill a list
|
|
14
|
+
// the caller just cleared (and the post-clear refetch is free to run).
|
|
15
|
+
epochs = new Map(), epochOf = (endpoint) => epochs.get(endpoint) || 0, clearEndpoint = (endpoint) => {
|
|
16
|
+
epochs.set(endpoint, epochOf(endpoint) + 1);
|
|
17
|
+
Array.from(inFlight).forEach((key) => {
|
|
18
|
+
if (key.startsWith(`${endpoint}|`)) {
|
|
19
|
+
inFlight.delete(key);
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
}, paginatorMiddleware = ({ dispatch }) => (next) => (action) => {
|
|
23
|
+
if (action.type === CLEAR_DATA) {
|
|
24
|
+
if (action.meta && typeof action.meta.endpoint === "string") {
|
|
25
|
+
clearEndpoint(action.meta.endpoint);
|
|
26
|
+
}
|
|
27
|
+
return next(action);
|
|
28
|
+
}
|
|
6
29
|
if (action.type === REQUEST_PAGE) {
|
|
7
|
-
const { meta: { endpoint, endpointCb, manageEntity, resultsKey, totalKey, pageArgName, idKey, }, payload: { page, token, }, } = action
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
30
|
+
const { meta: { endpoint, endpointCb, manageEntity, resultsKey, totalKey, pageArgName, idKey, }, payload: { page, token, }, } = action, dedupeKey = `${endpoint}|${page}|${token}`;
|
|
31
|
+
if (!inFlight.has(dedupeKey)) {
|
|
32
|
+
inFlight.add(dedupeKey);
|
|
33
|
+
const requestEpoch = epochOf(endpoint);
|
|
34
|
+
dispatch((dispatch2) => {
|
|
35
|
+
const isStale = () => epochOf(endpoint) !== requestEpoch, markAsError = () => {
|
|
36
|
+
if (isStale()) {
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
dispatch2(receivePage({
|
|
40
|
+
endpoint,
|
|
41
|
+
endpointCb,
|
|
42
|
+
manageEntity,
|
|
43
|
+
pageArgName,
|
|
44
|
+
idKey,
|
|
45
|
+
page,
|
|
46
|
+
error: true,
|
|
47
|
+
token,
|
|
48
|
+
items: [],
|
|
49
|
+
total: 0,
|
|
50
|
+
}));
|
|
51
|
+
}, onResponse = (response) => {
|
|
52
|
+
if (isStale()) {
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
31
55
|
let results = [], total = 0;
|
|
32
56
|
if (typeof resultsKey === "undefined") {
|
|
33
57
|
results = response;
|
|
@@ -48,14 +72,29 @@ const { receivePage } = actions, paginatorMiddleware = ({ dispatch }) => (next)
|
|
|
48
72
|
items: results,
|
|
49
73
|
total,
|
|
50
74
|
}));
|
|
51
|
-
}
|
|
75
|
+
}, settle = () => {
|
|
76
|
+
inFlight.delete(dedupeKey);
|
|
77
|
+
}, fetcher = getFetcher(endpoint), rawPath = typeof endpointCb === "function" ? endpointCb(token) : endpoint, path = rawPath === null ? "" : rawPath;
|
|
78
|
+
try {
|
|
79
|
+
const run = typeof fetcher === "function"
|
|
80
|
+
? fetcher(token, page)
|
|
81
|
+
: fetchPage({
|
|
82
|
+
endpoint: path,
|
|
83
|
+
pageArgName,
|
|
84
|
+
page,
|
|
85
|
+
token,
|
|
86
|
+
}).then((res) => res.response);
|
|
87
|
+
run.
|
|
88
|
+
then(onResponse).
|
|
89
|
+
catch(markAsError).
|
|
90
|
+
finally(settle);
|
|
91
|
+
}
|
|
92
|
+
catch (err) {
|
|
93
|
+
settle();
|
|
52
94
|
markAsError();
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
markAsError();
|
|
57
|
-
}
|
|
58
|
-
});
|
|
95
|
+
}
|
|
96
|
+
});
|
|
97
|
+
}
|
|
59
98
|
}
|
|
60
99
|
return next(action);
|
|
61
100
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paginatorMiddleware.js","sourceRoot":"","sources":["../src/paginatorMiddleware.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"paginatorMiddleware.js","sourceRoot":"","sources":["../src/paginatorMiddleware.ts"],"names":[],"mappings":"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"}
|
package/reducerItemData.js
CHANGED
|
@@ -7,12 +7,12 @@ const defaultOptions = Immutable.Map({
|
|
|
7
7
|
if (typeof current === "undefined") {
|
|
8
8
|
return defaultOptions;
|
|
9
9
|
}
|
|
10
|
-
return current.
|
|
10
|
+
return current.merge(defaultOptions);
|
|
11
11
|
})), fetchItemDataRejected = (state, { meta: { id, }, }) => state.update(id, (current) => {
|
|
12
12
|
if (typeof current === "undefined") {
|
|
13
13
|
return current;
|
|
14
14
|
}
|
|
15
|
-
return current.
|
|
15
|
+
return current.merge(Immutable.Map({
|
|
16
16
|
fetching: false,
|
|
17
17
|
fetched: false,
|
|
18
18
|
error: true,
|
|
@@ -21,7 +21,7 @@ const defaultOptions = Immutable.Map({
|
|
|
21
21
|
if (typeof current === "undefined") {
|
|
22
22
|
return current;
|
|
23
23
|
}
|
|
24
|
-
return current.
|
|
24
|
+
return current.merge(Immutable.Map({
|
|
25
25
|
Data,
|
|
26
26
|
fetching: false,
|
|
27
27
|
fetched: true,
|
package/reducerItemData.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reducerItemData.js","sourceRoot":"","sources":["../src/reducerItemData.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,SAAS,MAAM,WAAW,CAAC;AAEvC,MACE,cAAc,GAAG,SAAS,CAAC,GAAG,CAAC;IAC7B,QAAQ,EAAG,IAAI;IACf,OAAO,EAAI,KAAK;IAChB,KAAK,EAAM,KAAK;CACjB,CAAC,EAEF,oBAAoB,GAAG,CAAC,KAAU,EAAE,EAClC,IAAI,EAAE,EACJ,EAAE,GACH,GAKF,EAAE,EAAE,CAAC,CACJ,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,OAAa,EAAE,EAAE;IACjC,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE,CAAC;QACnC,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,OAAO,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"reducerItemData.js","sourceRoot":"","sources":["../src/reducerItemData.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,SAAS,MAAM,WAAW,CAAC;AAEvC,MACE,cAAc,GAAG,SAAS,CAAC,GAAG,CAAC;IAC7B,QAAQ,EAAG,IAAI;IACf,OAAO,EAAI,KAAK;IAChB,KAAK,EAAM,KAAK;CACjB,CAAC,EAEF,oBAAoB,GAAG,CAAC,KAAU,EAAE,EAClC,IAAI,EAAE,EACJ,EAAE,GACH,GAKF,EAAE,EAAE,CAAC,CACJ,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,OAAa,EAAE,EAAE;IACjC,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE,CAAC;QACnC,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,OAAO,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;AACvC,CAAC,CAAC,CACH,EACD,qBAAqB,GAAG,CAAC,KAAU,EAAE,EACnC,IAAI,EAAE,EACJ,EAAE,GACH,GAKF,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,OAAa,EAAE,EAAE;IACvC,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE,CAAC;QACnC,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,OAAO,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC;QACjC,QAAQ,EAAG,KAAK;QAChB,OAAO,EAAI,KAAK;QAChB,KAAK,EAAM,IAAI;KAChB,CAAC,CAAC,CAAC;AACN,CAAC,CAAC,EACF,sBAAsB,GAAG,CAAC,KAAU,EAAE,EACpC,OAAO,EAAE,EACP,IAAI,GACL,EACD,IAAI,EAAE,EACJ,EAAE,GACH,GAC2B,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,OAAa,EAAE,EAAE;IACpE,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE,CAAC;QACnC,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,OAAO,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC;QACjC,IAAI;QACJ,QAAQ,EAAG,KAAK;QAChB,OAAO,EAAI,IAAI;QACf,KAAK,EAAM,KAAK;KACjB,CAAC,CAAC,CAAC;AACN,CAAC,CAAC,CAAC;AAEL,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,CAAC"}
|
package/types.d.ts
CHANGED
|
@@ -9,10 +9,12 @@ type PromiseAction = Promise<Action>;
|
|
|
9
9
|
type ThunkAction = (dispatch: Dispatch, getState: GetState) => any;
|
|
10
10
|
export type Dispatch = (action: Action | ThunkAction | PromiseAction | Array<Action>) => any;
|
|
11
11
|
export type EndPointCb = ((token?: string) => string) | null;
|
|
12
|
+
export type Fetcher = (token: string, page: number) => Promise<any>;
|
|
12
13
|
export type PaginatorSettings = {
|
|
13
14
|
key: string;
|
|
14
15
|
manageEntity: any;
|
|
15
16
|
resultsKey: string;
|
|
17
|
+
fetcher?: Fetcher;
|
|
16
18
|
rowsPerLoad?: number;
|
|
17
19
|
manipulateItems?: (items: any) => any;
|
|
18
20
|
totalKey?: string;
|