refactor: unify module-list format and exports/electron (#19697)

This commit is contained in:
Milan Burda 2019-08-23 11:18:58 +02:00 committed by Alexey Kuzmin
parent c6a8b7f959
commit 7825d043f2
18 changed files with 108 additions and 162 deletions

View file

@ -1,25 +0,0 @@
'use strict'
const moduleList = require('@electron/internal/sandboxed_renderer/api/module-list')
const handleESModule = (m) => {
// Handle Typescript modules with an "export default X" statement
if (m.__esModule && m.default) return m.default
return m
}
for (const {
name,
load,
enabled = true,
private: isPrivate = false
} of moduleList) {
if (!enabled) {
continue
}
Object.defineProperty(exports, name, {
enumerable: !isPrivate,
get: () => handleESModule(load())
})
}

View file

@ -0,0 +1,4 @@
import { defineProperties } from '@electron/internal/common/define-properties'
import { moduleList } from '@electron/internal/sandboxed_renderer/api/module-list'
defineProperties(exports, moduleList)

View file

@ -1,38 +0,0 @@
'use strict'
const features = process.electronBinding('features')
module.exports = [
{
name: 'crashReporter',
load: () => require('@electron/internal/renderer/api/crash-reporter')
},
{
name: 'desktopCapturer',
load: () => require('@electron/internal/renderer/api/desktop-capturer'),
enabled: features.isDesktopCapturerEnabled()
},
{
name: 'ipcRenderer',
load: () => require('@electron/internal/renderer/api/ipc-renderer')
},
{
name: 'nativeImage',
load: () => require('@electron/internal/common/api/native-image')
},
{
name: 'remote',
load: () => require('@electron/internal/renderer/api/remote'),
enabled: process.isRemoteModuleEnabled
},
{
name: 'webFrame',
load: () => require('@electron/internal/renderer/api/web-frame')
},
// The internal modules, invisible unless you know their names.
{
name: 'deprecate',
load: () => require('@electron/internal/common/api/deprecate'),
private: true
}
]

View file

@ -0,0 +1,40 @@
const features = process.electronBinding('features')
export const moduleList: ElectronInternal.ModuleEntry[] = [
{
name: 'crashReporter',
loader: () => require('@electron/internal/renderer/api/crash-reporter')
},
{
name: 'ipcRenderer',
loader: () => require('@electron/internal/renderer/api/ipc-renderer')
},
{
name: 'nativeImage',
loader: () => require('@electron/internal/common/api/native-image')
},
{
name: 'webFrame',
loader: () => require('@electron/internal/renderer/api/web-frame')
},
// The internal modules, invisible unless you know their names.
{
name: 'deprecate',
loader: () => require('@electron/internal/common/api/deprecate'),
private: true
}
]
if (features.isDesktopCapturerEnabled()) {
moduleList.push({
name: 'desktopCapturer',
loader: () => require('@electron/internal/renderer/api/desktop-capturer')
})
}
if (process.isRemoteModuleEnabled) {
moduleList.push({
name: 'remote',
loader: () => require('@electron/internal/renderer/api/remote')
})
}