thedesk/src/background.ts

50 lines
1.3 KiB
TypeScript
Raw Normal View History

'use strict'
import { pick } from 'lodash'
2019-04-06 22:38:17 +11:00
import {
app,
ipcMain,
protocol,
Event,
} from 'electron'
2019-04-06 22:38:17 +11:00
import ContextMenu from 'electron-context-menu'
import Application from './main/Application'
2019-04-22 19:39:16 +10:00
import ApplicationMenu from './main/ApplicationMenu'
2019-04-22 19:39:16 +10:00
export type PackageJson = typeof import('../package.json')
2019-04-22 16:57:51 +10:00
import { author, contributors, homepage } from '../package.json'
import TheDeskInfo from '../info.json'
2019-04-22 19:39:16 +10:00
export type TheDeskInfoObject = typeof TheDeskInfo
2019-04-06 02:38:20 +11:00
ipcMain.on('thedesk-info', (event: Event) => {
2019-04-09 01:38:04 +10:00
event.returnValue = Object.assign({
productName: app.getName(),
2019-04-22 16:29:48 +10:00
author: author,
2019-04-22 16:57:51 +10:00
contributors: contributors,
homePage: homepage,
2019-04-22 19:39:16 +10:00
versions: Object.assign(pick(process.versions, ['chrome', 'electron', 'node']), { internal: app.getVersion() }),
}, TheDeskInfo)
})
2019-04-22 19:39:16 +10:00
if (process.env.NODE_ENV !== 'production') {
if (process.platform === 'win32') {
process.on('message', data => {
if (data === 'graceful-exit') {
app.quit()
}
})
} else {
process.on('SIGTERM', () => {
app.quit()
})
}
}
2019-04-05 23:19:58 +11:00
protocol.registerStandardSchemes(['app'], { secure: true })
2019-04-06 22:38:17 +11:00
ContextMenu()
const TheDeskVueApp: Application = Application.shared
TheDeskVueApp.setApplicationMenu(ApplicationMenu.buildTemplate())