Refactor electron exports to keep module list in separate files
This commit is contained in:
parent
14b548f27a
commit
44bd93589a
8 changed files with 79 additions and 236 deletions
|
@ -1,38 +1,12 @@
|
|||
const common = require('../../../common/api/exports/electron')
|
||||
const moduleList = require('../module-list')
|
||||
|
||||
// Import common modules.
|
||||
common.defineProperties(exports)
|
||||
|
||||
Object.defineProperties(exports, {
|
||||
// Renderer side modules, please sort with alphabet order.
|
||||
desktopCapturer: {
|
||||
enumerable: true,
|
||||
get: function () {
|
||||
return require('../desktop-capturer')
|
||||
}
|
||||
},
|
||||
ipcRenderer: {
|
||||
enumerable: true,
|
||||
get: function () {
|
||||
return require('../ipc-renderer')
|
||||
}
|
||||
},
|
||||
remote: {
|
||||
enumerable: true,
|
||||
get: function () {
|
||||
return require('../remote')
|
||||
}
|
||||
},
|
||||
screen: {
|
||||
enumerable: true,
|
||||
get: function () {
|
||||
return require('../screen')
|
||||
}
|
||||
},
|
||||
webFrame: {
|
||||
enumerable: true,
|
||||
get: function () {
|
||||
return require('../web-frame')
|
||||
}
|
||||
}
|
||||
})
|
||||
for (const module of moduleList) {
|
||||
Object.defineProperty(exports, module.name, {
|
||||
enumerable: !module.private,
|
||||
get: () => require(`../${module.file}`)
|
||||
})
|
||||
}
|
||||
|
|
8
lib/renderer/api/module-list.js
Normal file
8
lib/renderer/api/module-list.js
Normal file
|
@ -0,0 +1,8 @@
|
|||
// Renderer side modules, please sort alphabetically.
|
||||
module.exports = [
|
||||
{name: 'desktopCapturer', file: 'desktop-capturer'},
|
||||
{name: 'ipcRenderer', file: 'ipc-renderer'},
|
||||
{name: 'remote', file: 'remote'},
|
||||
{name: 'screen', file: 'screen'},
|
||||
{name: 'webFrame', file: 'web-frame'}
|
||||
]
|
|
@ -340,32 +340,12 @@ const addBuiltinProperty = (name) => {
|
|||
})
|
||||
}
|
||||
|
||||
// Add each browser module name as a property
|
||||
// This list should match the exports in browser/api/exports/electron.js
|
||||
const browserModules = [
|
||||
'app',
|
||||
'autoUpdater',
|
||||
'BrowserWindow',
|
||||
'contentTracing',
|
||||
'dialog',
|
||||
'globalShortcut',
|
||||
'ipcMain',
|
||||
'Menu',
|
||||
'MenuItem',
|
||||
'net',
|
||||
'powerMonitor',
|
||||
'powerSaveBlocker',
|
||||
'protocol',
|
||||
'screen',
|
||||
'session',
|
||||
'systemPreferences',
|
||||
'TouchBar',
|
||||
'Tray',
|
||||
'webContents'
|
||||
]
|
||||
browserModules.forEach(addBuiltinProperty)
|
||||
const browserModules =
|
||||
require('../../common/api/module-list').concat(
|
||||
require('../../browser/api/module-list'))
|
||||
|
||||
// Add each common module name as a property
|
||||
const commonModules = {}
|
||||
require('../../common/api/exports/electron').defineProperties(commonModules)
|
||||
Object.getOwnPropertyNames(commonModules).forEach(addBuiltinProperty)
|
||||
// And add a helper receiver for each one.
|
||||
browserModules
|
||||
.filter((m) => !m.private)
|
||||
.map((m) => m.name)
|
||||
.forEach(addBuiltinProperty)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue