index.js 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.MOBX_DEVTOOLS = exports.REDUX_DEVTOOLS = exports.VUEJS_DEVTOOLS_BETA = exports.VUEJS_DEVTOOLS = exports.JQUERY_DEBUGGER = exports.BACKBONE_DEBUGGER = exports.REACT_DEVELOPER_TOOLS = exports.EMBER_INSPECTOR = void 0;
  4. exports.installExtension = installExtension;
  5. const electron_1 = require("electron");
  6. const downloadChromeExtension_1 = require("./downloadChromeExtension");
  7. async function installExtension(extensionReference, options = {}) {
  8. const { forceDownload, loadExtensionOptions, session: _session } = options;
  9. const targetSession = _session || electron_1.session.defaultSession;
  10. if (process.type !== 'browser') {
  11. return Promise.reject(new Error('electron-devtools-installer can only be used from the main process'));
  12. }
  13. if (Array.isArray(extensionReference)) {
  14. return extensionReference.reduce((accum, extension) => accum.then(async (result) => {
  15. const inner = await installExtension(extension, options);
  16. return [...result, inner];
  17. }), Promise.resolve([]));
  18. }
  19. let chromeStoreID;
  20. if (typeof extensionReference === 'object' && extensionReference.id) {
  21. chromeStoreID = extensionReference.id;
  22. }
  23. else if (typeof extensionReference === 'string') {
  24. chromeStoreID = extensionReference;
  25. }
  26. else {
  27. throw new Error(`Invalid extensionReference passed in: "${extensionReference}"`);
  28. }
  29. const installedExtension = targetSession.getAllExtensions().find((e) => e.id === chromeStoreID);
  30. if (!forceDownload && installedExtension) {
  31. return installedExtension;
  32. }
  33. const extensionFolder = await (0, downloadChromeExtension_1.downloadChromeExtension)(chromeStoreID, {
  34. forceDownload: forceDownload || false,
  35. });
  36. // Use forceDownload, but already installed
  37. if (installedExtension === null || installedExtension === void 0 ? void 0 : installedExtension.id) {
  38. const unloadPromise = new Promise((resolve) => {
  39. const handler = (_, ext) => {
  40. if (ext.id === installedExtension.id) {
  41. targetSession.removeListener('extension-unloaded', handler);
  42. resolve();
  43. }
  44. };
  45. targetSession.on('extension-unloaded', handler);
  46. });
  47. targetSession.removeExtension(installedExtension.id);
  48. await unloadPromise;
  49. }
  50. return targetSession.loadExtension(extensionFolder, loadExtensionOptions);
  51. }
  52. exports.default = installExtension;
  53. exports.EMBER_INSPECTOR = {
  54. id: 'bmdblncegkenkacieihfhpjfppoconhi',
  55. };
  56. exports.REACT_DEVELOPER_TOOLS = {
  57. id: 'fmkadmapgofadopljbjfkapdkoienihi',
  58. };
  59. exports.BACKBONE_DEBUGGER = {
  60. id: 'bhljhndlimiafopmmhjlgfpnnchjjbhd',
  61. };
  62. exports.JQUERY_DEBUGGER = {
  63. id: 'dbhhnnnpaeobfddmlalhnehgclcmjimi',
  64. };
  65. exports.VUEJS_DEVTOOLS = {
  66. id: 'nhdogjmejiglipccpnnnanhbledajbpd',
  67. };
  68. exports.VUEJS_DEVTOOLS_BETA = {
  69. id: 'ljjemllljcmogpfapbkkighbhhppjdbg',
  70. };
  71. exports.REDUX_DEVTOOLS = {
  72. id: 'lmhkpmbekcpmknklioeibfkpmmfibljd',
  73. };
  74. exports.MOBX_DEVTOOLS = {
  75. id: 'pfgnfdagidkfgccljigdamigbcnndkod',
  76. };
  77. //# sourceMappingURL=index.js.map