const features = process.electronBinding('features');
const v8Util = process.electronBinding('v8_util');

const enableRemoteModule = v8Util.getHiddenValue<boolean>(global, 'enableRemoteModule');

// Renderer side modules, please sort alphabetically.
export const rendererModuleList: ElectronInternal.ModuleEntry[] = [
  { name: 'contextBridge', loader: () => require('./context-bridge') },
  { name: 'crashReporter', loader: () => require('./crash-reporter') },
  { name: 'ipcRenderer', loader: () => require('./ipc-renderer') },
  { name: 'webFrame', loader: () => require('./web-frame') }
];

if (features.isDesktopCapturerEnabled()) {
  rendererModuleList.push({ name: 'desktopCapturer', loader: () => require('./desktop-capturer') });
}

if (features.isRemoteModuleEnabled() && enableRemoteModule) {
  rendererModuleList.push({ name: 'remote', loader: () => require('./remote') });
}
