Browse Source

Add electron.hideInternalModules

Cheng Zhao 9 years ago
parent
commit
2ca5a33d28

+ 3 - 3
atom/browser/lib/init.coffee

@@ -13,13 +13,13 @@ require path.resolve(__dirname, '..', '..', 'common', 'lib', 'reset-search-paths
 # Import common settings.
 require path.resolve(__dirname, '..', '..', 'common', 'lib', 'init')
 
-# Expose public APIs.
 globalPaths = Module.globalPaths
-globalPaths.push path.resolve(__dirname, '..', 'api', 'lib', 'exports')
-
 unless process.env.ELECTRON_HIDE_INTERNAL_MODULES
   globalPaths.push path.resolve(__dirname, '..', 'api', 'lib')
 
+# Expose public APIs.
+globalPaths.push path.resolve(__dirname, '..', 'api', 'lib', 'exports')
+
 if process.platform is 'win32'
   # Redirect node's console to use our own implementations, since node can not
   # handle console output when running as GUI program.

+ 7 - 0
atom/common/api/lib/exports/electron.coffee

@@ -1,3 +1,10 @@
+# Do not expose the internal modules to `require`.
+exports.hideInternalModules = ->
+  {globalPaths} = require 'module'
+  if globalPaths.length is 3
+    # Remove the "common/api/lib" and "browser-or-renderer/api/lib".
+    globalPaths.splice 0, 2
+
 Object.defineProperties exports,
   # Common modules, please sort with alphabet order.
   clipboard:

+ 3 - 3
atom/renderer/lib/init.coffee

@@ -13,13 +13,13 @@ require path.resolve(__dirname, '..', '..', 'common', 'lib', 'reset-search-paths
 # Import common settings.
 require path.resolve(__dirname, '..', '..', 'common', 'lib', 'init')
 
-# Expose public APIs.
 globalPaths = Module.globalPaths
-globalPaths.push path.resolve(__dirname, '..', 'api', 'lib', 'exports')
-
 unless process.env.ELECTRON_HIDE_INTERNAL_MODULES
   globalPaths.push path.resolve(__dirname, '..', 'api', 'lib')
 
+# Expose public APIs.
+globalPaths.push path.resolve(__dirname, '..', 'api', 'lib', 'exports')
+
 # The global variable will be used by ipc for event dispatching
 v8Util = process.atomBinding 'v8_util'
 v8Util.setHiddenValue global, 'ipc', new events.EventEmitter