* refactor: prevent consistent early exception * Use _linkedBinding where possible * Remove dead electronBinding
		
			
				
	
	
		
			35 lines
		
	
	
	
		
			1.4 KiB
			
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			35 lines
		
	
	
	
		
			1.4 KiB
			
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
const { hasSwitch } = process._linkedBinding('electron_common_command_line');
 | 
						|
const binding = process._linkedBinding('electron_renderer_context_bridge');
 | 
						|
 | 
						|
const contextIsolationEnabled = hasSwitch('context-isolation');
 | 
						|
 | 
						|
const checkContextIsolationEnabled = () => {
 | 
						|
  if (!contextIsolationEnabled) throw new Error('contextBridge API can only be used when contextIsolation is enabled');
 | 
						|
};
 | 
						|
 | 
						|
const contextBridge: Electron.ContextBridge = {
 | 
						|
  exposeInMainWorld: (key: string, api: Record<string, any>) => {
 | 
						|
    checkContextIsolationEnabled();
 | 
						|
    return binding.exposeAPIInMainWorld(key, api);
 | 
						|
  }
 | 
						|
} as any;
 | 
						|
 | 
						|
export default contextBridge;
 | 
						|
 | 
						|
export const internalContextBridge = {
 | 
						|
  contextIsolationEnabled,
 | 
						|
  overrideGlobalValueFromIsolatedWorld: (keys: string[], value: any) => {
 | 
						|
    return binding._overrideGlobalValueFromIsolatedWorld(keys, value, false);
 | 
						|
  },
 | 
						|
  overrideGlobalValueWithDynamicPropsFromIsolatedWorld: (keys: string[], value: any) => {
 | 
						|
    return binding._overrideGlobalValueFromIsolatedWorld(keys, value, true);
 | 
						|
  },
 | 
						|
  overrideGlobalPropertyFromIsolatedWorld: (keys: string[], getter: Function, setter?: Function) => {
 | 
						|
    return binding._overrideGlobalPropertyFromIsolatedWorld(keys, getter, setter || null);
 | 
						|
  },
 | 
						|
  isInMainWorld: () => binding._isCalledFromMainWorld() as boolean
 | 
						|
};
 | 
						|
 | 
						|
if (binding._isDebug) {
 | 
						|
  contextBridge.internalContextBridge = internalContextBridge;
 | 
						|
}
 |