// Do not expose the internal modules to `require`. const hideInternalModules = function() { var globalPaths = require('module').globalPaths; if (globalPaths.length === 3) { // Remove the "common/api/lib" and "browser-or-renderer/api/lib". return globalPaths.splice(0, 2); } }; // Attaches properties to |exports|. exports.defineProperties = function(exports) { return Object.defineProperties(exports, { hideInternalModules: { enumerable: true, value: hideInternalModules }, // Common modules, please sort with alphabet order. clipboard: { // Must be enumerable, otherwise it woulde be invisible to remote module. enumerable: true, get: function() { return require('../clipboard'); } }, crashReporter: { enumerable: true, get: function() { return require('../crash-reporter'); } }, deprecations: { enumerable: true, get: function() { return require('../deprecations'); } }, nativeImage: { enumerable: true, get: function() { return require('../native-image'); } }, shell: { enumerable: true, get: function() { return require('../shell'); } }, // The internal modules, invisible unless you know their names. CallbacksRegistry: { get: function() { return require('../callbacks-registry'); } }, deprecate: { get: function() { return require('../deprecate'); } } }); };