diff --git a/index.js b/index.js index bedaeeb7..b09bda71 100644 --- a/index.js +++ b/index.js @@ -1,16 +1,7 @@ 'use strict'; -let resolve = require('resolve'); -let minimist = require('minimist'); - -let { - createCleanUpMocks, - createFastbootEcho, - createFastbootTest, - createMockRequest, - reloadServer, - createServer, -} = require('./lib/helpers'); +const resolve = require('resolve'); +const minimist = require('minimist'); module.exports = { name: require('./package').name, @@ -48,6 +39,8 @@ module.exports = { // we have to use the outputReady hook to ensure that ember-cli has finished copying the contents to the outputPath directory outputReady(result) { + const { reloadServer, createServer } = require('./lib/helpers'); + const isEnabled = this.app.name === 'dummy' || this.app.env !== 'production'; @@ -69,6 +62,13 @@ module.exports = { }, _fastbootRenderingMiddleware(app) { + const { + createCleanUpMocks, + createFastbootEcho, + createFastbootTest, + createMockRequest, + createServer, + } = require('./lib/helpers'); createMockRequest(app); createCleanUpMocks(app); createFastbootTest(app, ({ res, options, urlToVisit }) => { diff --git a/lib/helpers.js b/lib/helpers.js index 9644b845..e6601cdd 100644 --- a/lib/helpers.js +++ b/lib/helpers.js @@ -2,20 +2,27 @@ const fs = require('fs'); const path = require('path'); -const nock = require('nock'); const { URL } = require('url'); const JSONfn = require('json-fn'); const FastBoot = require('fastboot'); const bodyParser = require('body-parser'); const { deprecate } = require('util'); +let _nock; +function getNock() { + if (!_nock) { + _nock = require('nock'); + } + return _nock; +} + function createMockRequest(app) { app.post( '/__mock-request', bodyParser.json({ limit: '50mb' }), (req, res) => { const requestOrigin = req.body.origin || req.headers.origin; - let mock = nock(requestOrigin) + let mock = getNock()(requestOrigin) .persist() .intercept(req.body.path, req.body.method) .reply( @@ -31,7 +38,7 @@ function createMockRequest(app) { function createCleanUpMocks(app) { app.use('/__cleanup-mocks', (req, res) => { - nock.cleanAll(); + getNock().cleanAll(); res.json({ ok: true }); });