diff --git a/app/src/electron.js b/app/src/electron.js index 751f5157d..dd95a09fe 100644 --- a/app/src/electron.js +++ b/app/src/electron.js @@ -207,11 +207,20 @@ function createWindow() { } } - global.API_PACKAGE = process.env.DEVMODE ? '../packages/api/src/index' : '../packages/api/dist/bundle.js'; + global.API_PACKAGE = path.resolve( + process.env.DEVMODE ? '../packages/api/src/index' : './packages/api/dist/bundle.js' + ); + // console.log('global.API_PACKAGE', global.API_PACKAGE); const api = require(path.join( __dirname, process.env.DEVMODE ? '../../packages/api/src/index' : '../packages/api/dist/bundle.js' )); + // console.log( + // 'REQUIRED', + // path.resolve( + // path.join(__dirname, process.env.DEVMODE ? '../../packages/api/src/index' : '../packages/api/dist/bundle.js') + // ) + // ); const main = api.getMainModule(); main.initializeElectronSender(mainWindow.webContents); main.useAllControllers(null, electron); diff --git a/packages/api/src/controllers/connections.js b/packages/api/src/controllers/connections.js index 3c12816eb..6e308bd7a 100644 --- a/packages/api/src/controllers/connections.js +++ b/packages/api/src/controllers/connections.js @@ -137,6 +137,7 @@ module.exports = { }, test(req, res) { const subprocess = fork(global['API_PACKAGE'] || process.argv[1], [ + '--is-forked-api', '--start-process', 'connectProcess', ...process.argv.slice(3), diff --git a/packages/api/src/controllers/databaseConnections.js b/packages/api/src/controllers/databaseConnections.js index fc11aa9cf..bc9c486a7 100644 --- a/packages/api/src/controllers/databaseConnections.js +++ b/packages/api/src/controllers/databaseConnections.js @@ -75,6 +75,7 @@ module.exports = { if (existing) return existing; const connection = await connections.get({ conid }); const subprocess = fork(global['API_PACKAGE'] || process.argv[1], [ + '--is-forked-api', '--start-process', 'databaseConnectionProcess', ...process.argv.slice(3), diff --git a/packages/api/src/controllers/serverConnections.js b/packages/api/src/controllers/serverConnections.js index 1dd7527cd..65a2f4f3c 100644 --- a/packages/api/src/controllers/serverConnections.js +++ b/packages/api/src/controllers/serverConnections.js @@ -38,6 +38,7 @@ module.exports = { if (existing) return existing; const connection = await connections.get({ conid }); const subprocess = fork(global['API_PACKAGE'] || process.argv[1], [ + '--is-forked-api', '--start-process', 'serverConnectionProcess', ...process.argv.slice(3), diff --git a/packages/api/src/controllers/sessions.js b/packages/api/src/controllers/sessions.js index 5fe1bf29b..b3ed69f3c 100644 --- a/packages/api/src/controllers/sessions.js +++ b/packages/api/src/controllers/sessions.js @@ -66,6 +66,7 @@ module.exports = { const sesid = uuidv1(); const connection = await connections.get({ conid }); const subprocess = fork(global['API_PACKAGE'] || process.argv[1], [ + '--is-forked-api', '--start-process', 'sessionProcess', ...process.argv.slice(3), diff --git a/packages/api/src/utility/DatastoreProxy.js b/packages/api/src/utility/DatastoreProxy.js index dcda45405..0967c829e 100644 --- a/packages/api/src/utility/DatastoreProxy.js +++ b/packages/api/src/utility/DatastoreProxy.js @@ -30,6 +30,7 @@ class DatastoreProxy { async ensureSubprocess() { if (!this.subprocess) { this.subprocess = fork(global['API_PACKAGE'] || process.argv[1], [ + '--is-forked-api', '--start-process', 'jslDatastoreProcess', ...process.argv.slice(3), diff --git a/packages/api/src/utility/directories.js b/packages/api/src/utility/directories.js index 0dd2948a1..9af898e1e 100644 --- a/packages/api/src/utility/directories.js +++ b/packages/api/src/utility/directories.js @@ -41,6 +41,10 @@ const archivedir = dirFunc('archive'); const filesdir = dirFunc('files'); function packagedPluginsDir() { + // console.log('CALL DIR FROM', new Error('xxx').stack); + // console.log('__dirname', __dirname); + // console.log('platformInfo.isElectronBundle', platformInfo.isElectronBundle); + // console.log('platformInfo.isForkedApi', platformInfo.isForkedApi); if (platformInfo.isDevMode) { return path.resolve(__dirname, '../../../../plugins'); } @@ -53,6 +57,12 @@ function packagedPluginsDir() { } if (platformInfo.isElectronBundle) { return path.resolve(__dirname, '../../plugins'); + + // if (platformInfo.isForkedApi) { + // return path.resolve(__dirname, '../plugins'); + // } else { + // return path.resolve(__dirname, '../../plugins'); + // } } return null; } diff --git a/packages/api/src/utility/platformInfo.js b/packages/api/src/utility/platformInfo.js index e50f00f9c..237584f28 100644 --- a/packages/api/src/utility/platformInfo.js +++ b/packages/api/src/utility/platformInfo.js @@ -11,6 +11,7 @@ const isLinux = platform === 'linux'; const isDocker = fs.existsSync('/home/dbgate-docker/public'); const isDevMode = process.env.DEVMODE == '1'; const isNpmDist = !!global['dbgateApiModulePath']; +const isForkedApi = processArgs.isForkedApi; // function moduleAvailable(name) { // try { @@ -21,14 +22,13 @@ const isNpmDist = !!global['dbgateApiModulePath']; // } // } -const isElectronBundle = processArgs.isElectronBundle; - const platformInfo = { isWindows, isMac, isLinux, isDocker, - isElectronBundle, + isElectronBundle: isElectron() && !isDevMode, + isForkedApi, isElectron: isElectron(), isDevMode, isNpmDist, diff --git a/packages/api/src/utility/processArgs.js b/packages/api/src/utility/processArgs.js index e93fb0b4e..3b1bfd92d 100644 --- a/packages/api/src/utility/processArgs.js +++ b/packages/api/src/utility/processArgs.js @@ -7,15 +7,13 @@ function getNamedArg(name) { } const checkParent = process.argv.includes('--checkParent'); -const dynport = process.argv.includes('--dynport'); const nativeModules = getNamedArg('--native-modules'); const startProcess = getNamedArg('--start-process'); -const isElectronBundle = process.argv.includes('--is-electron-bundle'); +const isForkedApi = process.argv.includes('--is-forked-api'); module.exports = { checkParent, nativeModules, startProcess, - dynport, - isElectronBundle, + isForkedApi, };