electron/lib/common/api/exports/electron.js
2016-05-06 10:12:54 -07:00

52 lines
1.3 KiB
JavaScript

// 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')
}
},
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')
}
}
})
}