22 lines
638 B
JavaScript
22 lines
638 B
JavaScript
const assert = require('assert')
|
|
const {BrowserWindow} = require('electron').remote
|
|
|
|
exports.closeWindow = (window, {assertSingleWindow} = {assertSingleWindow: true}) => {
|
|
if (window == null || window.isDestroyed()) {
|
|
if (assertSingleWindow) {
|
|
assert.equal(BrowserWindow.getAllWindows().length, 1)
|
|
}
|
|
return Promise.resolve()
|
|
} else {
|
|
return new Promise((resolve, reject) => {
|
|
window.once('closed', () => {
|
|
if (assertSingleWindow) {
|
|
assert.equal(BrowserWindow.getAllWindows().length, 1)
|
|
}
|
|
resolve()
|
|
})
|
|
window.setClosable(true)
|
|
window.close()
|
|
})
|
|
}
|
|
}
|