aboutsummaryrefslogtreecommitdiffstats
path: root/src/electron-util.ts
blob: 6250366dcba76f2ad39a87ea835c088dd2f3a2e1 (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 * as electron from 'electron';
import { initialize, enable } from '@electron/remote/main';

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];
  },
});