From 2a418bed0cd3a453cfa9f0d2bada06251ab3594d Mon Sep 17 00:00:00 2001 From: Evan Bacon Date: Mon, 11 Mar 2019 20:48:25 -0700 Subject: [PATCH] [change] Organize unimplemented modules in directories Creates a {path}/index.js for each module that has no web implementation. This enables the babel preset to rewrite all paths and prevent apps from bundling unused modules. Fix #1281 Close #1282 --- .../src/moduleMap.js | 30 +++++++++ .../src/exports/ActionSheetIOS/index.js | 1 + .../src/exports/AlertIOS/index.js | 1 + .../src/exports/CameraRoll/index.js | 1 + .../src/exports/DatePickerAndroid/index.js | 1 + .../src/exports/DatePickerIOS/index.js | 2 + .../src/exports/DrawerLayoutAndroid/index.js | 2 + .../src/exports/ImageEditor/index.js | 2 + .../src/exports/ImagePickerIOS/index.js | 1 + .../src/exports/ImageStore/index.js | 2 + .../src/exports/InputAccessoryView/index.js | 2 + .../src/exports/MaskedViewIOS/index.js | 2 + .../src/exports/NavigatorIOS/index.js | 2 + .../src/exports/PermissionsAndroid/index.js | 1 + .../src/exports/PickerIOS/index.js | 2 + .../src/exports/ProgressBarAndroid/index.js | 2 + .../src/exports/ProgressViewIOS/index.js | 2 + .../src/exports/PushNotificationIOS/index.js | 1 + .../src/exports/SegmentedControlIOS/index.js | 2 + .../src/exports/Settings/index.js | 1 + .../src/exports/SnapshotViewIOS/index.js | 2 + .../src/exports/StatusBarIOS/index.js | 1 + .../src/exports/Systrace/index.js | 1 + .../src/exports/TVEventHandler/index.js | 1 + .../src/exports/TabBarIOS/index.js | 2 + .../src/exports/TimePickerAndroid/index.js | 1 + .../src/exports/ToastAndroid/index.js | 2 + .../src/exports/ToolbarAndroid/index.js | 2 + .../src/exports/VibrationIOS/index.js | 1 + .../src/exports/ViewPagerAndroid/index.js | 2 + .../src/exports/WebView/index.js | 2 + packages/react-native-web/src/index.js | 63 +++++++++---------- 32 files changed, 107 insertions(+), 33 deletions(-) create mode 100644 packages/react-native-web/src/exports/ActionSheetIOS/index.js create mode 100644 packages/react-native-web/src/exports/AlertIOS/index.js create mode 100644 packages/react-native-web/src/exports/CameraRoll/index.js create mode 100644 packages/react-native-web/src/exports/DatePickerAndroid/index.js create mode 100644 packages/react-native-web/src/exports/DatePickerIOS/index.js create mode 100644 packages/react-native-web/src/exports/DrawerLayoutAndroid/index.js create mode 100644 packages/react-native-web/src/exports/ImageEditor/index.js create mode 100644 packages/react-native-web/src/exports/ImagePickerIOS/index.js create mode 100644 packages/react-native-web/src/exports/ImageStore/index.js create mode 100644 packages/react-native-web/src/exports/InputAccessoryView/index.js create mode 100644 packages/react-native-web/src/exports/MaskedViewIOS/index.js create mode 100644 packages/react-native-web/src/exports/NavigatorIOS/index.js create mode 100644 packages/react-native-web/src/exports/PermissionsAndroid/index.js create mode 100644 packages/react-native-web/src/exports/PickerIOS/index.js create mode 100644 packages/react-native-web/src/exports/ProgressBarAndroid/index.js create mode 100644 packages/react-native-web/src/exports/ProgressViewIOS/index.js create mode 100644 packages/react-native-web/src/exports/PushNotificationIOS/index.js create mode 100644 packages/react-native-web/src/exports/SegmentedControlIOS/index.js create mode 100644 packages/react-native-web/src/exports/Settings/index.js create mode 100644 packages/react-native-web/src/exports/SnapshotViewIOS/index.js create mode 100644 packages/react-native-web/src/exports/StatusBarIOS/index.js create mode 100644 packages/react-native-web/src/exports/Systrace/index.js create mode 100644 packages/react-native-web/src/exports/TVEventHandler/index.js create mode 100644 packages/react-native-web/src/exports/TabBarIOS/index.js create mode 100644 packages/react-native-web/src/exports/TimePickerAndroid/index.js create mode 100644 packages/react-native-web/src/exports/ToastAndroid/index.js create mode 100644 packages/react-native-web/src/exports/ToolbarAndroid/index.js create mode 100644 packages/react-native-web/src/exports/VibrationIOS/index.js create mode 100644 packages/react-native-web/src/exports/ViewPagerAndroid/index.js create mode 100644 packages/react-native-web/src/exports/WebView/index.js diff --git a/packages/babel-plugin-react-native-web/src/moduleMap.js b/packages/babel-plugin-react-native-web/src/moduleMap.js index 65eee89b..d2e822a1 100644 --- a/packages/babel-plugin-react-native-web/src/moduleMap.js +++ b/packages/babel-plugin-react-native-web/src/moduleMap.js @@ -1,55 +1,82 @@ // THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. module.exports = { AccessibilityInfo: true, + ActionSheetIOS: true, ActivityIndicator: true, Alert: true, + AlertIOS: true, Animated: true, AppRegistry: true, AppState: true, AsyncStorage: true, BackHandler: true, Button: true, + CameraRoll: true, CheckBox: true, Clipboard: true, ColorPropType: true, + DatePickerAndroid: true, + DatePickerIOS: true, DeviceInfo: true, Dimensions: true, + DrawerLayoutAndroid: true, Easing: true, EdgeInsetsPropType: true, FlatList: true, I18nManager: true, Image: true, ImageBackground: true, + ImageEditor: true, + ImagePickerIOS: true, + ImageStore: true, + InputAccessoryView: true, InteractionManager: true, Keyboard: true, KeyboardAvoidingView: true, LayoutAnimation: true, Linking: true, ListView: true, + MaskedViewIOS: true, Modal: true, NativeEventEmitter: true, NativeModules: true, + NavigatorIOS: true, NetInfo: true, PanResponder: true, + PermissionsAndroid: true, Picker: true, + PickerIOS: true, PixelRatio: true, Platform: true, PointPropType: true, ProgressBar: true, + ProgressBarAndroid: true, + ProgressViewIOS: true, + PushNotificationIOS: true, RefreshControl: true, SafeAreaView: true, ScrollView: true, SectionList: true, + SegmentedControlIOS: true, + Settings: true, Share: true, Slider: true, + SnapshotViewIOS: true, StatusBar: true, + StatusBarIOS: true, StyleSheet: true, SwipeableFlatList: true, SwipeableListView: true, Switch: true, + Systrace: true, + TVEventHandler: true, + TabBarIOS: true, Text: true, TextInput: true, TextPropTypes: true, + TimePickerAndroid: true, + ToastAndroid: true, + ToolbarAndroid: true, Touchable: true, TouchableHighlight: true, TouchableNativeFeedback: true, @@ -57,9 +84,12 @@ module.exports = { TouchableWithoutFeedback: true, UIManager: true, Vibration: true, + VibrationIOS: true, View: true, + ViewPagerAndroid: true, ViewPropTypes: true, VirtualizedList: true, + WebView: true, YellowBox: true, createElement: true, findNodeHandle: true, diff --git a/packages/react-native-web/src/exports/ActionSheetIOS/index.js b/packages/react-native-web/src/exports/ActionSheetIOS/index.js new file mode 100644 index 00000000..ff8b4c56 --- /dev/null +++ b/packages/react-native-web/src/exports/ActionSheetIOS/index.js @@ -0,0 +1 @@ +export default {}; diff --git a/packages/react-native-web/src/exports/AlertIOS/index.js b/packages/react-native-web/src/exports/AlertIOS/index.js new file mode 100644 index 00000000..ff8b4c56 --- /dev/null +++ b/packages/react-native-web/src/exports/AlertIOS/index.js @@ -0,0 +1 @@ +export default {}; diff --git a/packages/react-native-web/src/exports/CameraRoll/index.js b/packages/react-native-web/src/exports/CameraRoll/index.js new file mode 100644 index 00000000..ff8b4c56 --- /dev/null +++ b/packages/react-native-web/src/exports/CameraRoll/index.js @@ -0,0 +1 @@ +export default {}; diff --git a/packages/react-native-web/src/exports/DatePickerAndroid/index.js b/packages/react-native-web/src/exports/DatePickerAndroid/index.js new file mode 100644 index 00000000..ff8b4c56 --- /dev/null +++ b/packages/react-native-web/src/exports/DatePickerAndroid/index.js @@ -0,0 +1 @@ +export default {}; diff --git a/packages/react-native-web/src/exports/DatePickerIOS/index.js b/packages/react-native-web/src/exports/DatePickerIOS/index.js new file mode 100644 index 00000000..9cd4039d --- /dev/null +++ b/packages/react-native-web/src/exports/DatePickerIOS/index.js @@ -0,0 +1,2 @@ +import UnimplementedView from '../../modules/UnimplementedView'; +export default UnimplementedView; diff --git a/packages/react-native-web/src/exports/DrawerLayoutAndroid/index.js b/packages/react-native-web/src/exports/DrawerLayoutAndroid/index.js new file mode 100644 index 00000000..9cd4039d --- /dev/null +++ b/packages/react-native-web/src/exports/DrawerLayoutAndroid/index.js @@ -0,0 +1,2 @@ +import UnimplementedView from '../../modules/UnimplementedView'; +export default UnimplementedView; diff --git a/packages/react-native-web/src/exports/ImageEditor/index.js b/packages/react-native-web/src/exports/ImageEditor/index.js new file mode 100644 index 00000000..9cd4039d --- /dev/null +++ b/packages/react-native-web/src/exports/ImageEditor/index.js @@ -0,0 +1,2 @@ +import UnimplementedView from '../../modules/UnimplementedView'; +export default UnimplementedView; diff --git a/packages/react-native-web/src/exports/ImagePickerIOS/index.js b/packages/react-native-web/src/exports/ImagePickerIOS/index.js new file mode 100644 index 00000000..ff8b4c56 --- /dev/null +++ b/packages/react-native-web/src/exports/ImagePickerIOS/index.js @@ -0,0 +1 @@ +export default {}; diff --git a/packages/react-native-web/src/exports/ImageStore/index.js b/packages/react-native-web/src/exports/ImageStore/index.js new file mode 100644 index 00000000..9cd4039d --- /dev/null +++ b/packages/react-native-web/src/exports/ImageStore/index.js @@ -0,0 +1,2 @@ +import UnimplementedView from '../../modules/UnimplementedView'; +export default UnimplementedView; diff --git a/packages/react-native-web/src/exports/InputAccessoryView/index.js b/packages/react-native-web/src/exports/InputAccessoryView/index.js new file mode 100644 index 00000000..9cd4039d --- /dev/null +++ b/packages/react-native-web/src/exports/InputAccessoryView/index.js @@ -0,0 +1,2 @@ +import UnimplementedView from '../../modules/UnimplementedView'; +export default UnimplementedView; diff --git a/packages/react-native-web/src/exports/MaskedViewIOS/index.js b/packages/react-native-web/src/exports/MaskedViewIOS/index.js new file mode 100644 index 00000000..9cd4039d --- /dev/null +++ b/packages/react-native-web/src/exports/MaskedViewIOS/index.js @@ -0,0 +1,2 @@ +import UnimplementedView from '../../modules/UnimplementedView'; +export default UnimplementedView; diff --git a/packages/react-native-web/src/exports/NavigatorIOS/index.js b/packages/react-native-web/src/exports/NavigatorIOS/index.js new file mode 100644 index 00000000..9cd4039d --- /dev/null +++ b/packages/react-native-web/src/exports/NavigatorIOS/index.js @@ -0,0 +1,2 @@ +import UnimplementedView from '../../modules/UnimplementedView'; +export default UnimplementedView; diff --git a/packages/react-native-web/src/exports/PermissionsAndroid/index.js b/packages/react-native-web/src/exports/PermissionsAndroid/index.js new file mode 100644 index 00000000..ff8b4c56 --- /dev/null +++ b/packages/react-native-web/src/exports/PermissionsAndroid/index.js @@ -0,0 +1 @@ +export default {}; diff --git a/packages/react-native-web/src/exports/PickerIOS/index.js b/packages/react-native-web/src/exports/PickerIOS/index.js new file mode 100644 index 00000000..9cd4039d --- /dev/null +++ b/packages/react-native-web/src/exports/PickerIOS/index.js @@ -0,0 +1,2 @@ +import UnimplementedView from '../../modules/UnimplementedView'; +export default UnimplementedView; diff --git a/packages/react-native-web/src/exports/ProgressBarAndroid/index.js b/packages/react-native-web/src/exports/ProgressBarAndroid/index.js new file mode 100644 index 00000000..9cd4039d --- /dev/null +++ b/packages/react-native-web/src/exports/ProgressBarAndroid/index.js @@ -0,0 +1,2 @@ +import UnimplementedView from '../../modules/UnimplementedView'; +export default UnimplementedView; diff --git a/packages/react-native-web/src/exports/ProgressViewIOS/index.js b/packages/react-native-web/src/exports/ProgressViewIOS/index.js new file mode 100644 index 00000000..9cd4039d --- /dev/null +++ b/packages/react-native-web/src/exports/ProgressViewIOS/index.js @@ -0,0 +1,2 @@ +import UnimplementedView from '../../modules/UnimplementedView'; +export default UnimplementedView; diff --git a/packages/react-native-web/src/exports/PushNotificationIOS/index.js b/packages/react-native-web/src/exports/PushNotificationIOS/index.js new file mode 100644 index 00000000..ff8b4c56 --- /dev/null +++ b/packages/react-native-web/src/exports/PushNotificationIOS/index.js @@ -0,0 +1 @@ +export default {}; diff --git a/packages/react-native-web/src/exports/SegmentedControlIOS/index.js b/packages/react-native-web/src/exports/SegmentedControlIOS/index.js new file mode 100644 index 00000000..9cd4039d --- /dev/null +++ b/packages/react-native-web/src/exports/SegmentedControlIOS/index.js @@ -0,0 +1,2 @@ +import UnimplementedView from '../../modules/UnimplementedView'; +export default UnimplementedView; diff --git a/packages/react-native-web/src/exports/Settings/index.js b/packages/react-native-web/src/exports/Settings/index.js new file mode 100644 index 00000000..ff8b4c56 --- /dev/null +++ b/packages/react-native-web/src/exports/Settings/index.js @@ -0,0 +1 @@ +export default {}; diff --git a/packages/react-native-web/src/exports/SnapshotViewIOS/index.js b/packages/react-native-web/src/exports/SnapshotViewIOS/index.js new file mode 100644 index 00000000..9cd4039d --- /dev/null +++ b/packages/react-native-web/src/exports/SnapshotViewIOS/index.js @@ -0,0 +1,2 @@ +import UnimplementedView from '../../modules/UnimplementedView'; +export default UnimplementedView; diff --git a/packages/react-native-web/src/exports/StatusBarIOS/index.js b/packages/react-native-web/src/exports/StatusBarIOS/index.js new file mode 100644 index 00000000..ff8b4c56 --- /dev/null +++ b/packages/react-native-web/src/exports/StatusBarIOS/index.js @@ -0,0 +1 @@ +export default {}; diff --git a/packages/react-native-web/src/exports/Systrace/index.js b/packages/react-native-web/src/exports/Systrace/index.js new file mode 100644 index 00000000..ff8b4c56 --- /dev/null +++ b/packages/react-native-web/src/exports/Systrace/index.js @@ -0,0 +1 @@ +export default {}; diff --git a/packages/react-native-web/src/exports/TVEventHandler/index.js b/packages/react-native-web/src/exports/TVEventHandler/index.js new file mode 100644 index 00000000..ff8b4c56 --- /dev/null +++ b/packages/react-native-web/src/exports/TVEventHandler/index.js @@ -0,0 +1 @@ +export default {}; diff --git a/packages/react-native-web/src/exports/TabBarIOS/index.js b/packages/react-native-web/src/exports/TabBarIOS/index.js new file mode 100644 index 00000000..9cd4039d --- /dev/null +++ b/packages/react-native-web/src/exports/TabBarIOS/index.js @@ -0,0 +1,2 @@ +import UnimplementedView from '../../modules/UnimplementedView'; +export default UnimplementedView; diff --git a/packages/react-native-web/src/exports/TimePickerAndroid/index.js b/packages/react-native-web/src/exports/TimePickerAndroid/index.js new file mode 100644 index 00000000..ff8b4c56 --- /dev/null +++ b/packages/react-native-web/src/exports/TimePickerAndroid/index.js @@ -0,0 +1 @@ +export default {}; diff --git a/packages/react-native-web/src/exports/ToastAndroid/index.js b/packages/react-native-web/src/exports/ToastAndroid/index.js new file mode 100644 index 00000000..9cd4039d --- /dev/null +++ b/packages/react-native-web/src/exports/ToastAndroid/index.js @@ -0,0 +1,2 @@ +import UnimplementedView from '../../modules/UnimplementedView'; +export default UnimplementedView; diff --git a/packages/react-native-web/src/exports/ToolbarAndroid/index.js b/packages/react-native-web/src/exports/ToolbarAndroid/index.js new file mode 100644 index 00000000..9cd4039d --- /dev/null +++ b/packages/react-native-web/src/exports/ToolbarAndroid/index.js @@ -0,0 +1,2 @@ +import UnimplementedView from '../../modules/UnimplementedView'; +export default UnimplementedView; diff --git a/packages/react-native-web/src/exports/VibrationIOS/index.js b/packages/react-native-web/src/exports/VibrationIOS/index.js new file mode 100644 index 00000000..ff8b4c56 --- /dev/null +++ b/packages/react-native-web/src/exports/VibrationIOS/index.js @@ -0,0 +1 @@ +export default {}; diff --git a/packages/react-native-web/src/exports/ViewPagerAndroid/index.js b/packages/react-native-web/src/exports/ViewPagerAndroid/index.js new file mode 100644 index 00000000..9cd4039d --- /dev/null +++ b/packages/react-native-web/src/exports/ViewPagerAndroid/index.js @@ -0,0 +1,2 @@ +import UnimplementedView from '../../modules/UnimplementedView'; +export default UnimplementedView; diff --git a/packages/react-native-web/src/exports/WebView/index.js b/packages/react-native-web/src/exports/WebView/index.js new file mode 100644 index 00000000..9cd4039d --- /dev/null +++ b/packages/react-native-web/src/exports/WebView/index.js @@ -0,0 +1,2 @@ +import UnimplementedView from '../../modules/UnimplementedView'; +export default UnimplementedView; diff --git a/packages/react-native-web/src/index.js b/packages/react-native-web/src/index.js index 9acc0d73..d67a2225 100644 --- a/packages/react-native-web/src/index.js +++ b/packages/react-native-web/src/index.js @@ -1,5 +1,3 @@ -import UnimplementedView from './modules/UnimplementedView'; - import createElement from './exports/createElement'; import findNodeHandle from './exports/findNodeHandle'; import processColor from './exports/processColor'; @@ -73,39 +71,38 @@ import ColorPropType from './exports/ColorPropType'; import EdgeInsetsPropType from './exports/EdgeInsetsPropType'; import PointPropType from './exports/PointPropType'; -const emptyObject = {}; // compat (components) -const DatePickerIOS = UnimplementedView; -const DrawerLayoutAndroid = UnimplementedView; -const ImageEditor = UnimplementedView; -const ImageStore = UnimplementedView; -const InputAccessoryView = UnimplementedView; -const MaskedViewIOS = UnimplementedView; -const NavigatorIOS = UnimplementedView; -const PickerIOS = Picker; -const ProgressBarAndroid = UnimplementedView; -const ProgressViewIOS = UnimplementedView; -const SegmentedControlIOS = UnimplementedView; -const SnapshotViewIOS = UnimplementedView; -const TabBarIOS = UnimplementedView; -const ToastAndroid = UnimplementedView; -const ToolbarAndroid = UnimplementedView; -const ViewPagerAndroid = UnimplementedView; -const WebView = UnimplementedView; +import DatePickerIOS from './exports/DatePickerIOS'; +import DrawerLayoutAndroid from './exports/DrawerLayoutAndroid'; +import ImageEditor from './exports/ImageEditor'; +import ImageStore from './exports/ImageStore'; +import InputAccessoryView from './exports/InputAccessoryView'; +import MaskedViewIOS from './exports/MaskedViewIOS'; +import NavigatorIOS from './exports/NavigatorIOS'; +import PickerIOS from './exports/PickerIOS'; +import ProgressBarAndroid from './exports/ProgressBarAndroid'; +import ProgressViewIOS from './exports/ProgressViewIOS'; +import SegmentedControlIOS from './exports/SegmentedControlIOS'; +import SnapshotViewIOS from './exports/SnapshotViewIOS'; +import TabBarIOS from './exports/TabBarIOS'; +import ToastAndroid from './exports/ToastAndroid'; +import ToolbarAndroid from './exports/ToolbarAndroid'; +import ViewPagerAndroid from './exports/ViewPagerAndroid'; +import WebView from './exports/WebView'; // compat (apis) -const ActionSheetIOS = emptyObject; -const AlertIOS = emptyObject; -const CameraRoll = emptyObject; -const DatePickerAndroid = emptyObject; -const ImagePickerIOS = emptyObject; -const PermissionsAndroid = emptyObject; -const PushNotificationIOS = emptyObject; -const Settings = emptyObject; -const StatusBarIOS = emptyObject; -const Systrace = emptyObject; -const TimePickerAndroid = emptyObject; -const TVEventHandler = emptyObject; -const VibrationIOS = emptyObject; +import ActionSheetIOS from './exports/ActionSheetIOS'; +import AlertIOS from './exports/AlertIOS'; +import CameraRoll from './exports/CameraRoll'; +import DatePickerAndroid from './exports/DatePickerAndroid'; +import ImagePickerIOS from './exports/ImagePickerIOS'; +import PermissionsAndroid from './exports/PermissionsAndroid'; +import PushNotificationIOS from './exports/PushNotificationIOS'; +import Settings from './exports/Settings'; +import StatusBarIOS from './exports/StatusBarIOS'; +import Systrace from './exports/Systrace'; +import TimePickerAndroid from './exports/TimePickerAndroid'; +import TVEventHandler from './exports/TVEventHandler'; +import VibrationIOS from './exports/VibrationIOS'; export { // top-level API