@olea-bps/base 1.0.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/components/AppBar/index.js +84 -0
- package/components/AppBar/styles.js +27 -0
- package/components/BookDetail/index.js +268 -0
- package/components/BookDetail/styles.js +124 -0
- package/components/ComponentJobsFilter/index.js +188 -0
- package/components/ComponentJobsFilter/styles.js +12 -0
- package/components/ConnectivityWarning/index.js +65 -0
- package/components/ConnectivityWarning/styles.js +19 -0
- package/components/ContactDetail/index.js +232 -0
- package/components/ContactDetail/styles.js +32 -0
- package/components/CourseDetail/index.js +357 -0
- package/components/CourseDetail/styles.js +59 -0
- package/components/CourseDetailDialog/index.js +169 -0
- package/components/CourseDetailDialog/styles.js +116 -0
- package/components/CourseInfo/index.js +219 -0
- package/components/CourseInfo/styles.js +40 -0
- package/components/DevelopmentDialog/index.js +214 -0
- package/components/DevelopmentDialog/styles.js +10 -0
- package/components/EventCodeInput/index.js +149 -0
- package/components/EventCodeInput/styles.js +108 -0
- package/components/FlexMenuEntry/index.js +84 -0
- package/components/FlexMenuEntry/styles.js +27 -0
- package/components/MainMenuEntry/index.js +88 -0
- package/components/MainMenuEntry/styles.js +28 -0
- package/components/MealItem/index.js +87 -0
- package/components/MealItem/styles.js +84 -0
- package/components/MensaMenu/index.js +305 -0
- package/components/MensaMenu/styles.js +94 -0
- package/components/MensaSlider/index.js +188 -0
- package/components/MensaSlider/styles.js +53 -0
- package/components/Modal/index.js +106 -0
- package/components/Modal/styles.js +8 -0
- package/components/NewsDetail/index.js +377 -0
- package/components/NewsDetail/styles.js +77 -0
- package/components/NewsList/index.js +120 -0
- package/components/NewsList/styles.js +19 -0
- package/components/NewsListItem/index.js +89 -0
- package/components/NewsListItem/styles.js +32 -0
- package/components/OtherCourses/index.js +152 -0
- package/components/OtherCourses/styles.js +10 -0
- package/components/PtsDeparture/index.js +140 -0
- package/components/PtsDeparture/styles.js +7 -0
- package/components/PtsStation/index.js +186 -0
- package/components/PtsStation/styles.js +47 -0
- package/components/QuickLinks/index.js +127 -0
- package/components/QuickLinks/styles.js +45 -0
- package/components/RoomDetail/index.js +281 -0
- package/components/RoomDetail/styles.js +56 -0
- package/components/ScaledImage/index.js +92 -0
- package/components/SearchResults/index.js +362 -0
- package/components/SearchResults/styles.js +59 -0
- package/components/SettingSection/index.js +54 -0
- package/components/SettingSection/styles.js +15 -0
- package/components/SettingsDialog/index.js +52 -0
- package/components/SettingsDialog/styles.js +12 -0
- package/components/SettingsDialogRadio/index.js +66 -0
- package/components/SettingsDialogRadio/styles.js +7 -0
- package/components/SettingsDialogSelect/index.js +73 -0
- package/components/SettingsDialogSelect/styles.js +7 -0
- package/components/TimetableCodeInput/index.js +205 -0
- package/components/TimetableCodeInput/styles.js +28 -0
- package/components/TimetableDay/index.js +252 -0
- package/components/TimetableDay/styles.js +103 -0
- package/components/TimetableEvent/index.js +163 -0
- package/components/TimetableEvent/styles.js +108 -0
- package/components/TimetableList/index.js +180 -0
- package/components/TimetableList/styles.js +106 -0
- package/components/TimetableMonth/index.js +156 -0
- package/components/TimetableMonth/styles.js +29 -0
- package/components/TimetableWeek/index.js +230 -0
- package/components/TimetableWeek/styles.js +58 -0
- package/components/TopNews/index.js +282 -0
- package/components/TopNews/styles.js +125 -0
- package/components/TopNewsHtwk/index.js +279 -0
- package/components/TopNewsHtwk/styles.js +142 -0
- package/components/WebView/index.js +108 -0
- package/components/WebView/styles.js +11 -0
- package/context/context-callmanager/TucCallManager.js +74 -0
- package/context/context-callmanager/index.js +128 -0
- package/context/context-canteen/AsistServerApiProvider.js +126 -0
- package/context/context-canteen/CollektorVersion2ApiProvider.js +100 -0
- package/context/context-canteen/index.js +692 -0
- package/context/context-connectivity/index.js +85 -0
- package/context/context-event/AsistServerClient.js +82 -0
- package/context/context-event/index.js +205 -0
- package/context/context-flex-menu/AsistServerApiProvider.js +0 -0
- package/context/context-flex-menu/CollectorVersion2ApiProvider.js +32 -0
- package/context/context-flex-menu/index.js +160 -0
- package/context/context-info-dialog/CollektorVersion2ApiProvider.js +53 -0
- package/context/context-info-dialog/ProviderErrors.js +22 -0
- package/context/context-info-dialog/index.js +190 -0
- package/context/context-mails/MailService.js +147 -0
- package/context/context-mails/TucUnseenApiProvider.js +65 -0
- package/context/context-mails/index.js +131 -0
- package/context/context-news/CollektorVersion2ApiProvider.js +68 -0
- package/context/context-news/index.js +155 -0
- package/context/context-public-transport-ticket/CollektorVersion2ApiProvider.js +45 -0
- package/context/context-public-transport-ticket/ProviderErrors.js +11 -0
- package/context/context-public-transport-ticket/index.js +175 -0
- package/context/context-timetable/CollectorVersion2ApiProvider.js +102 -0
- package/context/context-timetable/ProviderErrors.js +22 -0
- package/context/context-timetable/TimetableService.js +357 -0
- package/context/context-timetable/index.js +215 -0
- package/context/context-user/index.js +586 -0
- package/index.js +178 -0
- package/libraries/base-api-provider/hooks.js +24 -0
- package/libraries/base-api-provider/http-api-provider.js +168 -0
- package/libraries/base-api-provider/index.js +20 -0
- package/libraries/core/api/canteens.js +88 -0
- package/libraries/core/api/corona.js +45 -0
- package/libraries/core/api/courses.js +54 -0
- package/libraries/core/api/device.js +98 -0
- package/libraries/core/api/feed.js +144 -0
- package/libraries/core/api/feedback.js +123 -0
- package/libraries/core/api/jobs.js +48 -0
- package/libraries/core/api/library.js +67 -0
- package/libraries/core/api/lostfound.js +77 -0
- package/libraries/core/api/occupancy.js +44 -0
- package/libraries/core/api/officehours.js +25 -0
- package/libraries/core/api/poi.js +25 -0
- package/libraries/core/api/pts.js +68 -0
- package/libraries/core/api/rooms.js +31 -0
- package/libraries/core/api/survey.js +121 -0
- package/libraries/core/api/telephone.js +32 -0
- package/libraries/core/api/tucrooms.js +31 -0
- package/libraries/core/constants/actions.js +75 -0
- package/libraries/core/constants/api.js +146 -0
- package/libraries/core/constants/enums.js +5 -0
- package/libraries/core/helper/date.js +9 -0
- package/libraries/core/helper/format.helper.js +2 -0
- package/libraries/core/index.js +60 -0
- package/libraries/core/redux/actions/notifications.js +6 -0
- package/libraries/core/redux/actions/setting.js +75 -0
- package/libraries/core/redux/actions/state.js +74 -0
- package/libraries/core/redux/asyncDispatch.js +27 -0
- package/libraries/core/redux/reducers/api.js +190 -0
- package/libraries/core/redux/reducers/index.js +32 -0
- package/libraries/core/redux/reducers/notifications.js +16 -0
- package/libraries/core/redux/reducers/setting.js +99 -0
- package/libraries/core/redux/reducers/state.js +122 -0
- package/libraries/core/redux/selectors.js +123 -0
- package/libraries/core/redux/store.js +40 -0
- package/libraries/core/services/data.js +96 -0
- package/libraries/core/services/root-navigation.js +36 -0
- package/libraries/core/services/search.js +175 -0
- package/libraries/core-plugins/enums/replaceTypes.js +53 -0
- package/libraries/core-plugins/index.js +21 -0
- package/libraries/core-plugins/redux/actions/plugin.js +13 -0
- package/libraries/core-plugins/redux/reducers/plugin.js +210 -0
- package/libraries/icons-openasist/index.js +143 -0
- package/libraries/notifications/index.js +268 -0
- package/libraries/notifications/services/subscriber.service.js +123 -0
- package/libraries/react-native-webview-autoheight/README.md +47 -0
- package/libraries/react-native-webview-autoheight/index.js +140 -0
- package/libraries/react-native-webview-autoheight/package.json +37 -0
- package/libraries/react-native-webview-autoheight/utils.js +268 -0
- package/libraries/redux-offline/.eslintignore +1 -0
- package/libraries/redux-offline/.github/ISSUE_TEMPLATE/redux-offline-core-issues-template.md +25 -0
- package/libraries/redux-offline/.prettierrc +6 -0
- package/libraries/redux-offline/LICENSE +21 -0
- package/libraries/redux-offline/README.md +133 -0
- package/libraries/redux-offline/flow-typed/npm/redux-logger_vx.x.x.js +109 -0
- package/libraries/redux-offline/flow-typed/npm/redux_v4.x.x.js +100 -0
- package/libraries/redux-offline/lib/actions.js +46 -0
- package/libraries/redux-offline/lib/config.js +15 -0
- package/libraries/redux-offline/lib/constants.js +17 -0
- package/libraries/redux-offline/lib/defaults/defaultCommit.js +11 -0
- package/libraries/redux-offline/lib/defaults/defaultRollback.js +11 -0
- package/libraries/redux-offline/lib/defaults/detectNetwork.js +33 -0
- package/libraries/redux-offline/lib/defaults/detectNetwork.native.js +211 -0
- package/libraries/redux-offline/lib/defaults/discard.js +18 -0
- package/libraries/redux-offline/lib/defaults/effect.js +87 -0
- package/libraries/redux-offline/lib/defaults/index.js +32 -0
- package/libraries/redux-offline/lib/defaults/offlineStateLens.js +24 -0
- package/libraries/redux-offline/lib/defaults/persist.js +9 -0
- package/libraries/redux-offline/lib/defaults/persist.native.js +17 -0
- package/libraries/redux-offline/lib/defaults/persistAutoRehydrate.js +8 -0
- package/libraries/redux-offline/lib/defaults/queue.js +27 -0
- package/libraries/redux-offline/lib/defaults/retry.js +29 -0
- package/libraries/redux-offline/lib/index.js +115 -0
- package/libraries/redux-offline/lib/middleware.js +56 -0
- package/libraries/redux-offline/lib/offlineActionTracker.js +43 -0
- package/libraries/redux-offline/lib/send.js +112 -0
- package/libraries/redux-offline/lib/types.js +3 -0
- package/libraries/redux-offline/lib/updater.js +111 -0
- package/libraries/redux-offline/package.json +69 -0
- package/libraries/redux-offline/src/__tests__/defaults/discard.js +22 -0
- package/libraries/redux-offline/src/__tests__/defaults/effect.js +118 -0
- package/libraries/redux-offline/src/__tests__/index.js +116 -0
- package/libraries/redux-offline/src/__tests__/middleware.js +185 -0
- package/libraries/redux-offline/src/__tests__/offlineActionTracker.js +54 -0
- package/libraries/redux-offline/src/__tests__/send.js +208 -0
- package/libraries/redux-offline/src/actions.js +36 -0
- package/libraries/redux-offline/src/config.js +9 -0
- package/libraries/redux-offline/src/constants.js +18 -0
- package/libraries/redux-offline/src/defaults/defaultCommit.js +7 -0
- package/libraries/redux-offline/src/defaults/defaultRollback.js +7 -0
- package/libraries/redux-offline/src/defaults/detectNetwork.js +16 -0
- package/libraries/redux-offline/src/defaults/detectNetwork.native.js +148 -0
- package/libraries/redux-offline/src/defaults/discard.js +19 -0
- package/libraries/redux-offline/src/defaults/effect.js +86 -0
- package/libraries/redux-offline/src/defaults/index.js +25 -0
- package/libraries/redux-offline/src/defaults/offlineStateLens.js +11 -0
- package/libraries/redux-offline/src/defaults/persist.js +4 -0
- package/libraries/redux-offline/src/defaults/persist.native.js +9 -0
- package/libraries/redux-offline/src/defaults/persistAutoRehydrate.js +4 -0
- package/libraries/redux-offline/src/defaults/queue.js +20 -0
- package/libraries/redux-offline/src/defaults/retry.js +18 -0
- package/libraries/redux-offline/src/index.js +138 -0
- package/libraries/redux-offline/src/middleware.js +52 -0
- package/libraries/redux-offline/src/offlineActionTracker.js +40 -0
- package/libraries/redux-offline/src/send.js +111 -0
- package/libraries/redux-offline/src/types.js +127 -0
- package/libraries/redux-offline/src/updater.js +141 -0
- package/libraries/redux-offline/typings.d.ts +150 -0
- package/libraries/redux-offline/yarn.lock +6460 -0
- package/libraries/stored-state/index.js +155 -0
- package/package.json +68 -0
- package/views/Callmanager/index.js +148 -0
- package/views/Callmanager/styles.js +62 -0
- package/views/Canteens/index.js +383 -0
- package/views/Canteens/styles.js +89 -0
- package/views/Dashboard/index.js +176 -0
- package/views/Dashboard/styles.js +16 -0
- package/views/DashboardHtwk/index.js +197 -0
- package/views/DashboardHtwk/styles.js +24 -0
- package/views/Event/index.js +373 -0
- package/views/Event/styles.js +63 -0
- package/views/FeedList/index.js +165 -0
- package/views/FeedList/styles.js +15 -0
- package/views/FeedNews/index.js +243 -0
- package/views/FeedNews/styles.js +32 -0
- package/views/Flexmenu/index.js +185 -0
- package/views/Flexmenu/styles.js +62 -0
- package/views/FlexmenuWebview/index.js +167 -0
- package/views/FlexmenuWebview/styles.js +16 -0
- package/views/Howhy/index.js +151 -0
- package/views/Howhy/styles.js +11 -0
- package/views/Jobs/index.js +217 -0
- package/views/Jobs/styles.js +41 -0
- package/views/MainMenu/index.js +283 -0
- package/views/MainMenu/styles.js +36 -0
- package/views/NewsTabbar/index.js +164 -0
- package/views/NewsTabbar/styles.js +27 -0
- package/views/Opal/index.js +136 -0
- package/views/Opal/styles.js +11 -0
- package/views/PublicTransportTicket/index.js +173 -0
- package/views/PublicTransportTicket/styles.js +17 -0
- package/views/Search/index.js +186 -0
- package/views/Search/styles.js +67 -0
- package/views/SettingsAccessibility/index.js +148 -0
- package/views/SettingsAccessibility/styles.js +13 -0
- package/views/SettingsAppInfo/index.js +86 -0
- package/views/SettingsAppInfo/styles.js +18 -0
- package/views/SettingsCanteens/index.js +249 -0
- package/views/SettingsCanteens/styles.js +33 -0
- package/views/SettingsGeneral/index.js +173 -0
- package/views/SettingsGeneral/styles.js +28 -0
- package/views/SettingsNotifications/index.js +204 -0
- package/views/SettingsNotifications/styles.js +38 -0
- package/views/SettingsUser/index.js +170 -0
- package/views/SettingsUser/styles.js +17 -0
- package/views/TimetableCalendar/index.js +387 -0
- package/views/TimetableCalendar/styles.js +121 -0
- package/views/TimetableList/index.js +402 -0
- package/views/TimetableList/styles.js +55 -0
- package/views/Webviews/index.js +158 -0
- package/views/Webviews/styles.js +11 -0
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = void 0;
|
|
8
|
+
var _persist = _interopRequireDefault(require("./persist"));
|
|
9
|
+
var _detectNetwork = _interopRequireDefault(require("./detectNetwork"));
|
|
10
|
+
var _effect = _interopRequireDefault(require("./effect"));
|
|
11
|
+
var _retry = _interopRequireDefault(require("./retry"));
|
|
12
|
+
var _discard = _interopRequireDefault(require("./discard"));
|
|
13
|
+
var _defaultCommit = _interopRequireDefault(require("./defaultCommit"));
|
|
14
|
+
var _defaultRollback = _interopRequireDefault(require("./defaultRollback"));
|
|
15
|
+
var _persistAutoRehydrate = _interopRequireDefault(require("./persistAutoRehydrate"));
|
|
16
|
+
var _offlineStateLens = _interopRequireDefault(require("./offlineStateLens"));
|
|
17
|
+
var _queue = _interopRequireDefault(require("./queue"));
|
|
18
|
+
var _default = exports.default = {
|
|
19
|
+
rehydrate: true,
|
|
20
|
+
// backward compatibility, TODO remove in the next breaking change version
|
|
21
|
+
persist: _persist.default,
|
|
22
|
+
detectNetwork: _detectNetwork.default,
|
|
23
|
+
effect: _effect.default,
|
|
24
|
+
retry: _retry.default,
|
|
25
|
+
discard: _discard.default,
|
|
26
|
+
defaultCommit: _defaultCommit.default,
|
|
27
|
+
defaultRollback: _defaultRollback.default,
|
|
28
|
+
persistAutoRehydrate: _persistAutoRehydrate.default,
|
|
29
|
+
offlineStateLens: _offlineStateLens.default,
|
|
30
|
+
queue: _queue.default,
|
|
31
|
+
returnPromises: false
|
|
32
|
+
};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = void 0;
|
|
8
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
10
|
+
var _excluded = ["offline"];
|
|
11
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
12
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
13
|
+
var _default = exports.default = function _default(state) {
|
|
14
|
+
var offline = state.offline,
|
|
15
|
+
rest = (0, _objectWithoutProperties2.default)(state, _excluded);
|
|
16
|
+
return {
|
|
17
|
+
get: offline,
|
|
18
|
+
set: function set(offlineState) {
|
|
19
|
+
return typeof offlineState === 'undefined' ? rest : _objectSpread({
|
|
20
|
+
offline: offlineState
|
|
21
|
+
}, rest);
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = void 0;
|
|
8
|
+
var _reduxPersist = require("redux-persist");
|
|
9
|
+
var _asyncStorage = _interopRequireDefault(require("@react-native-async-storage/async-storage"));
|
|
10
|
+
// $FlowIgnore
|
|
11
|
+
// $FlowIgnore
|
|
12
|
+
var _default = exports.default = function _default(store, options, callback) {
|
|
13
|
+
return (
|
|
14
|
+
// $FlowFixMe
|
|
15
|
+
(0, _reduxPersist.persistStore)(store, callback)
|
|
16
|
+
);
|
|
17
|
+
};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = void 0;
|
|
8
|
+
var _toArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toArray"));
|
|
9
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
10
|
+
/* eslint-disable no-unused-vars */
|
|
11
|
+
|
|
12
|
+
function enqueue(array, item, context) {
|
|
13
|
+
return [].concat((0, _toConsumableArray2.default)(array), [item]);
|
|
14
|
+
}
|
|
15
|
+
function dequeue(array, item, context) {
|
|
16
|
+
var _array = (0, _toArray2.default)(array),
|
|
17
|
+
rest = _array.slice(1);
|
|
18
|
+
return rest;
|
|
19
|
+
}
|
|
20
|
+
function peek(array, item, context) {
|
|
21
|
+
return array[0];
|
|
22
|
+
}
|
|
23
|
+
var _default = exports.default = {
|
|
24
|
+
enqueue: enqueue,
|
|
25
|
+
dequeue: dequeue,
|
|
26
|
+
peek: peek
|
|
27
|
+
};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var decaySchedule = [1000,
|
|
8
|
+
// After 1 seconds
|
|
9
|
+
1000 * 5,
|
|
10
|
+
// After 5 seconds
|
|
11
|
+
1000 * 15,
|
|
12
|
+
// After 15 seconds
|
|
13
|
+
1000 * 30,
|
|
14
|
+
// After 30 seconds
|
|
15
|
+
1000 * 60,
|
|
16
|
+
// After 1 minute
|
|
17
|
+
1000 * 60 * 3,
|
|
18
|
+
// After 3 minutes
|
|
19
|
+
1000 * 60 * 5,
|
|
20
|
+
// After 5 minutes
|
|
21
|
+
1000 * 60 * 10,
|
|
22
|
+
// After 10 minutes
|
|
23
|
+
1000 * 60 * 30,
|
|
24
|
+
// After 30 minutes
|
|
25
|
+
1000 * 60 * 60 // After 1 hour
|
|
26
|
+
];
|
|
27
|
+
var _default = exports.default = function _default(action, retries) {
|
|
28
|
+
return decaySchedule[retries] || null;
|
|
29
|
+
};
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.offline = exports.createOffline = void 0;
|
|
8
|
+
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
9
|
+
var _redux = require("redux");
|
|
10
|
+
var _middleware = require("./middleware");
|
|
11
|
+
var _updater = require("./updater");
|
|
12
|
+
var _config = require("./config");
|
|
13
|
+
var _actions = require("./actions");
|
|
14
|
+
var _offlineActionTracker = _interopRequireDefault(require("./offlineActionTracker"));
|
|
15
|
+
/* global $Shape */
|
|
16
|
+
// @TODO: Take createStore as config?
|
|
17
|
+
var warnIfNotReduxAction = function warnIfNotReduxAction(config, key) {
|
|
18
|
+
var maybeAction = config[key];
|
|
19
|
+
var isNotReduxAction = maybeAction === null || (0, _typeof2.default)(maybeAction) !== 'object' || typeof maybeAction.type !== 'string' || maybeAction.type === '';
|
|
20
|
+
if (isNotReduxAction && console.warn) {
|
|
21
|
+
var msg = "".concat(key, " must be a proper redux action, ") + "i.e. it must be an object and have a non-empty string type. " + "Instead you provided: ".concat(JSON.stringify(maybeAction, null, 2));
|
|
22
|
+
console.warn(msg);
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
var offline = exports.offline = function offline() {
|
|
26
|
+
var userConfig = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
27
|
+
return function (createStore) {
|
|
28
|
+
return function (reducer, preloadedState) {
|
|
29
|
+
var enhancer = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : function (x) {
|
|
30
|
+
return x;
|
|
31
|
+
};
|
|
32
|
+
var config = (0, _config.applyDefaults)(userConfig);
|
|
33
|
+
warnIfNotReduxAction(config, 'defaultCommit');
|
|
34
|
+
warnIfNotReduxAction(config, 'defaultRollback');
|
|
35
|
+
|
|
36
|
+
// toggle experimental returned promises
|
|
37
|
+
config.offlineActionTracker = config.returnPromises ? _offlineActionTracker.default.withPromises : _offlineActionTracker.default.withoutPromises;
|
|
38
|
+
delete config.returnPromises;
|
|
39
|
+
|
|
40
|
+
// wraps userland reducer with a top-level
|
|
41
|
+
// reducer that handles offline state updating
|
|
42
|
+
var offlineReducer = (0, _updater.enhanceReducer)(reducer, config);
|
|
43
|
+
|
|
44
|
+
// $FlowFixMe
|
|
45
|
+
var offlineMiddleware = (0, _redux.applyMiddleware)((0, _middleware.createOfflineMiddleware)(config));
|
|
46
|
+
|
|
47
|
+
// create autoRehydrate enhancer if required
|
|
48
|
+
var offlineEnhancer = config.persist && config.rehydrate && config.persistAutoRehydrate ? (0, _redux.compose)(offlineMiddleware, config.persistAutoRehydrate()) : offlineMiddleware;
|
|
49
|
+
|
|
50
|
+
// create store
|
|
51
|
+
var store = offlineEnhancer(createStore)(offlineReducer, preloadedState, enhancer);
|
|
52
|
+
var baseReplaceReducer = store.replaceReducer.bind(store);
|
|
53
|
+
// $FlowFixMe
|
|
54
|
+
store.replaceReducer = function replaceReducer(nextReducer) {
|
|
55
|
+
return baseReplaceReducer((0, _updater.enhanceReducer)(nextReducer, config));
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
// launch store persistor
|
|
59
|
+
if (config.persist) {
|
|
60
|
+
config.persist(store, config.persistOptions, config.persistCallback);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
// launch network detector
|
|
64
|
+
if (config.detectNetwork) {
|
|
65
|
+
config.detectNetwork(function (online) {
|
|
66
|
+
store.dispatch((0, _actions.networkStatusChanged)(online));
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
return store;
|
|
70
|
+
};
|
|
71
|
+
};
|
|
72
|
+
};
|
|
73
|
+
var createOffline = exports.createOffline = function createOffline() {
|
|
74
|
+
var userConfig = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
75
|
+
var config = (0, _config.applyDefaults)(userConfig);
|
|
76
|
+
|
|
77
|
+
// toggle experimental returned promises
|
|
78
|
+
config.offlineActionTracker = config.returnPromises ? _offlineActionTracker.default.withPromises : _offlineActionTracker.default.withoutPromises;
|
|
79
|
+
delete config.returnPromises;
|
|
80
|
+
warnIfNotReduxAction(config, 'defaultCommit');
|
|
81
|
+
warnIfNotReduxAction(config, 'defaultRollback');
|
|
82
|
+
var enhanceStore = function enhanceStore(next) {
|
|
83
|
+
return function (reducer, preloadedState, enhancer) {
|
|
84
|
+
// create autoRehydrate enhancer if required
|
|
85
|
+
var createStore = config.persist && config.rehydrate && config.persistAutoRehydrate ? config.persistAutoRehydrate()(next) : next;
|
|
86
|
+
|
|
87
|
+
// create store
|
|
88
|
+
var store = createStore(reducer, preloadedState, enhancer);
|
|
89
|
+
var baseReplaceReducer = store.replaceReducer.bind(store);
|
|
90
|
+
store.replaceReducer = function replaceReducer(nextReducer) {
|
|
91
|
+
return baseReplaceReducer((0, _updater.enhanceReducer)(nextReducer, config));
|
|
92
|
+
};
|
|
93
|
+
|
|
94
|
+
// launch store persistor
|
|
95
|
+
if (config.persist) {
|
|
96
|
+
config.persist(store, config.persistOptions, config.persistCallback);
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
// launch network detector
|
|
100
|
+
if (config.detectNetwork) {
|
|
101
|
+
config.detectNetwork(function (online) {
|
|
102
|
+
store.dispatch((0, _actions.networkStatusChanged)(online));
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
return store;
|
|
106
|
+
};
|
|
107
|
+
};
|
|
108
|
+
return {
|
|
109
|
+
middleware: (0, _middleware.createOfflineMiddleware)(config),
|
|
110
|
+
enhanceReducer: function enhanceReducer(reducer) {
|
|
111
|
+
return (0, _updater.enhanceReducer)(reducer, config);
|
|
112
|
+
},
|
|
113
|
+
enhanceStore: enhanceStore
|
|
114
|
+
};
|
|
115
|
+
};
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.createOfflineMiddleware = void 0;
|
|
8
|
+
var _constants = require("./constants");
|
|
9
|
+
var _actions = require("./actions");
|
|
10
|
+
var _send = _interopRequireDefault(require("./send"));
|
|
11
|
+
var after = function after() {
|
|
12
|
+
var timeout = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
|
|
13
|
+
return new Promise(function (resolve) {
|
|
14
|
+
return setTimeout(resolve, timeout);
|
|
15
|
+
});
|
|
16
|
+
};
|
|
17
|
+
var createOfflineMiddleware = exports.createOfflineMiddleware = function createOfflineMiddleware(config) {
|
|
18
|
+
return function (store) {
|
|
19
|
+
return function (next) {
|
|
20
|
+
return function (action) {
|
|
21
|
+
// allow other middleware to do their things
|
|
22
|
+
var result = next(action);
|
|
23
|
+
var promise;
|
|
24
|
+
|
|
25
|
+
// find any actions to send, if any
|
|
26
|
+
var state = store.getState();
|
|
27
|
+
var offline = config.offlineStateLens(state).get;
|
|
28
|
+
var context = {
|
|
29
|
+
offline: offline
|
|
30
|
+
};
|
|
31
|
+
var offlineAction = config.queue.peek(offline.outbox, action, context);
|
|
32
|
+
|
|
33
|
+
// create promise to return on enqueue offline action
|
|
34
|
+
if (action.meta && action.meta.offline) {
|
|
35
|
+
var registerAction = config.offlineActionTracker.registerAction;
|
|
36
|
+
promise = registerAction(offline.lastTransaction);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
// if there are any actions in the queue that we are not
|
|
40
|
+
// yet processing, send those actions
|
|
41
|
+
if (offlineAction && !offline.busy && !offline.retryScheduled && offline.online) {
|
|
42
|
+
(0, _send.default)(offlineAction, store.dispatch, config, offline.retryCount);
|
|
43
|
+
}
|
|
44
|
+
if (action.type === _constants.OFFLINE_SCHEDULE_RETRY) {
|
|
45
|
+
after(action.payload.delay).then(function () {
|
|
46
|
+
store.dispatch((0, _actions.completeRetry)(offlineAction));
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
if (action.type === _constants.OFFLINE_SEND && offlineAction && !offline.busy) {
|
|
50
|
+
(0, _send.default)(offlineAction, store.dispatch, config, offline.retryCount);
|
|
51
|
+
}
|
|
52
|
+
return promise || result;
|
|
53
|
+
};
|
|
54
|
+
};
|
|
55
|
+
};
|
|
56
|
+
};
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var subscriptions = {};
|
|
8
|
+
function registerAction(transaction) {
|
|
9
|
+
return new Promise(function (resolve, reject) {
|
|
10
|
+
subscriptions[transaction] = {
|
|
11
|
+
resolve: resolve,
|
|
12
|
+
reject: reject
|
|
13
|
+
};
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
function resolveAction(transaction, value) {
|
|
17
|
+
var subscription = subscriptions[transaction];
|
|
18
|
+
if (subscription) {
|
|
19
|
+
subscription.resolve(value);
|
|
20
|
+
delete subscriptions[transaction];
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
function rejectAction(transaction, error) {
|
|
24
|
+
var subscription = subscriptions[transaction];
|
|
25
|
+
if (subscription) {
|
|
26
|
+
subscription.reject(error);
|
|
27
|
+
delete subscriptions[transaction];
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
var withPromises = {
|
|
31
|
+
registerAction: registerAction,
|
|
32
|
+
resolveAction: resolveAction,
|
|
33
|
+
rejectAction: rejectAction
|
|
34
|
+
};
|
|
35
|
+
var withoutPromises = {
|
|
36
|
+
registerAction: function registerAction() {},
|
|
37
|
+
resolveAction: function resolveAction() {},
|
|
38
|
+
rejectAction: function rejectAction() {}
|
|
39
|
+
};
|
|
40
|
+
var _default = exports.default = {
|
|
41
|
+
withPromises: withPromises,
|
|
42
|
+
withoutPromises: withoutPromises
|
|
43
|
+
};
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = void 0;
|
|
8
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
9
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
10
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
|
+
var _actions = require("./actions");
|
|
12
|
+
var _constants = require("./constants");
|
|
13
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
14
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
15
|
+
var complete = function complete(action, result, offlineAction, config) {
|
|
16
|
+
var _config$offlineAction = config.offlineActionTracker,
|
|
17
|
+
resolveAction = _config$offlineAction.resolveAction,
|
|
18
|
+
rejectAction = _config$offlineAction.rejectAction;
|
|
19
|
+
if (result.success) {
|
|
20
|
+
resolveAction(offlineAction.meta.transaction, result.payload);
|
|
21
|
+
} else if (result.payload) {
|
|
22
|
+
rejectAction(offlineAction.meta.transaction, result.payload);
|
|
23
|
+
}
|
|
24
|
+
return _objectSpread(_objectSpread({}, action), {}, {
|
|
25
|
+
payload: result.payload,
|
|
26
|
+
meta: _objectSpread(_objectSpread({}, action.meta), {}, {
|
|
27
|
+
success: result.success,
|
|
28
|
+
completed: true
|
|
29
|
+
})
|
|
30
|
+
});
|
|
31
|
+
};
|
|
32
|
+
var handleJsError = function handleJsError(error) {
|
|
33
|
+
return {
|
|
34
|
+
type: _constants.JS_ERROR,
|
|
35
|
+
meta: {
|
|
36
|
+
error: error,
|
|
37
|
+
success: false,
|
|
38
|
+
completed: true
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
};
|
|
42
|
+
var send = function send(action, dispatch, config) {
|
|
43
|
+
var retries = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;
|
|
44
|
+
var metadata = action.meta.offline;
|
|
45
|
+
dispatch((0, _actions.busy)(true));
|
|
46
|
+
return config.effect(metadata.effect, action).then(function (result) {
|
|
47
|
+
var commitAction = metadata.commit || _objectSpread(_objectSpread({}, config.defaultCommit), {}, {
|
|
48
|
+
meta: _objectSpread(_objectSpread({}, config.defaultCommit.meta), {}, {
|
|
49
|
+
offlineAction: action
|
|
50
|
+
})
|
|
51
|
+
});
|
|
52
|
+
try {
|
|
53
|
+
return dispatch(complete(commitAction, {
|
|
54
|
+
success: true,
|
|
55
|
+
payload: result
|
|
56
|
+
}, action, config));
|
|
57
|
+
} catch (error) {
|
|
58
|
+
return dispatch(handleJsError(error));
|
|
59
|
+
}
|
|
60
|
+
}).catch(/*#__PURE__*/function () {
|
|
61
|
+
var _ref = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee(error) {
|
|
62
|
+
var rollbackAction, mustDiscard, delay, _t;
|
|
63
|
+
return _regenerator.default.wrap(function (_context) {
|
|
64
|
+
while (1) switch (_context.prev = _context.next) {
|
|
65
|
+
case 0:
|
|
66
|
+
rollbackAction = metadata.rollback || _objectSpread(_objectSpread({}, config.defaultRollback), {}, {
|
|
67
|
+
meta: _objectSpread(_objectSpread({}, config.defaultRollback.meta), {}, {
|
|
68
|
+
offlineAction: action
|
|
69
|
+
})
|
|
70
|
+
}); // discard
|
|
71
|
+
mustDiscard = true;
|
|
72
|
+
_context.prev = 1;
|
|
73
|
+
_context.next = 2;
|
|
74
|
+
return config.discard(error, action, retries);
|
|
75
|
+
case 2:
|
|
76
|
+
mustDiscard = _context.sent;
|
|
77
|
+
_context.next = 4;
|
|
78
|
+
break;
|
|
79
|
+
case 3:
|
|
80
|
+
_context.prev = 3;
|
|
81
|
+
_t = _context["catch"](1);
|
|
82
|
+
console.warn(_t);
|
|
83
|
+
case 4:
|
|
84
|
+
if (mustDiscard) {
|
|
85
|
+
_context.next = 5;
|
|
86
|
+
break;
|
|
87
|
+
}
|
|
88
|
+
delay = config.retry(action, retries);
|
|
89
|
+
if (!(delay != null)) {
|
|
90
|
+
_context.next = 5;
|
|
91
|
+
break;
|
|
92
|
+
}
|
|
93
|
+
return _context.abrupt("return", dispatch((0, _actions.scheduleRetry)(delay)));
|
|
94
|
+
case 5:
|
|
95
|
+
return _context.abrupt("return", dispatch(complete(rollbackAction, {
|
|
96
|
+
success: false,
|
|
97
|
+
payload: error
|
|
98
|
+
}, action, config)));
|
|
99
|
+
case 6:
|
|
100
|
+
case "end":
|
|
101
|
+
return _context.stop();
|
|
102
|
+
}
|
|
103
|
+
}, _callee, null, [[1, 3]]);
|
|
104
|
+
}));
|
|
105
|
+
return function (_x) {
|
|
106
|
+
return _ref.apply(this, arguments);
|
|
107
|
+
};
|
|
108
|
+
}()).finally(function () {
|
|
109
|
+
return dispatch((0, _actions.busy)(false));
|
|
110
|
+
});
|
|
111
|
+
};
|
|
112
|
+
var _default = exports.default = send;
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.initialState = exports.enhanceReducer = exports.buildOfflineUpdater = void 0;
|
|
8
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
|
+
var _constants = require("./constants");
|
|
10
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
11
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } /* global $Shape */
|
|
12
|
+
var initialState = exports.initialState = {
|
|
13
|
+
busy: false,
|
|
14
|
+
lastTransaction: 0,
|
|
15
|
+
online: false,
|
|
16
|
+
outbox: [],
|
|
17
|
+
retryCount: 0,
|
|
18
|
+
retryScheduled: false,
|
|
19
|
+
netInfo: {
|
|
20
|
+
isConnectionExpensive: null,
|
|
21
|
+
reach: 'NONE'
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
var buildOfflineUpdater = exports.buildOfflineUpdater = function buildOfflineUpdater(dequeue, enqueue) {
|
|
25
|
+
return function offlineUpdater() {
|
|
26
|
+
var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState;
|
|
27
|
+
var action = arguments.length > 1 ? arguments[1] : undefined;
|
|
28
|
+
// Update online/offline status
|
|
29
|
+
if (action.type === _constants.OFFLINE_STATUS_CHANGED && !action.meta) {
|
|
30
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
31
|
+
online: action.payload.online,
|
|
32
|
+
netInfo: action.payload.netInfo
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
if (action.type === _constants.PERSIST_REHYDRATE && action.payload) {
|
|
36
|
+
return _objectSpread(_objectSpread(_objectSpread({}, state), action.payload.offline || {}), {}, {
|
|
37
|
+
online: state.online,
|
|
38
|
+
netInfo: state.netInfo,
|
|
39
|
+
retryScheduled: initialState.retryScheduled,
|
|
40
|
+
retryCount: initialState.retryCount,
|
|
41
|
+
busy: initialState.busy
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
if (action.type === _constants.OFFLINE_SCHEDULE_RETRY) {
|
|
45
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
46
|
+
retryScheduled: true,
|
|
47
|
+
retryCount: state.retryCount + 1
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
if (action.type === _constants.OFFLINE_COMPLETE_RETRY) {
|
|
51
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
52
|
+
retryScheduled: false
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
if (action.type === _constants.OFFLINE_BUSY && !action.meta && action.payload && typeof action.payload.busy === 'boolean') {
|
|
56
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
57
|
+
busy: action.payload.busy
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
// Add offline actions to queue
|
|
62
|
+
if (action.meta && action.meta.offline) {
|
|
63
|
+
var transaction = state.lastTransaction + 1;
|
|
64
|
+
var stamped = _objectSpread(_objectSpread({}, action), {}, {
|
|
65
|
+
meta: _objectSpread(_objectSpread({}, action.meta), {}, {
|
|
66
|
+
transaction: transaction
|
|
67
|
+
})
|
|
68
|
+
});
|
|
69
|
+
var offline = state;
|
|
70
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
71
|
+
lastTransaction: transaction,
|
|
72
|
+
outbox: enqueue(offline.outbox, stamped, {
|
|
73
|
+
offline: offline
|
|
74
|
+
})
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
// Remove completed actions from queue (success or fail)
|
|
79
|
+
if (action.meta && action.meta.completed === true) {
|
|
80
|
+
var _offline = state;
|
|
81
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
82
|
+
outbox: dequeue(_offline.outbox, action, {
|
|
83
|
+
offline: _offline
|
|
84
|
+
}),
|
|
85
|
+
retryCount: 0
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
if (action.type === _constants.RESET_STATE) {
|
|
89
|
+
return _objectSpread(_objectSpread({}, initialState), {}, {
|
|
90
|
+
online: state.online,
|
|
91
|
+
netInfo: state.netInfo
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
return state;
|
|
95
|
+
};
|
|
96
|
+
};
|
|
97
|
+
var enhanceReducer = exports.enhanceReducer = function enhanceReducer(reducer, config) {
|
|
98
|
+
var _config$queue = config.queue,
|
|
99
|
+
dequeue = _config$queue.dequeue,
|
|
100
|
+
enqueue = _config$queue.enqueue;
|
|
101
|
+
var offlineUpdater = buildOfflineUpdater(dequeue, enqueue);
|
|
102
|
+
return function (state, action) {
|
|
103
|
+
var offlineState;
|
|
104
|
+
var restState;
|
|
105
|
+
if (typeof state !== 'undefined') {
|
|
106
|
+
offlineState = config.offlineStateLens(state).get;
|
|
107
|
+
restState = config.offlineStateLens(state).set();
|
|
108
|
+
}
|
|
109
|
+
return config.offlineStateLens(reducer(restState, action)).set(offlineUpdater(offlineState, action));
|
|
110
|
+
};
|
|
111
|
+
};
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@olea-bps/redux-offline",
|
|
3
|
+
"version": "1.0.1",
|
|
4
|
+
"description": "Redux Offline-First Architecture forked from https://github.com/redux-offline/redux-offline",
|
|
5
|
+
"main": "lib/index.js",
|
|
6
|
+
"scripts": {
|
|
7
|
+
"build": "rm -rf lib && babel src --out-dir lib --ignore '**/__tests__/**'",
|
|
8
|
+
"flow:start": "flow server",
|
|
9
|
+
"flow:stop": "flow stop",
|
|
10
|
+
"flow": "flow; test $? -eq 0 -o $? -eq 2",
|
|
11
|
+
"lint": "eslint src/",
|
|
12
|
+
"_prepublishOnly_disabled": "npm run lint && npm run flow && npm run test && npm run build",
|
|
13
|
+
"eslint": "eslint src --fix",
|
|
14
|
+
"prettier": "--config .prettierrc --write",
|
|
15
|
+
"test": "jest",
|
|
16
|
+
"test:watch": "jest --watch",
|
|
17
|
+
"watch": "npm run build -- --watch"
|
|
18
|
+
},
|
|
19
|
+
"repository": {
|
|
20
|
+
"type": "git",
|
|
21
|
+
"url": "https://github.com/tuc-urz/olea.git",
|
|
22
|
+
"directory": "packages/libraries/redux-offline"
|
|
23
|
+
},
|
|
24
|
+
"author": "",
|
|
25
|
+
"license": "MIT",
|
|
26
|
+
"files": [
|
|
27
|
+
"package.json",
|
|
28
|
+
"LICENSE",
|
|
29
|
+
"README.md",
|
|
30
|
+
"lib/**/*",
|
|
31
|
+
"src/**/*"
|
|
32
|
+
],
|
|
33
|
+
"dependencies": {
|
|
34
|
+
"@babel/runtime": "^7.27.1",
|
|
35
|
+
"redux-persist": "^6.0.0"
|
|
36
|
+
},
|
|
37
|
+
"devDependencies": {
|
|
38
|
+
"@babel/cli": "^7.27.2",
|
|
39
|
+
"@babel/core": "^7.27.1",
|
|
40
|
+
"@babel/plugin-proposal-class-properties": "^7.18.6",
|
|
41
|
+
"@babel/plugin-syntax-object-rest-spread": "^7.8.3",
|
|
42
|
+
"@babel/plugin-transform-flow-strip-types": "^7.27.1",
|
|
43
|
+
"@babel/plugin-transform-runtime": "^7.27.1",
|
|
44
|
+
"@babel/preset-env": "^7.27.2",
|
|
45
|
+
"babel-core": "^7.0.0-bridge.0",
|
|
46
|
+
"babel-eslint": "^10.1.0",
|
|
47
|
+
"babel-jest": "^29.7.0",
|
|
48
|
+
"eslint": "^8.2.0",
|
|
49
|
+
"eslint-config-airbnb-base": "^15.0.0",
|
|
50
|
+
"eslint-config-prettier": "^10.1.5",
|
|
51
|
+
"eslint-plugin-babel": "^5.3.1",
|
|
52
|
+
"eslint-plugin-flowtype": "^8.0.3",
|
|
53
|
+
"eslint-plugin-import": "^2.31.0",
|
|
54
|
+
"eslint-plugin-prettier": "^5.4.0",
|
|
55
|
+
"flow-bin": "^0.272.1",
|
|
56
|
+
"husky": "^9.1.7",
|
|
57
|
+
"jest": "^29.7.0",
|
|
58
|
+
"lint-staged": "^16.0.0",
|
|
59
|
+
"prettier": "^3.5.3",
|
|
60
|
+
"redux": "^4.0.5",
|
|
61
|
+
"redux-devtools-instrument": "^1.10.0",
|
|
62
|
+
"redux-logger": "^3.0.6",
|
|
63
|
+
"redux-persist-node-storage": "^2.0.0",
|
|
64
|
+
"release": "^6.3.1"
|
|
65
|
+
},
|
|
66
|
+
"peerDependencies": {
|
|
67
|
+
"redux": ">=3"
|
|
68
|
+
}
|
|
69
|
+
}
|