From a2de35f550efdfa5e0aea873dc4138d332e9c10a Mon Sep 17 00:00:00 2001 From: "Collins, Alan" Date: Mon, 12 Dec 2016 15:07:12 -0600 Subject: [PATCH 1/4] Replace Paths to the "main application" with the path to "SourceJS" using global.pathToApp --- core/api/index.js | 2 +- core/loadOptions.js | 2 +- core/middlewares/clarify.js | 2 +- core/routes/redirects.js | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/core/api/index.js b/core/api/index.js index 7f06941..9b248a4 100644 --- a/core/api/index.js +++ b/core/api/index.js @@ -4,7 +4,7 @@ var express = require('express'); var path = require('path'); var ParseData = require(path.join(global.pathToApp, 'core/lib/parseData')); var utils = require(path.join(global.pathToApp, 'core/lib/utils')); -var pathToApp = path.dirname(require.main.filename); +var pathToApp = global.pathToApp; var htmlTree = require(path.join(global.pathToApp, 'core/html-tree')); var unflatten = require(path.join(global.pathToApp,'core/unflat')); diff --git a/core/loadOptions.js b/core/loadOptions.js index b7814c4..633e4aa 100644 --- a/core/loadOptions.js +++ b/core/loadOptions.js @@ -76,7 +76,7 @@ var legacyOptionsChecker = function(options, fileName){ module.exports = function(basePath, _silent){ silent = _silent; - var pathToApp = basePath || path.dirname(require.main.filename); + var pathToApp = basePath || global.pathToApp; var mergedOptions = utils.requireUncached(path.join(pathToApp, 'options')); diff --git a/core/middlewares/clarify.js b/core/middlewares/clarify.js index 7bd54de..a3614d8 100644 --- a/core/middlewares/clarify.js +++ b/core/middlewares/clarify.js @@ -9,7 +9,7 @@ var http = require('http'); var ejs = require(path.join(global.pathToApp, 'core/ejsWithHelpers.js')); var trackStats = require(path.join(global.pathToApp, 'core/trackStats')); -var pathToApp = path.dirname(require.main.filename); +var pathToApp = global.pathToApp; var specUtils = require(path.join(pathToApp, 'core/lib/specUtils')); var ParseData = require(path.join(pathToApp, 'core/lib/parseData')); var specsParser = require(path.join(pathToApp, 'core/lib/specPageParser')); diff --git a/core/routes/redirects.js b/core/routes/redirects.js index 06a3d2d..a9c0a84 100644 --- a/core/routes/redirects.js +++ b/core/routes/redirects.js @@ -8,7 +8,7 @@ var path = require('path'); var express = require('express'); -var pathToApp = path.dirname(require.main.filename); +var pathToApp = global.pathToApp; /* * From 93ce7e9803bf5bbfe7a972c7f981d4402c7822c3 Mon Sep 17 00:00:00 2001 From: "Collins, Alan" Date: Mon, 12 Dec 2016 15:08:00 -0600 Subject: [PATCH 2/4] Add a NodeJS exports function, so SourceJS can be launched from another script file using require() --- app.js | 67 ++++++++++++++++++++++++++++++---------------------------- 1 file changed, 35 insertions(+), 32 deletions(-) diff --git a/app.js b/app.js index f0a1c54..430eb88 100644 --- a/app.js +++ b/app.js @@ -255,40 +255,43 @@ app.use(logErrors); /* /Error handling */ - -/* Server start */ -if (!module.parent) { - var serverOpts = global.opts.core.server; - var port = serverOpts.port; - - app.listen(port, serverOpts.hostname, serverOpts.backlog, serverOpts.callback); - log.info('[SOURCEJS] launched on http://127.0.0.1:'.blue + (port.toString()).red + ' in '.blue + MODE.blue + ' mode...'.blue); - - if (commander.test) { - var spawn = require('cross-spawn'); - - spawn('./node_modules/grunt-cli/bin/grunt', [commander.postGrunt, '--port='+port], {stdio: 'inherit'}) +module.exports = function () { + var serverOpts = global.opts.core.server; + var port = serverOpts.port; + + app.listen(port, serverOpts.hostname, serverOpts.backlog, serverOpts.callback); + log.info('[SOURCEJS] launched on http://127.0.0.1:'.blue + (port.toString()).red + ' in '.blue + MODE.blue + ' mode...'.blue); + + if (commander.test) { + var spawn = require('cross-spawn'); + + spawn('./node_modules/grunt-cli/bin/grunt', [commander.postGrunt, '--port=' + port], { stdio: 'inherit' }) .on('close', function (code) { - if (code === 0) { - log.info('Test successful'); - process.exit(0); - } else { - log.error('Test failed'); - process.exit(1); - } - }); + if (code === 0) { + log.info('Test successful'); + process.exit(0); + } else { + log.error('Test failed'); + process.exit(1); + } + }); + } else { + if (global.opts.core.tracking.enabled) { + trackStats.event({ + group: 'start', + event: 'default' + }); } else { - if (global.opts.core.tracking.enabled) { - trackStats.event({ - group: 'start', - event: 'default' - }); - } else { - trackStats.event({ - group: 'start', - event: 'disabled tracking' - }, true); - } + trackStats.event({ + group: 'start', + event: 'disabled tracking' + }, true); } + } +}; + +/* Server start */ +if (!module.parent) { + module.exports(); } /* Server start */ From 3208b830d5ff40d7e2e54437a56ad888676b2ce2 Mon Sep 17 00:00:00 2001 From: "Collins, Alan" Date: Tue, 13 Dec 2016 12:50:48 -0600 Subject: [PATCH 3/4] Refactored module.exports to be more expressive. --- app.js | 67 ++++++++++++++++++++++++++++++---------------------------- 1 file changed, 35 insertions(+), 32 deletions(-) diff --git a/app.js b/app.js index 430eb88..f354070 100644 --- a/app.js +++ b/app.js @@ -254,44 +254,47 @@ var logErrors = function(err, req, res, next) { app.use(logErrors); /* /Error handling */ +var startServer = function () { + var serverOpts = global.opts.core.server; + var port = serverOpts.port; -module.exports = function () { - var serverOpts = global.opts.core.server; - var port = serverOpts.port; - - app.listen(port, serverOpts.hostname, serverOpts.backlog, serverOpts.callback); - log.info('[SOURCEJS] launched on http://127.0.0.1:'.blue + (port.toString()).red + ' in '.blue + MODE.blue + ' mode...'.blue); - - if (commander.test) { - var spawn = require('cross-spawn'); - - spawn('./node_modules/grunt-cli/bin/grunt', [commander.postGrunt, '--port=' + port], { stdio: 'inherit' }) + app.listen(port, serverOpts.hostname, serverOpts.backlog, serverOpts.callback); + log.info('[SOURCEJS] launched on http://127.0.0.1:'.blue + (port.toString()).red + ' in '.blue + MODE.blue + ' mode...'.blue); + + if (commander.test) { + var spawn = require('cross-spawn'); + + spawn('./node_modules/grunt-cli/bin/grunt', [commander.postGrunt, '--port=' + port], { stdio: 'inherit' }) .on('close', function (code) { - if (code === 0) { - log.info('Test successful'); - process.exit(0); - } else { - log.error('Test failed'); - process.exit(1); - } - }); - } else { - if (global.opts.core.tracking.enabled) { - trackStats.event({ - group: 'start', - event: 'default' - }); + if (code === 0) { + log.info('Test successful'); + process.exit(0); + } else { + log.error('Test failed'); + process.exit(1); + } + }); } else { - trackStats.event({ - group: 'start', - event: 'disabled tracking' - }, true); + if (global.opts.core.tracking.enabled) { + trackStats.event({ + group: 'start', + event: 'default' + }); + } else { + trackStats.event({ + group: 'start', + event: 'disabled tracking' + }, true); + } } - } -}; +} /* Server start */ if (!module.parent) { - module.exports(); + startServer(); } /* Server start */ + +module.exports = { + startServer: startServer +}; \ No newline at end of file From cf11b8437114598aa1380142e26764fafa7b8964 Mon Sep 17 00:00:00 2001 From: "Collins, Alan" Date: Tue, 13 Dec 2016 12:52:54 -0600 Subject: [PATCH 4/4] Missed a semi-colon declaring the function variable --- app.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app.js b/app.js index f354070..ecc0b6f 100644 --- a/app.js +++ b/app.js @@ -287,7 +287,7 @@ var startServer = function () { }, true); } } -} +}; /* Server start */ if (!module.parent) {