@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,109 @@
|
|
|
1
|
+
// flow-typed signature: 62bf4b1b7b6d07346f0aa2b8c5e0d94a
|
|
2
|
+
// flow-typed version: <<STUB>>/redux-logger_v^2.8.2/flow_v0.42.0
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* This is an autogenerated libdef stub for:
|
|
6
|
+
*
|
|
7
|
+
* 'redux-logger'
|
|
8
|
+
*
|
|
9
|
+
* Fill this stub out by replacing all the `any` types.
|
|
10
|
+
*
|
|
11
|
+
* Once filled out, we encourage you to share your work with the
|
|
12
|
+
* community by sending a pull request to:
|
|
13
|
+
* https://github.com/flowtype/flow-typed
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
declare module 'redux-logger' {
|
|
17
|
+
declare module.exports: any;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* We include stubs for each file inside this npm package in case you need to
|
|
22
|
+
* require those files directly. Feel free to delete any files that aren't
|
|
23
|
+
* needed.
|
|
24
|
+
*/
|
|
25
|
+
declare module 'redux-logger/dist/index' {
|
|
26
|
+
declare module.exports: any;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
declare module 'redux-logger/dist/index.min' {
|
|
30
|
+
declare module.exports: any;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
declare module 'redux-logger/lib/core' {
|
|
34
|
+
declare module.exports: any;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
declare module 'redux-logger/lib/defaults' {
|
|
38
|
+
declare module.exports: any;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
declare module 'redux-logger/lib/diff' {
|
|
42
|
+
declare module.exports: any;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
declare module 'redux-logger/lib/helpers' {
|
|
46
|
+
declare module.exports: any;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
declare module 'redux-logger/lib/index' {
|
|
50
|
+
declare module.exports: any;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
declare module 'redux-logger/src/core' {
|
|
54
|
+
declare module.exports: any;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
declare module 'redux-logger/src/defaults' {
|
|
58
|
+
declare module.exports: any;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
declare module 'redux-logger/src/diff' {
|
|
62
|
+
declare module.exports: any;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
declare module 'redux-logger/src/helpers' {
|
|
66
|
+
declare module.exports: any;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
declare module 'redux-logger/src/index' {
|
|
70
|
+
declare module.exports: any;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
// Filename aliases
|
|
74
|
+
declare module 'redux-logger/dist/index.js' {
|
|
75
|
+
declare module.exports: $Exports<'redux-logger/dist/index'>;
|
|
76
|
+
}
|
|
77
|
+
declare module 'redux-logger/dist/index.min.js' {
|
|
78
|
+
declare module.exports: $Exports<'redux-logger/dist/index.min'>;
|
|
79
|
+
}
|
|
80
|
+
declare module 'redux-logger/lib/core.js' {
|
|
81
|
+
declare module.exports: $Exports<'redux-logger/lib/core'>;
|
|
82
|
+
}
|
|
83
|
+
declare module 'redux-logger/lib/defaults.js' {
|
|
84
|
+
declare module.exports: $Exports<'redux-logger/lib/defaults'>;
|
|
85
|
+
}
|
|
86
|
+
declare module 'redux-logger/lib/diff.js' {
|
|
87
|
+
declare module.exports: $Exports<'redux-logger/lib/diff'>;
|
|
88
|
+
}
|
|
89
|
+
declare module 'redux-logger/lib/helpers.js' {
|
|
90
|
+
declare module.exports: $Exports<'redux-logger/lib/helpers'>;
|
|
91
|
+
}
|
|
92
|
+
declare module 'redux-logger/lib/index.js' {
|
|
93
|
+
declare module.exports: $Exports<'redux-logger/lib/index'>;
|
|
94
|
+
}
|
|
95
|
+
declare module 'redux-logger/src/core.js' {
|
|
96
|
+
declare module.exports: $Exports<'redux-logger/src/core'>;
|
|
97
|
+
}
|
|
98
|
+
declare module 'redux-logger/src/defaults.js' {
|
|
99
|
+
declare module.exports: $Exports<'redux-logger/src/defaults'>;
|
|
100
|
+
}
|
|
101
|
+
declare module 'redux-logger/src/diff.js' {
|
|
102
|
+
declare module.exports: $Exports<'redux-logger/src/diff'>;
|
|
103
|
+
}
|
|
104
|
+
declare module 'redux-logger/src/helpers.js' {
|
|
105
|
+
declare module.exports: $Exports<'redux-logger/src/helpers'>;
|
|
106
|
+
}
|
|
107
|
+
declare module 'redux-logger/src/index.js' {
|
|
108
|
+
declare module.exports: $Exports<'redux-logger/src/index'>;
|
|
109
|
+
}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
// flow-typed signature: a49a6c96fe8a8bb3330cce2028588f4c
|
|
2
|
+
// flow-typed version: de5b3a01c6/redux_v4.x.x/flow_>=v0.89.x
|
|
3
|
+
|
|
4
|
+
declare module 'redux' {
|
|
5
|
+
/*
|
|
6
|
+
|
|
7
|
+
S = State
|
|
8
|
+
A = Action
|
|
9
|
+
D = Dispatch
|
|
10
|
+
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
declare export type Action<T> = {
|
|
14
|
+
type: T
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
declare export type DispatchAPI<A> = (action: A) => A;
|
|
18
|
+
|
|
19
|
+
declare export type Dispatch<A: { type: * }> = DispatchAPI<A>;
|
|
20
|
+
|
|
21
|
+
declare export type MiddlewareAPI<S, A, D = Dispatch<A>> = {
|
|
22
|
+
dispatch: D,
|
|
23
|
+
getState(): S,
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
declare export type Store<S, A, D = Dispatch<A>> = {
|
|
27
|
+
// rewrite MiddlewareAPI members in order to get nicer error messages (intersections produce long messages)
|
|
28
|
+
dispatch: D,
|
|
29
|
+
getState(): S,
|
|
30
|
+
subscribe(listener: () => void): () => void,
|
|
31
|
+
replaceReducer(nextReducer: Reducer<S, A>): void,
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
declare export type Reducer<S, A> = (state: S | void, action: A) => S;
|
|
35
|
+
|
|
36
|
+
declare export type CombinedReducer<S, A> = (
|
|
37
|
+
state: ($Shape<S> & {}) | void,
|
|
38
|
+
action: A
|
|
39
|
+
) => S;
|
|
40
|
+
|
|
41
|
+
declare export type Middleware<S, A, D = Dispatch<A>> = (
|
|
42
|
+
api: MiddlewareAPI<S, A, D>
|
|
43
|
+
) => (next: D) => D;
|
|
44
|
+
|
|
45
|
+
declare export type StoreCreator<S, A, D = Dispatch<A>> = {
|
|
46
|
+
(reducer: Reducer<S, A>, enhancer?: StoreEnhancer<S, A, D>): Store<S, A, D>,
|
|
47
|
+
(
|
|
48
|
+
reducer: Reducer<S, A>,
|
|
49
|
+
preloadedState: S,
|
|
50
|
+
enhancer?: StoreEnhancer<S, A, D>
|
|
51
|
+
): Store<S, A, D>,
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
declare export type StoreEnhancer<S, A, D = Dispatch<A>> = (
|
|
55
|
+
next: StoreCreator<S, A, D>
|
|
56
|
+
) => StoreCreator<S, A, D>;
|
|
57
|
+
|
|
58
|
+
declare export function createStore<S, A, D>(
|
|
59
|
+
reducer: Reducer<S, A>,
|
|
60
|
+
enhancer?: StoreEnhancer<S, A, D>
|
|
61
|
+
): Store<S, A, D>;
|
|
62
|
+
declare export function createStore<S, A, D>(
|
|
63
|
+
reducer: Reducer<S, A>,
|
|
64
|
+
preloadedState?: S,
|
|
65
|
+
enhancer?: StoreEnhancer<S, A, D>
|
|
66
|
+
): Store<S, A, D>;
|
|
67
|
+
|
|
68
|
+
declare export function applyMiddleware<S, A, D>(
|
|
69
|
+
...middlewares: Array<Middleware<S, A, D>>
|
|
70
|
+
): StoreEnhancer<S, A, D>;
|
|
71
|
+
|
|
72
|
+
declare export type ActionCreator<A, B> = (...args: Array<B>) => A;
|
|
73
|
+
declare export type ActionCreators<K, A> = {
|
|
74
|
+
[key: K]: ActionCreator<A, any>,
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
declare export function bindActionCreators<
|
|
78
|
+
A,
|
|
79
|
+
C: ActionCreator<A, any>,
|
|
80
|
+
D: DispatchAPI<A>
|
|
81
|
+
>(
|
|
82
|
+
actionCreator: C,
|
|
83
|
+
dispatch: D
|
|
84
|
+
): C;
|
|
85
|
+
declare export function bindActionCreators<
|
|
86
|
+
A,
|
|
87
|
+
K,
|
|
88
|
+
C: ActionCreators<K, A>,
|
|
89
|
+
D: DispatchAPI<A>
|
|
90
|
+
>(
|
|
91
|
+
actionCreators: C,
|
|
92
|
+
dispatch: D
|
|
93
|
+
): C;
|
|
94
|
+
|
|
95
|
+
declare export function combineReducers<O: {}, A>(
|
|
96
|
+
reducers: O
|
|
97
|
+
): CombinedReducer<$ObjMap<O, <S>(r: Reducer<S, any>) => S>, A>;
|
|
98
|
+
|
|
99
|
+
declare export var compose: $Compose;
|
|
100
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.scheduleRetry = exports.networkStatusChanged = exports.completeRetry = exports.busy = void 0;
|
|
8
|
+
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
9
|
+
var _constants = require("./constants");
|
|
10
|
+
var networkStatusChanged = exports.networkStatusChanged = function networkStatusChanged(params) {
|
|
11
|
+
var payload;
|
|
12
|
+
if ((0, _typeof2.default)(params) === 'object') {
|
|
13
|
+
payload = params;
|
|
14
|
+
} else {
|
|
15
|
+
payload = {
|
|
16
|
+
online: params
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
return {
|
|
20
|
+
type: _constants.OFFLINE_STATUS_CHANGED,
|
|
21
|
+
payload: payload
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
var scheduleRetry = exports.scheduleRetry = function scheduleRetry() {
|
|
25
|
+
var delay = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
|
|
26
|
+
return {
|
|
27
|
+
type: _constants.OFFLINE_SCHEDULE_RETRY,
|
|
28
|
+
payload: {
|
|
29
|
+
delay: delay
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
var completeRetry = exports.completeRetry = function completeRetry(action) {
|
|
34
|
+
return {
|
|
35
|
+
type: _constants.OFFLINE_COMPLETE_RETRY,
|
|
36
|
+
payload: action
|
|
37
|
+
};
|
|
38
|
+
};
|
|
39
|
+
var busy = exports.busy = function busy(isBusy) {
|
|
40
|
+
return {
|
|
41
|
+
type: _constants.OFFLINE_BUSY,
|
|
42
|
+
payload: {
|
|
43
|
+
busy: isBusy
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.applyDefaults = void 0;
|
|
8
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
|
+
var _defaults = _interopRequireDefault(require("./defaults"));
|
|
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 applyDefaults = exports.applyDefaults = function applyDefaults() {
|
|
13
|
+
var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
14
|
+
return _objectSpread(_objectSpread({}, _defaults.default), config);
|
|
15
|
+
};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.RESET_STATE = exports.PERSIST_REHYDRATE = exports.OFFLINE_STATUS_CHANGED = exports.OFFLINE_SEND = exports.OFFLINE_SCHEDULE_RETRY = exports.OFFLINE_COMPLETE_RETRY = exports.OFFLINE_BUSY = exports.JS_ERROR = exports.DEFAULT_ROLLBACK = exports.DEFAULT_COMMIT = void 0;
|
|
7
|
+
// Literal ACTION typing allows to ensure a stricter type than string
|
|
8
|
+
var OFFLINE_STATUS_CHANGED = exports.OFFLINE_STATUS_CHANGED = 'Offline/STATUS_CHANGED';
|
|
9
|
+
var OFFLINE_SCHEDULE_RETRY = exports.OFFLINE_SCHEDULE_RETRY = 'Offline/SCHEDULE_RETRY';
|
|
10
|
+
var OFFLINE_COMPLETE_RETRY = exports.OFFLINE_COMPLETE_RETRY = 'Offline/COMPLETE_RETRY';
|
|
11
|
+
var OFFLINE_SEND = exports.OFFLINE_SEND = 'Offline/SEND';
|
|
12
|
+
var OFFLINE_BUSY = exports.OFFLINE_BUSY = 'Offline/BUSY';
|
|
13
|
+
var RESET_STATE = exports.RESET_STATE = 'Offline/RESET_STATE';
|
|
14
|
+
var PERSIST_REHYDRATE = exports.PERSIST_REHYDRATE = 'persist/REHYDRATE';
|
|
15
|
+
var JS_ERROR = exports.JS_ERROR = 'Offline/JS_ERROR';
|
|
16
|
+
var DEFAULT_COMMIT = exports.DEFAULT_COMMIT = 'Offline/DEFAULT_COMMIT';
|
|
17
|
+
var DEFAULT_ROLLBACK = exports.DEFAULT_ROLLBACK = 'Offline/DEFAULT_ROLLBACK';
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _constants = require("../constants");
|
|
8
|
+
var defaultCommit = {
|
|
9
|
+
type: _constants.DEFAULT_COMMIT
|
|
10
|
+
};
|
|
11
|
+
var _default = exports.default = defaultCommit;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _constants = require("../constants");
|
|
8
|
+
var defaultRollback = {
|
|
9
|
+
type: _constants.DEFAULT_ROLLBACK
|
|
10
|
+
};
|
|
11
|
+
var _default = exports.default = defaultRollback;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var handle = function handle(callback, online) {
|
|
8
|
+
// NetInfo is not supported in browsers, hence we only pass online status
|
|
9
|
+
if (window.requestAnimationFrame) {
|
|
10
|
+
window.requestAnimationFrame(function () {
|
|
11
|
+
return callback({
|
|
12
|
+
online: online
|
|
13
|
+
});
|
|
14
|
+
});
|
|
15
|
+
} else {
|
|
16
|
+
setTimeout(function () {
|
|
17
|
+
return callback({
|
|
18
|
+
online: online
|
|
19
|
+
});
|
|
20
|
+
}, 0);
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
var _default = exports.default = function _default(callback) {
|
|
24
|
+
if (typeof window !== 'undefined' && window.addEventListener) {
|
|
25
|
+
window.addEventListener('online', function () {
|
|
26
|
+
return handle(callback, true);
|
|
27
|
+
});
|
|
28
|
+
window.addEventListener('offline', function () {
|
|
29
|
+
return handle(callback, false);
|
|
30
|
+
});
|
|
31
|
+
handle(callback, window.navigator.onLine);
|
|
32
|
+
}
|
|
33
|
+
};
|
|
@@ -0,0 +1,211 @@
|
|
|
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 _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
12
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
13
|
+
var _reactNative = require("react-native");
|
|
14
|
+
var _netinfo = _interopRequireDefault(require("@react-native-community/netinfo"));
|
|
15
|
+
/* eslint no-underscore-dangle: 0 */
|
|
16
|
+
// eslint-disable-line
|
|
17
|
+
// eslint-disable-line
|
|
18
|
+
var DetectNetwork = /*#__PURE__*/function () {
|
|
19
|
+
function DetectNetwork(callback) {
|
|
20
|
+
var _this = this;
|
|
21
|
+
(0, _classCallCheck2.default)(this, DetectNetwork);
|
|
22
|
+
/**
|
|
23
|
+
* Check props for changes
|
|
24
|
+
* @param {string} reach - connection reachability.
|
|
25
|
+
* - Cross-platform: [none, wifi, cellular, unknown]
|
|
26
|
+
* - Android: [bluetooth, ethernet, wimax]
|
|
27
|
+
* @returns {boolean} - Whether the connection reachability or the connection props have changed
|
|
28
|
+
* @private
|
|
29
|
+
*/
|
|
30
|
+
(0, _defineProperty2.default)(this, "_hasChanged", function (reach) {
|
|
31
|
+
if (_this._reach !== reach) {
|
|
32
|
+
return true;
|
|
33
|
+
}
|
|
34
|
+
if (_this._isConnected !== _this._getConnection(reach)) {
|
|
35
|
+
return true;
|
|
36
|
+
}
|
|
37
|
+
return false;
|
|
38
|
+
});
|
|
39
|
+
/**
|
|
40
|
+
* Sets the connection reachability prop
|
|
41
|
+
* @param {string} reach - connection reachability.
|
|
42
|
+
* - Cross-platform: [none, wifi, cellular, unknown]
|
|
43
|
+
* - Android: [bluetooth, ethernet, wimax]
|
|
44
|
+
* @returns {void}
|
|
45
|
+
* @private
|
|
46
|
+
*/
|
|
47
|
+
(0, _defineProperty2.default)(this, "_setReach", function (reach) {
|
|
48
|
+
_this._reach = reach;
|
|
49
|
+
_this._isConnected = _this._getConnection(reach);
|
|
50
|
+
});
|
|
51
|
+
/**
|
|
52
|
+
* Gets the isConnected prop depending on the connection reachability's value
|
|
53
|
+
* @param {string} reach - connection reachability.
|
|
54
|
+
* - Cross-platform: [none, wifi, cellular, unknown]
|
|
55
|
+
* - Android: [bluetooth, ethernet, wimax]
|
|
56
|
+
* @returns {void}
|
|
57
|
+
* @private
|
|
58
|
+
*/
|
|
59
|
+
(0, _defineProperty2.default)(this, "_getConnection", function (reach) {
|
|
60
|
+
return reach !== 'none' && reach !== 'unknown';
|
|
61
|
+
});
|
|
62
|
+
/**
|
|
63
|
+
* Sets the isConnectionExpensive prop
|
|
64
|
+
* @returns {Promise.<void>} Resolves to true if connection is expensive,
|
|
65
|
+
* false if not, and null if not supported.
|
|
66
|
+
* @private
|
|
67
|
+
*/
|
|
68
|
+
(0, _defineProperty2.default)(this, "_setIsConnectionExpensive", /*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee() {
|
|
69
|
+
var _yield$NetInfo$fetch, details, _t;
|
|
70
|
+
return _regenerator.default.wrap(function (_context) {
|
|
71
|
+
while (1) switch (_context.prev = _context.next) {
|
|
72
|
+
case 0:
|
|
73
|
+
_context.prev = 0;
|
|
74
|
+
_context.next = 1;
|
|
75
|
+
return _netinfo.default.fetch();
|
|
76
|
+
case 1:
|
|
77
|
+
_yield$NetInfo$fetch = _context.sent;
|
|
78
|
+
details = _yield$NetInfo$fetch.details;
|
|
79
|
+
_this._isConnectionExpensive = details.isConnectionExpensive;
|
|
80
|
+
_context.next = 3;
|
|
81
|
+
break;
|
|
82
|
+
case 2:
|
|
83
|
+
_context.prev = 2;
|
|
84
|
+
_t = _context["catch"](0);
|
|
85
|
+
// err means that isConnectionExpensive is not supported in iOS
|
|
86
|
+
_this._isConnectionExpensive = null;
|
|
87
|
+
case 3:
|
|
88
|
+
case "end":
|
|
89
|
+
return _context.stop();
|
|
90
|
+
}
|
|
91
|
+
}, _callee, null, [[0, 2]]);
|
|
92
|
+
})));
|
|
93
|
+
/**
|
|
94
|
+
* Sets the shouldInitUpdateReach flag
|
|
95
|
+
* @param {boolean} shouldUpdate - Whether the init method should update the reach prop
|
|
96
|
+
* @returns {void}
|
|
97
|
+
* @private
|
|
98
|
+
*/
|
|
99
|
+
(0, _defineProperty2.default)(this, "_setShouldInitUpdateReach", function (shouldUpdate) {
|
|
100
|
+
_this._shouldInitUpdateReach = shouldUpdate;
|
|
101
|
+
});
|
|
102
|
+
/**
|
|
103
|
+
* Fetches and sets the connection reachability and the isConnected props,
|
|
104
|
+
* if neither of the AppState and NetInfo event listeners have been called
|
|
105
|
+
* @returns {Promise.<void>} Resolves when the props have been
|
|
106
|
+
* initialized and update.
|
|
107
|
+
* @private
|
|
108
|
+
*/
|
|
109
|
+
(0, _defineProperty2.default)(this, "_init", /*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee2() {
|
|
110
|
+
var connectionInfo;
|
|
111
|
+
return _regenerator.default.wrap(function (_context2) {
|
|
112
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
113
|
+
case 0:
|
|
114
|
+
_context2.next = 1;
|
|
115
|
+
return _netinfo.default.fetch();
|
|
116
|
+
case 1:
|
|
117
|
+
connectionInfo = _context2.sent;
|
|
118
|
+
if (_this._shouldInitUpdateReach) {
|
|
119
|
+
_this._update(connectionInfo.type);
|
|
120
|
+
}
|
|
121
|
+
case 2:
|
|
122
|
+
case "end":
|
|
123
|
+
return _context2.stop();
|
|
124
|
+
}
|
|
125
|
+
}, _callee2);
|
|
126
|
+
})));
|
|
127
|
+
/**
|
|
128
|
+
* Check changes on props and store and dispatch if neccesary
|
|
129
|
+
* @param {string} reach - connection reachability.
|
|
130
|
+
* - Cross-platform: [none, wifi, cellular, unknown]
|
|
131
|
+
* - Android: [bluetooth, ethernet, wimax]
|
|
132
|
+
* @returns {void}
|
|
133
|
+
* @private
|
|
134
|
+
*/
|
|
135
|
+
(0, _defineProperty2.default)(this, "_update", function (reach) {
|
|
136
|
+
if (_this._hasChanged(reach)) {
|
|
137
|
+
_this._setReach(reach);
|
|
138
|
+
_this._dispatch();
|
|
139
|
+
}
|
|
140
|
+
});
|
|
141
|
+
/**
|
|
142
|
+
* Executes the given callback to update redux's store with the new internal props
|
|
143
|
+
* @returns {Promise.<void>} Resolves after fetching the isConnectionExpensive
|
|
144
|
+
* and dispatches actions
|
|
145
|
+
* @private
|
|
146
|
+
*/
|
|
147
|
+
(0, _defineProperty2.default)(this, "_dispatch", /*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee3() {
|
|
148
|
+
return _regenerator.default.wrap(function (_context3) {
|
|
149
|
+
while (1) switch (_context3.prev = _context3.next) {
|
|
150
|
+
case 0:
|
|
151
|
+
_context3.next = 1;
|
|
152
|
+
return _this._setIsConnectionExpensive();
|
|
153
|
+
case 1:
|
|
154
|
+
_this._callback({
|
|
155
|
+
online: _this._isConnected,
|
|
156
|
+
netInfo: {
|
|
157
|
+
isConnectionExpensive: _this._isConnectionExpensive,
|
|
158
|
+
reach: _this._reach
|
|
159
|
+
}
|
|
160
|
+
});
|
|
161
|
+
case 2:
|
|
162
|
+
case "end":
|
|
163
|
+
return _context3.stop();
|
|
164
|
+
}
|
|
165
|
+
}, _callee3);
|
|
166
|
+
})));
|
|
167
|
+
this._reach = null;
|
|
168
|
+
this._isConnected = null;
|
|
169
|
+
this._isConnectionExpensive = null;
|
|
170
|
+
this._callback = callback;
|
|
171
|
+
this._shouldInitUpdateReach = true;
|
|
172
|
+
this._init();
|
|
173
|
+
this._addListeners();
|
|
174
|
+
}
|
|
175
|
+
return (0, _createClass2.default)(DetectNetwork, [{
|
|
176
|
+
key: "_addListeners",
|
|
177
|
+
value:
|
|
178
|
+
/**
|
|
179
|
+
* Adds listeners for when connection reachability and app state changes to update props
|
|
180
|
+
* @returns {void}
|
|
181
|
+
* @private
|
|
182
|
+
*/
|
|
183
|
+
function _addListeners() {
|
|
184
|
+
var _this2 = this;
|
|
185
|
+
_netinfo.default.addEventListener(function (connectionInfo) {
|
|
186
|
+
_this2._setShouldInitUpdateReach(false);
|
|
187
|
+
_this2._update(connectionInfo.type);
|
|
188
|
+
});
|
|
189
|
+
_reactNative.AppState.addEventListener('change', /*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee4() {
|
|
190
|
+
var connectionInfo;
|
|
191
|
+
return _regenerator.default.wrap(function (_context4) {
|
|
192
|
+
while (1) switch (_context4.prev = _context4.next) {
|
|
193
|
+
case 0:
|
|
194
|
+
_this2._setShouldInitUpdateReach(false);
|
|
195
|
+
_context4.next = 1;
|
|
196
|
+
return _netinfo.default.fetch();
|
|
197
|
+
case 1:
|
|
198
|
+
connectionInfo = _context4.sent;
|
|
199
|
+
_this2._update(connectionInfo.type);
|
|
200
|
+
case 2:
|
|
201
|
+
case "end":
|
|
202
|
+
return _context4.stop();
|
|
203
|
+
}
|
|
204
|
+
}, _callee4);
|
|
205
|
+
})));
|
|
206
|
+
}
|
|
207
|
+
}]);
|
|
208
|
+
}();
|
|
209
|
+
var _default = exports.default = function _default(callback) {
|
|
210
|
+
return new DetectNetwork(callback);
|
|
211
|
+
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _effect = require("./effect");
|
|
8
|
+
var _default = exports.default = function _default(error, action) {
|
|
9
|
+
var _retries = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
|
|
10
|
+
// not a network error -> discard
|
|
11
|
+
if (!('status' in error)) {
|
|
12
|
+
return true;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
// discard http 4xx errors
|
|
16
|
+
// $FlowFixMe
|
|
17
|
+
return error.status >= 400 && error.status < 500;
|
|
18
|
+
};
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.NetworkError = NetworkError;
|
|
8
|
+
exports.getHeaders = exports.getFormData = exports.default = void 0;
|
|
9
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
10
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
11
|
+
var _excluded = ["Content-Type", "content-type"],
|
|
12
|
+
_excluded2 = ["url", "json"];
|
|
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
|
+
function NetworkError(response, status) {
|
|
16
|
+
this.name = 'NetworkError';
|
|
17
|
+
this.status = status;
|
|
18
|
+
this.response = response;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
// $FlowFixMe
|
|
22
|
+
NetworkError.prototype = Error.prototype;
|
|
23
|
+
var tryParseJSON = function tryParseJSON(json) {
|
|
24
|
+
if (!json) {
|
|
25
|
+
return null;
|
|
26
|
+
}
|
|
27
|
+
try {
|
|
28
|
+
return JSON.parse(json);
|
|
29
|
+
} catch (e) {
|
|
30
|
+
throw new Error("Failed to parse unexpected JSON response: ".concat(json));
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
var getResponseBody = function getResponseBody(res) {
|
|
34
|
+
var contentType = res.headers.get('content-type') || false;
|
|
35
|
+
if (contentType && contentType.indexOf('json') >= 0) {
|
|
36
|
+
return res.text().then(tryParseJSON);
|
|
37
|
+
}
|
|
38
|
+
return res.text();
|
|
39
|
+
};
|
|
40
|
+
var getHeaders = exports.getHeaders = function getHeaders(headers) {
|
|
41
|
+
var _ref = headers || {},
|
|
42
|
+
contentTypeCapitalized = _ref['Content-Type'],
|
|
43
|
+
contentTypeLowerCase = _ref['content-type'],
|
|
44
|
+
restOfHeaders = (0, _objectWithoutProperties2.default)(_ref, _excluded);
|
|
45
|
+
var contentType = contentTypeCapitalized || contentTypeLowerCase || 'application/json';
|
|
46
|
+
return _objectSpread(_objectSpread({}, restOfHeaders), {}, {
|
|
47
|
+
'content-type': contentType
|
|
48
|
+
});
|
|
49
|
+
};
|
|
50
|
+
var getFormData = exports.getFormData = function getFormData(object) {
|
|
51
|
+
var formData = new FormData();
|
|
52
|
+
Object.keys(object).forEach(function (key) {
|
|
53
|
+
Object.keys(object[key]).forEach(function (innerObj) {
|
|
54
|
+
var newObj = object[key][innerObj];
|
|
55
|
+
formData.append(newObj[0], newObj[1]);
|
|
56
|
+
});
|
|
57
|
+
});
|
|
58
|
+
return formData;
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
// eslint-disable-next-line no-unused-vars
|
|
62
|
+
var _default = exports.default = function _default(effect, _action) {
|
|
63
|
+
var url = effect.url,
|
|
64
|
+
json = effect.json,
|
|
65
|
+
options = (0, _objectWithoutProperties2.default)(effect, _excluded2);
|
|
66
|
+
var headers = getHeaders(options.headers);
|
|
67
|
+
if (!(options.body instanceof FormData) && Object.prototype.hasOwnProperty.call(headers, 'content-type') && headers['content-type'].toLowerCase().includes('multipart/form-data')) {
|
|
68
|
+
options.body = getFormData(options.body);
|
|
69
|
+
}
|
|
70
|
+
if (json !== null && json !== undefined) {
|
|
71
|
+
try {
|
|
72
|
+
options.body = JSON.stringify(json);
|
|
73
|
+
} catch (e) {
|
|
74
|
+
return Promise.reject(e);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
return fetch(url, _objectSpread(_objectSpread({}, options), {}, {
|
|
78
|
+
headers: headers
|
|
79
|
+
})).then(function (res) {
|
|
80
|
+
if (res.ok) {
|
|
81
|
+
return getResponseBody(res);
|
|
82
|
+
}
|
|
83
|
+
return getResponseBody(res).then(function (body) {
|
|
84
|
+
throw new NetworkError(body || '', res.status);
|
|
85
|
+
});
|
|
86
|
+
});
|
|
87
|
+
};
|