argv.js
791 Bytes
import minimist from 'minimist';
// inspired by yargs' process-argv
export const isElectronApp = () => !!process.versions.electron;
export const isElectronBundledApp = () => isElectronApp() && !process.defaultApp;
export const parseAndTrimArgs = argv => {
// bundled Electron app: ignore 1 from "my-app arg1 arg2"
// unbundled Electron app: ignore 2 from "electron main/index.js arg1 arg2"
// node.js app: ignore 2 from "node src/index.js arg1 arg2"
const ignoreCount = isElectronBundledApp() ? 1 : 2;
const parsed = minimist(argv);
// ignore arguments AFTER parsing to handle cases like "electron --inspect=42 my.js arg1 arg2"
parsed._ = parsed._.slice(ignoreCount);
return parsed;
};
const argv = parseAndTrimArgs(process.argv);
export default argv;