add app.isPackaged (#12656)

* add isPackaged method

* add false test case for app.isPackaged()

* document add.isPackaged()

* check isPackaged() without fs call

* convert to non-method property

* document app.isPackaged as a property

* update tests for app.isPackaged

* remove unused fs require

* clarify docs for isPackaged()
This commit is contained in:
Shelley Vohr 2018-05-07 23:15:31 -07:00 committed by GitHub
parent 4d078fdb03
commit daf75dd375
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 21 additions and 0 deletions

View file

@ -1131,6 +1131,12 @@ Sets the application's [dock menu][dock-menu].
Sets the `image` associated with this dock icon. Sets the `image` associated with this dock icon.
## Properties
### `app.isPackaged`
A `Boolean` property that returns `true` if the app is packaged, `false` otherwise. For many apps, this property can be used to distinguish development and production environments.
[dock-menu]:https://developer.apple.com/library/mac/documentation/Carbon/Conceptual/customizing_docktile/concepts/dockconcepts.html#//apple_ref/doc/uid/TP30000986-CH2-TPXREF103 [dock-menu]:https://developer.apple.com/library/mac/documentation/Carbon/Conceptual/customizing_docktile/concepts/dockconcepts.html#//apple_ref/doc/uid/TP30000986-CH2-TPXREF103
[tasks]:https://msdn.microsoft.com/en-us/library/windows/desktop/dd378460(v=vs.85).aspx#tasks [tasks]:https://msdn.microsoft.com/en-us/library/windows/desktop/dd378460(v=vs.85).aspx#tasks
[app-user-model-id]: https://msdn.microsoft.com/en-us/library/windows/desktop/dd378459(v=vs.85).aspx [app-user-model-id]: https://msdn.microsoft.com/en-us/library/windows/desktop/dd378459(v=vs.85).aspx

View file

@ -1,6 +1,7 @@
'use strict' 'use strict'
const bindings = process.atomBinding('app') const bindings = process.atomBinding('app')
const path = require('path')
const {app, App} = bindings const {app, App} = bindings
// Only one app object permitted. // Only one app object permitted.
@ -57,6 +58,14 @@ Object.assign(app, {
} }
}) })
app.isPackaged = (() => {
const execFile = path.basename(process.execPath).toLowerCase()
if (process.platform === 'win32') {
return execFile !== 'electron.exe'
}
return execFile !== 'electron'
})()
if (process.platform === 'darwin') { if (process.platform === 'darwin') {
app.dock = { app.dock = {
bounce (type = 'informational') { bounce (type = 'informational') {

View file

@ -118,6 +118,12 @@ describe('app module', () => {
}) })
}) })
describe('app.isPackaged', () => {
it('should be false durings tests', () => {
assert.equal(app.isPackaged, false)
})
})
describe('app.isInApplicationsFolder()', () => { describe('app.isInApplicationsFolder()', () => {
before(function () { before(function () {
if (process.platform !== 'darwin') { if (process.platform !== 'darwin') {