refactor: make ELECTRON_INSPECTOR_SELECT_FILE handler async (#17235)

This commit is contained in:
Milan Burda 2019-03-06 22:22:45 +01:00 committed by Alexey Kuzmin
commit 2733697819

View file

@ -3,9 +3,12 @@
const { dialog, Menu } = require('electron') const { dialog, Menu } = require('electron')
const fs = require('fs') const fs = require('fs')
const url = require('url') const url = require('url')
const util = require('util')
const ipcMainUtils = require('@electron/internal/browser/ipc-main-internal-utils') const ipcMainUtils = require('@electron/internal/browser/ipc-main-internal-utils')
const readFile = util.promisify(fs.readFile)
const convertToMenuTemplate = function (event, items) { const convertToMenuTemplate = function (event, items) {
return items.map(function (item) { return items.map(function (item) {
const transformed = item.type === 'subMenu' ? { const transformed = item.type === 'subMenu' ? {
@ -82,25 +85,16 @@ ipcMainUtils.handle('ELECTRON_INSPECTOR_CONTEXT_MENU', function (event, items, i
menu.popup({ window }) menu.popup({ window })
}) })
ipcMainUtils.handle('ELECTRON_INSPECTOR_SELECT_FILE', function (event) { ipcMainUtils.handle('ELECTRON_INSPECTOR_SELECT_FILE', async function (event) {
return new Promise((resolve, reject) => { assertChromeDevTools(event.sender, 'window.UI.createFileSelectorElement()')
assertChromeDevTools(event.sender, 'window.UI.createFileSelectorElement()')
dialog.showOpenDialog({}, function (result) { const result = await dialog.showOpenDialog({})
if (!result.canceled) { if (result.canceled) return []
const path = result.filePaths[0]
fs.readFile(path, (error, data) => { const path = result.filePaths[0]
if (error) { const data = await readFile(path)
reject(error)
} else { return [path, data]
resolve([path, data])
}
})
} else {
resolve([])
}
})
})
}) })
ipcMainUtils.handle('ELECTRON_INSPECTOR_CONFIRM', function (event, message, title) { ipcMainUtils.handle('ELECTRON_INSPECTOR_CONFIRM', function (event, message, title) {