function showMigrationPrompt (logs, error = false, done = false) {
  // Generate random id
  const id = crypto.randomBytes(16).toString('hex')

  const loadWindow = (logs, error = false, done = false) => {
    if (!window) {
      window = new BrowserWindow({
        show: false,
        width: 800,
        height: 438,
        useContentSize: true,
        resizable: false,
        autoHideMenuBar: true,
        fullscreenable: false,
        backgroundColor: getBackgroundColor(),
        webPreferences: {
          nodeIntegration: true,
          contextIsolation: false
        }
      })
      window.on('close', () => {
        dock.hide()
        window = null
      })
      window.once('ready-to-show', () => {
        dock.show()
        window.show()
      })
    }
    const page = error ? errorTemplate(logs) : inProgressTemplate(logs, id, done)
    const data = `data:text/html;base64,${Buffer.from(page, 'utf8').toString('base64')}`
    window.loadURL(data)
  }

  loadWindow(logs, error, done)

  return {
    update: logs => {
      if (window) {
        window.webContents.send(id, logs)
        return true
      }
      return false
    },
    loadWindow
  }
}
Show migration prompt.

@param {string} logs
@param {boolean} error
@param {boolean} done
@returns {MigrationPrompt}