diff --git a/Libraries/BatchedBridge/BatchedBridgedModules/NativeModules.js b/Libraries/BatchedBridge/BatchedBridgedModules/NativeModules.js index af1540b75b..c6f54bcb93 100644 --- a/Libraries/BatchedBridge/BatchedBridgedModules/NativeModules.js +++ b/Libraries/BatchedBridge/BatchedBridgedModules/NativeModules.js @@ -41,7 +41,7 @@ Object.keys(RemoteModules).forEach((moduleName) => { const NativeModules = {}; Object.keys(RemoteModules).forEach((moduleName) => { Object.defineProperty(NativeModules, moduleName, { - enumerable: true, + enumerable: true, get: () => { let module = RemoteModules[moduleName]; if (module && typeof module.moduleID === 'number' && global.nativeRequireModuleConfig) { @@ -69,8 +69,9 @@ UIManager && Object.keys(UIManager).forEach(viewName => { const viewConfig = UIManager[viewName]; const constants = {}; if (viewConfig.Manager) { + /* $FlowFixMe - nice try. Flow doesn't like getters */ Object.defineProperty(viewConfig, 'Constants', { - enumerable: true, + enumerable: true, get: () => { const viewManager = NativeModules[normalizePrefix(viewConfig.Manager)]; viewManager && Object.keys(viewManager).forEach(key => { diff --git a/Libraries/BatchedBridge/BatchedBridgedModules/NativeModules.js.flow b/Libraries/BatchedBridge/BatchedBridgedModules/NativeModules.js.flow new file mode 100644 index 0000000000..f2181b965b --- /dev/null +++ b/Libraries/BatchedBridge/BatchedBridgedModules/NativeModules.js.flow @@ -0,0 +1,17 @@ +/** + * Copyright (c) 2015-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule NativeModules + * @flow + */ +'use strict'; + +const BatchedBridge = require('BatchedBridge'); +const RemoteModules = BatchedBridge.RemoteModules; + +module.exports = RemoteModules;