electron support now seems to be stable...

Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
Alex A. Naanou 2020-12-13 02:10:03 +03:00
parent 8c4846c46b
commit 6b9aafaa47
2 changed files with 26 additions and 19 deletions

43
argv.js
View File

@ -31,6 +31,17 @@ var object = require('ig-object')
//---------------------------------------------------------------------
var ELECTRON_PACKAGED =
(process.mainModule || {filename: ''})
.filename.includes('app.asar')
|| process.argv
.filter(function(e){
return e.includes('app.asar') })
.length > 0
//--------------------------------------------------------------------- //---------------------------------------------------------------------
// setup... // setup...
@ -418,7 +429,6 @@ object.Constructor('Parser', {
hideExt: /\.exe$/, hideExt: /\.exe$/,
// instance stuff... // instance stuff...
// XXX do we need all three??? // XXX do we need all three???
script: null, script: null,
@ -1156,6 +1166,7 @@ object.Constructor('Parser', {
__call__: function(context, argv, main, root_value){ __call__: function(context, argv, main, root_value){
var that = this var that = this
var parsed = Object.create(this) var parsed = Object.create(this)
var nested = parsed.parent = false
var opt_pattern = parsed.optionInputPattern var opt_pattern = parsed.optionInputPattern
// prep argv... // prep argv...
@ -1166,30 +1177,26 @@ object.Constructor('Parser', {
: []) : [])
: argv : argv
parsed.argv = rest.slice() parsed.argv = rest.slice()
main = main
|| (require.main || {}).filename
|| this.script
// nested handler... // nested handler...
var nested = parsed.parent = false
if(context instanceof Parser){ if(context instanceof Parser){
nested = parsed.parent = context nested = parsed.parent = context
main = context.scriptName +' '+ main main = context.scriptName +' '+ main
rest.unshift(main) rest.unshift(main)
// electron packaged app root -- no script included... // electron packaged app root -- no script included...
} else if(main } else if(ELECTRON_PACKAGED){
&& rest[1] != main main = main || rest[0]
// both paths can be relative... main = (parsed.hideExt && parsed.hideExt.test(rest[0])) ?
&& path.resolve(process.cwd(), rest[1])
!= path.resolve(process.cwd(), main)){
main = (this.hideExt && this.hideExt.test(rest[0])) ?
// remove ext... // remove ext...
rest[0].replace(this.hideExt, '') main.replace(parsed.hideExt, '')
: rest[0] : main
rest.splice(1, 0, rest[0]) } rest.splice(0, 1, main)
// normalize the argv...
if(main != null && rest[0] == process.execPath){ // node...
rest.splice(0, 2) } else {
rest.unshift(main) } main = main || rest[1]
rest.splice(0, 2, main) }
// script stuff... // script stuff...
var script = parsed.script = rest.shift() var script = parsed.script = rest.shift()

View File

@ -1,6 +1,6 @@
{ {
"name": "ig-argv", "name": "ig-argv",
"version": "2.16.2", "version": "2.16.3",
"description": "simple argv parser", "description": "simple argv parser",
"main": "argv.js", "main": "argv.js",
"scripts": { "scripts": {