aboutsummaryrefslogtreecommitdiffstats
path: root/src/electron-util.ts
blob: 697684232f6b280f6d505ba08fd92a697db82891 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
// Enhanced from: https://github.com/dertieran/electron-util/blob/replace-remote/source/api.js

import { enable, initialize } from '@electron/remote/main';
import * as electron from 'electron';

export const initializeRemote = (): void => {
  if (process.type !== 'browser') {
    throw new Error(
      'The remote api must be initialized from the main process.',
    );
  }

  initialize();
};

export const enableWebContents = (webContents: electron.WebContents): void => {
  enable(webContents);
};

export const remote = new Proxy(
  {},
  {
    get: (_target, property) => {
      // eslint-disable-next-line global-require
      const remote = require('@electron/remote');
      return remote[property];
    },
  },
);

export const api = new Proxy(electron, {
  get: (target, property) => {
    if (target[property]) {
      return target[property];
    }

    return remote[property];
  },
});