UNPKG

4.61 kBJavaScriptView Raw
1"use strict";
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6exports.createPaginator = exports.onlyForEndpoint = undefined;
7
8var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
9
10var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
11
12/*
13if (typeof Endpoint === "object") {
14 return {
15 path : Endpoint.path,
16 cb : Endpoint.cb,
17 };
18}
19
20return {
21 path : Endpoint,
22};
23*/
24
25/* eslint-disable max-lines-per-function, */
26
27var _reducers = require("./reducers");
28
29var _actions = require("./actions");
30
31var _actions2 = _interopRequireDefault(_actions);
32
33var _immutable = require("immutable");
34
35var Immutable = _interopRequireWildcard(_immutable);
36
37var _others = require("x25/utility/others");
38
39function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
40
41function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
42
43var onlyForEndpoint = exports.onlyForEndpoint = function onlyForEndpoint(endpoint, reducer) {
44 return function () {
45 var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : Immutable.Map();
46 var action = arguments[1];
47
48 if (typeof action.meta === "undefined" || action.meta.endpoint !== endpoint) {
49 return state;
50 }
51
52 return reducer(state, action);
53 };
54};
55
56var getEndpoint = function getEndpoint(data) {
57 if ((typeof data === "undefined" ? "undefined" : _typeof(data)) === "object") {
58 return {
59 path: data.path,
60 cb: data.cb
61 };
62 }
63
64 return {
65 path: data,
66 cb: null
67 };
68};
69
70var createPaginator = exports.createPaginator = function createPaginator(endpointData, settings) {
71 var _getEndpoint = getEndpoint(endpointData),
72 endpoint = _getEndpoint.path,
73 endpointCb = _getEndpoint.cb;
74
75 var key = settings.key,
76 normalizeDataItem = settings.normalizeDataItem,
77 dataItemURL = settings.dataItemURL,
78 manageEntity = settings.manageEntity,
79 resultsKey = settings.resultsKey,
80 _settings$totalKey = settings.totalKey,
81 totalKey = _settings$totalKey === undefined ? "Total" : _settings$totalKey,
82 _settings$pageArgName = settings.pageArgName,
83 pageArgName = _settings$pageArgName === undefined ? "page" : _settings$pageArgName,
84 _settings$idKey = settings.idKey,
85 idKey = _settings$idKey === undefined ? "ID" : _settings$idKey,
86 _settings$rowsPerLoad = settings.rowsPerLoad,
87 rowsPerLoad = _settings$rowsPerLoad === undefined ? _others.rowsPerLoad : _settings$rowsPerLoad,
88 _settings$manipulateI = settings.manipulateItems,
89 manipulateItems = _settings$manipulateI === undefined ? function (items) {
90 return items;
91 } : _settings$manipulateI;
92
93
94 var endpointedActions = {
95 requestPage: function requestPage(page, token) {
96 return _actions2.default.requestPage({
97 endpoint: endpoint,
98 endpointCb: endpointCb,
99 manageEntity: manageEntity,
100 resultsKey: resultsKey,
101 totalKey: totalKey,
102 pageArgName: pageArgName,
103 idKey: idKey,
104 page: page,
105 token: token
106 });
107 },
108 resetView: function resetView(token) {
109 return _actions2.default.resetView(endpoint, token);
110 },
111 changeView: function changeView(_ref) {
112 var view = _ref.view,
113 token = _ref.token;
114
115 return _actions2.default.changeView(endpoint, {
116 view: view,
117 token: token
118 });
119 },
120 clearData: function clearData() {
121 return _actions2.default.clearData(endpoint);
122 }
123 };
124
125 return _extends({
126 key: key,
127 normalizeDataItem: normalizeDataItem,
128 dataItemURL: dataItemURL,
129 manipulateItems: manipulateItems,
130 rowsPerLoad: rowsPerLoad,
131 manageEntity: manageEntity,
132 resultsKey: resultsKey,
133 endpoint: endpoint,
134
135 pagesReducer: onlyForEndpoint(endpoint, _reducers.pages),
136 itemsReducer: onlyForEndpoint(endpoint, _reducers.items),
137
138 dataItemsReducer: onlyForEndpoint(endpoint, _reducers.dataItems)
139
140 }, endpointedActions);
141};
\No newline at end of file