Ditch electron-is-dev

This module was written before app.isPackaged existed.

The environment variable is now ELECTRON_DEBUG=1 (instead of ELECTRON_IS_DEV=1) for allowing opening the devtools in production.
main
Isaiah Odhner 2021-03-24 16:04:17 -04:00
parent f18060498e
commit 12f62ad7a0
4 changed files with 24 additions and 54 deletions

59
package-lock.json generated
View File

@ -7,7 +7,6 @@
"": {
"version": "1.0.0",
"dependencies": {
"electron-is-dev": "^1.2.0",
"electron-squirrel-startup": "^1.0.0",
"glob": "^7.1.6",
"rtlcss": "^3.1.2",
@ -954,7 +953,6 @@
"integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
"dev": true,
"dependencies": {
"graceful-fs": "^4.1.6",
"universalify": "^2.0.0"
},
"optionalDependencies": {
@ -1142,7 +1140,6 @@
"integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
"dev": true,
"dependencies": {
"graceful-fs": "^4.1.6",
"universalify": "^2.0.0"
},
"optionalDependencies": {
@ -1257,7 +1254,6 @@
"integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
"dev": true,
"dependencies": {
"graceful-fs": "^4.1.6",
"universalify": "^2.0.0"
},
"optionalDependencies": {
@ -1338,7 +1334,6 @@
"integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
"dev": true,
"dependencies": {
"graceful-fs": "^4.1.6",
"universalify": "^2.0.0"
},
"optionalDependencies": {
@ -1433,7 +1428,6 @@
"integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
"dev": true,
"dependencies": {
"graceful-fs": "^4.1.6",
"universalify": "^2.0.0"
},
"optionalDependencies": {
@ -1490,7 +1484,6 @@
"integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
"dev": true,
"dependencies": {
"graceful-fs": "^4.1.6",
"universalify": "^2.0.0"
},
"optionalDependencies": {
@ -1528,8 +1521,7 @@
"dev": true,
"dependencies": {
"@electron-forge/maker-base": "6.0.0-beta.54",
"@electron-forge/shared-types": "6.0.0-beta.54",
"electron-installer-debian": "^3.0.0"
"@electron-forge/shared-types": "6.0.0-beta.54"
},
"engines": {
"node": ">= 10.0.0"
@ -1545,8 +1537,7 @@
"dev": true,
"dependencies": {
"@electron-forge/maker-base": "6.0.0-beta.54",
"@electron-forge/shared-types": "6.0.0-beta.54",
"electron-installer-redhat": "^3.2.0"
"@electron-forge/shared-types": "6.0.0-beta.54"
},
"engines": {
"node": ">= 10.0.0"
@ -1563,7 +1554,6 @@
"dependencies": {
"@electron-forge/maker-base": "6.0.0-beta.54",
"@electron-forge/shared-types": "6.0.0-beta.54",
"electron-winstaller": "^4.0.1",
"fs-extra": "^9.0.1"
},
"engines": {
@ -1594,7 +1584,6 @@
"integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
"dev": true,
"dependencies": {
"graceful-fs": "^4.1.6",
"universalify": "^2.0.0"
},
"optionalDependencies": {
@ -1646,7 +1635,6 @@
"integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
"dev": true,
"dependencies": {
"graceful-fs": "^4.1.6",
"universalify": "^2.0.0"
},
"optionalDependencies": {
@ -1755,7 +1743,6 @@
"integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
"dev": true,
"dependencies": {
"graceful-fs": "^4.1.6",
"universalify": "^2.0.0"
},
"optionalDependencies": {
@ -1828,7 +1815,6 @@
"integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
"dev": true,
"dependencies": {
"graceful-fs": "^4.1.6",
"universalify": "^2.0.0"
},
"optionalDependencies": {
@ -1865,7 +1851,6 @@
"integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
"dev": true,
"dependencies": {
"graceful-fs": "^4.1.6",
"universalify": "^2.0.0"
},
"optionalDependencies": {
@ -1917,7 +1902,6 @@
"integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
"dev": true,
"dependencies": {
"graceful-fs": "^4.1.6",
"universalify": "^2.0.0"
},
"optionalDependencies": {
@ -1942,8 +1926,6 @@
"debug": "^4.1.1",
"env-paths": "^2.2.0",
"fs-extra": "^8.1.0",
"global-agent": "^2.0.2",
"global-tunnel-ng": "^2.7.1",
"got": "^9.6.0",
"progress": "^2.0.3",
"semver": "^6.2.0",
@ -2530,7 +2512,6 @@
"jest-resolve": "^26.6.2",
"jest-util": "^26.6.2",
"jest-worker": "^26.6.2",
"node-notifier": "^8.0.0",
"slash": "^3.0.0",
"source-map": "^0.6.0",
"string-length": "^4.0.1",
@ -3578,7 +3559,6 @@
"integrity": "sha512-k7zd+KoR+n8pl71PvgElcoKHrVNiSXtw7odKbyNpmgKe7EGRF9Pnu3uLOukD37EvavKwVFxOUpqXTIZC5B5Pmw==",
"dev": true,
"dependencies": {
"@types/glob": "^7.1.1",
"chromium-pickle-js": "^0.2.0",
"commander": "^5.0.0",
"glob": "^7.1.6",
@ -4360,7 +4340,6 @@
"anymatch": "^2.0.0",
"async-each": "^1.0.1",
"braces": "^2.3.2",
"fsevents": "^1.2.7",
"glob-parent": "^3.1.0",
"inherits": "^2.0.3",
"is-binary-path": "^1.0.0",
@ -4459,7 +4438,6 @@
"integrity": "sha512-7Qg2Jrep1S/+Q3EceiZtQcDPWxhAvBw+ERf1162v4sikJrvojMHFqXt8QIVha8UlH9rgU0BeWPytZ9/TzYqlUw==",
"dev": true,
"dependencies": {
"colors": "^1.1.2",
"object-assign": "^4.1.0",
"string-width": "^2.1.1"
},
@ -4678,7 +4656,8 @@
"node_modules/colorette": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.1.tgz",
"integrity": "sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw=="
"integrity": "sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==",
"peer": true
},
"node_modules/colors": {
"version": "1.4.0",
@ -5620,7 +5599,6 @@
"optional": true,
"dependencies": {
"@malept/cross-spawn-promise": "^1.0.0",
"@types/fs-extra": "^9.0.1",
"asar": "^3.0.0",
"debug": "^4.1.1",
"fs-extra": "^9.0.0",
@ -5681,7 +5659,6 @@
"dev": true,
"optional": true,
"dependencies": {
"graceful-fs": "^4.1.6",
"universalify": "^2.0.0"
},
"optionalDependencies": {
@ -5789,7 +5766,6 @@
"dev": true,
"optional": true,
"dependencies": {
"graceful-fs": "^4.1.6",
"universalify": "^2.0.0"
},
"optionalDependencies": {
@ -5955,7 +5931,6 @@
"dev": true,
"optional": true,
"dependencies": {
"graceful-fs": "^4.1.6",
"universalify": "^2.0.0"
},
"optionalDependencies": {
@ -6063,7 +6038,8 @@
"node_modules/electron-is-dev": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/electron-is-dev/-/electron-is-dev-1.2.0.tgz",
"integrity": "sha512-R1oD5gMBPS7PVU8gJwH6CtT0e6VSoD0+SzSnYpNm+dBkcijgA+K7VAMHDfnRq/lkKPZArpzplTW6jfiMYosdzw=="
"integrity": "sha512-R1oD5gMBPS7PVU8gJwH6CtT0e6VSoD0+SzSnYpNm+dBkcijgA+K7VAMHDfnRq/lkKPZArpzplTW6jfiMYosdzw==",
"dev": true
},
"node_modules/electron-localshortcut": {
"version": "3.1.0",
@ -6128,7 +6104,6 @@
"integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
"dev": true,
"dependencies": {
"graceful-fs": "^4.1.6",
"universalify": "^2.0.0"
},
"optionalDependencies": {
@ -6228,7 +6203,6 @@
"integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==",
"dev": true,
"dependencies": {
"@types/yauzl": "^2.9.1",
"debug": "^4.1.1",
"get-stream": "^5.1.0",
"yauzl": "^2.10.0"
@ -6279,7 +6253,6 @@
"integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
"dev": true,
"dependencies": {
"graceful-fs": "^4.1.6",
"universalify": "^2.0.0"
},
"optionalDependencies": {
@ -6560,7 +6533,6 @@
"integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
"dev": true,
"dependencies": {
"graceful-fs": "^4.1.6",
"universalify": "^2.0.0"
},
"optionalDependencies": {
@ -6732,7 +6704,6 @@
"dev": true,
"optional": true,
"dependencies": {
"@types/glob": "^7.1.1",
"chromium-pickle-js": "^0.2.0",
"commander": "^2.20.0",
"cuint": "^0.2.2",
@ -6988,8 +6959,7 @@
"esprima": "^4.0.1",
"estraverse": "^4.2.0",
"esutils": "^2.0.2",
"optionator": "^0.8.1",
"source-map": "~0.6.1"
"optionator": "^0.8.1"
},
"bin": {
"escodegen": "bin/escodegen.js",
@ -11305,7 +11275,6 @@
"@types/node": "*",
"anymatch": "^3.0.3",
"fb-watchman": "^2.0.0",
"fsevents": "^2.1.2",
"graceful-fs": "^4.2.4",
"jest-regex-util": "^26.0.0",
"jest-serializer": "^26.6.2",
@ -14133,6 +14102,7 @@
"version": "3.1.20",
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.20.tgz",
"integrity": "sha512-a1cQNyczgKbLX9jwbS/+d7W8fX/RfgYR7lVWwWOGIPNgK2m0MWvrGF6/m4kk6U3QcFMnZf3RIhL0v2Jgh/0Uxw==",
"peer": true,
"bin": {
"nanoid": "bin/nanoid.cjs"
},
@ -15000,7 +14970,6 @@
"dependencies": {
"anymatch": "~3.1.1",
"braces": "~3.0.2",
"fsevents": "~2.3.1",
"glob-parent": "~5.1.0",
"is-binary-path": "~2.1.0",
"is-glob": "~4.0.1",
@ -15857,6 +15826,7 @@
"version": "8.2.5",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.2.5.tgz",
"integrity": "sha512-wMcb7BpDcm3gxQOQx46NDNT36Kk0Ao6PJLLI2ed5vehbbbxCEuslSQzbQ2sfSKy+gkYxhWcGWSeaK+gwm4KIZg==",
"peer": true,
"dependencies": {
"colorette": "^1.2.1",
"nanoid": "^3.1.20",
@ -22933,7 +22903,8 @@
"colorette": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.1.tgz",
"integrity": "sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw=="
"integrity": "sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==",
"peer": true
},
"colors": {
"version": "1.4.0",
@ -24035,7 +24006,8 @@
"electron-is-dev": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/electron-is-dev/-/electron-is-dev-1.2.0.tgz",
"integrity": "sha512-R1oD5gMBPS7PVU8gJwH6CtT0e6VSoD0+SzSnYpNm+dBkcijgA+K7VAMHDfnRq/lkKPZArpzplTW6jfiMYosdzw=="
"integrity": "sha512-R1oD5gMBPS7PVU8gJwH6CtT0e6VSoD0+SzSnYpNm+dBkcijgA+K7VAMHDfnRq/lkKPZArpzplTW6jfiMYosdzw==",
"dev": true
},
"electron-localshortcut": {
"version": "3.1.0",
@ -30285,7 +30257,8 @@
"nanoid": {
"version": "3.1.20",
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.20.tgz",
"integrity": "sha512-a1cQNyczgKbLX9jwbS/+d7W8fX/RfgYR7lVWwWOGIPNgK2m0MWvrGF6/m4kk6U3QcFMnZf3RIhL0v2Jgh/0Uxw=="
"integrity": "sha512-a1cQNyczgKbLX9jwbS/+d7W8fX/RfgYR7lVWwWOGIPNgK2m0MWvrGF6/m4kk6U3QcFMnZf3RIhL0v2Jgh/0Uxw==",
"peer": true
},
"nanomatch": {
"version": "1.2.13",
@ -31619,6 +31592,7 @@
"version": "8.2.5",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.2.5.tgz",
"integrity": "sha512-wMcb7BpDcm3gxQOQx46NDNT36Kk0Ao6PJLLI2ed5vehbbbxCEuslSQzbQ2sfSKy+gkYxhWcGWSeaK+gwm4KIZg==",
"peer": true,
"requires": {
"colorette": "^1.2.1",
"nanoid": "^3.1.20",
@ -32245,7 +32219,6 @@
"chalk": "^4.1.0",
"find-up": "^5.0.0",
"mkdirp": "^1.0.4",
"postcss": "^8.2.4",
"strip-json-comments": "^3.1.1"
},
"dependencies": {

View File

@ -53,7 +53,6 @@
}
},
"dependencies": {
"electron-is-dev": "^1.2.0",
"electron-squirrel-startup": "^1.0.0",
"glob": "^7.1.6",
"rtlcss": "^3.1.2",

View File

@ -4,9 +4,7 @@
// so libraries don't get confused and export to `module` instead of the `window`
global.module = undefined;
// @TODO: use app.isPackaged instead of electron-is-dev? https://www.electronjs.org/docs/api/app#appispackaged-readonly
// https://github.com/sindresorhus/electron-is-dev#how-is-this-different-than-appispackaged
const is_dev = require("electron-is-dev");
const isPackaged = require("electron").remote.app.isPackaged;
const dialog = require("electron").remote.dialog;
const fs = require("fs");
const path = require("path");
@ -18,10 +16,10 @@ const argv = require("electron").remote.process.argv;
const reg_contents = `Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\\SystemFileAssociations\\image\\shell\\edit\\command]
@="\\"${argv[0].replace(/\\/g, "\\\\")}\\" ${is_dev ? "\\\".\\\" " : ""}\\"%1\\""
@="\\"${argv[0].replace(/\\/g, "\\\\")}\\" ${isPackaged ? "" : '\\".\\" '}\\"%1\\""
`; // oof that's a lot of escaping \\
const reg_file_path = path.join(is_dev ? "." : path.dirname(argv[0]), `set-jspaint${is_dev ? "-DEV-MODE" : ""}-as-default-image-editor.reg`);
if(process.platform == "win32" && !is_dev){
const reg_file_path = path.join(isPackaged ? path.dirname(argv[0]) : ".", `set-jspaint${isPackaged ? "" : "-DEV-MODE"}-as-default-image-editor.reg`);
if(process.platform == "win32" && isPackaged){
fs.writeFile(reg_file_path, reg_contents, (err) => {
if(err){
return console.error(err);
@ -37,10 +35,10 @@ window.is_electron_app = true;
// the idea being, don't give the page free reign over the filesystem, in case of XSS holes
if (process.platform == "win32" && argv.length >= 2) {
if (is_dev) { // in development, "path/to/electron.exe" "." "maybe/a/file.png"
window.document_file_path_to_open = argv[2];
} else { // in production, "path/to/JS Paint.exe" "maybe/a/file.png"
if (isPackaged) { // in production, "path/to/JS Paint.exe" "maybe/a/file.png"
window.document_file_path_to_open = argv[1];
} else { // in development, "path/to/electron.exe" "." "maybe/a/file.png"
window.document_file_path_to_open = argv[2];
}
}

View File

@ -5,7 +5,7 @@ if (require('electron-squirrel-startup')) { // eslint-disable-line global-requir
app.quit();
}
if (require('electron-is-dev')){
if (process.env.ELECTRON_DEBUG === "1" || !app.isPackaged){
require('electron-debug')({ showDevTools: false });
}