feat: new makeSingleInstance API (#12782)
* Refactor app.makeSingleInstance * new API `app.isPrimaryInstance()` * new API `app.isSingleInstance()` * new event `app.on('second-instance')` * deprecated old syntax `app.makeSingleInstance(cb)` * deprecated old syntax of `app.makeSingleInstance() --> bool` in favor of `app.isPrimaryInstance()` * Fix spec, we don't need process.nextTick hacks any more * Make deprecation TODO for the return value of makeSingleInstance * Refactor makeSingleInstance to requestSingleInstanceLock and add appropriate deprecation comments * I swear this isn't tricking the linter * Make const * Add deprecation warnings for release, and add to planned-breaking-changes BREAKING CHANGE
This commit is contained in:
parent
9c8952aef0
commit
5b5c161601
9 changed files with 176 additions and 52 deletions
|
@ -109,6 +109,21 @@ for (let name of events) {
|
|||
})
|
||||
}
|
||||
|
||||
// TODO(MarshallOfSound): Remove in 4.0
|
||||
app.releaseSingleInstance = () => {
|
||||
deprecate.warn('app.releaseSingleInstance(cb)', 'app.releaseSingleInstanceLock()')
|
||||
app.releaseSingleInstanceLock()
|
||||
}
|
||||
|
||||
// TODO(MarshallOfSound): Remove in 4.0
|
||||
app.makeSingleInstance = (oldStyleFn) => {
|
||||
deprecate.warn('app.makeSingleInstance(cb)', 'app.requestSingleInstanceLock() and app.on(\'second-instance\', cb)')
|
||||
if (oldStyleFn && typeof oldStyleFn === 'function') {
|
||||
app.on('second-instance', (event, ...args) => oldStyleFn(...args))
|
||||
}
|
||||
return !app.requestSingleInstanceLock()
|
||||
}
|
||||
|
||||
// Wrappers for native classes.
|
||||
const {DownloadItem} = process.atomBinding('download_item')
|
||||
Object.setPrototypeOf(DownloadItem.prototype, EventEmitter.prototype)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue