Refactor electron exports to keep module list in separate files

This commit is contained in:
Thiago de Arruda 2017-03-06 11:58:10 -03:00
parent 14b548f27a
commit 44bd93589a
8 changed files with 79 additions and 236 deletions

View file

@ -1,131 +1,13 @@
const common = require('../../../common/api/exports/electron')
// since browser module list is also used in renderer, keep it separate.
const moduleList = require('../module-list')
// Import common modules.
common.defineProperties(exports)
Object.defineProperties(exports, {
// Browser side modules, please sort alphabetically.
// Any modules added here must also be added to the browserModules array
// in remote.js
app: {
enumerable: true,
get: function () {
return require('../app')
}
},
autoUpdater: {
enumerable: true,
get: function () {
return require('../auto-updater')
}
},
BrowserWindow: {
enumerable: true,
get: function () {
return require('../browser-window')
}
},
contentTracing: {
enumerable: true,
get: function () {
return require('../content-tracing')
}
},
dialog: {
enumerable: true,
get: function () {
return require('../dialog')
}
},
globalShortcut: {
enumerable: true,
get: function () {
return require('../global-shortcut')
}
},
ipcMain: {
enumerable: true,
get: function () {
return require('../ipc-main')
}
},
Menu: {
enumerable: true,
get: function () {
return require('../menu')
}
},
MenuItem: {
enumerable: true,
get: function () {
return require('../menu-item')
}
},
net: {
enumerable: true,
get: function () {
return require('../net')
}
},
powerMonitor: {
enumerable: true,
get: function () {
return require('../power-monitor')
}
},
powerSaveBlocker: {
enumerable: true,
get: function () {
return require('../power-save-blocker')
}
},
protocol: {
enumerable: true,
get: function () {
return require('../protocol')
}
},
screen: {
enumerable: true,
get: function () {
return require('../screen')
}
},
session: {
enumerable: true,
get: function () {
return require('../session')
}
},
systemPreferences: {
enumerable: true,
get: function () {
return require('../system-preferences')
}
},
TouchBar: {
enumerable: true,
get: function () {
return require('../touch-bar')
}
},
Tray: {
enumerable: true,
get: function () {
return require('../tray')
}
},
webContents: {
enumerable: true,
get: function () {
return require('../web-contents')
}
},
// The internal modules, invisible unless you know their names.
NavigationController: {
get: function () {
return require('../navigation-controller')
}
}
})
for (const module of moduleList) {
Object.defineProperty(exports, module.name, {
enumerable: !module.private,
get: () => require(`../${module.file}`)
})
}