From 8a0a60c27e8c1ac4e7cf1306fbd381330f7f9159 Mon Sep 17 00:00:00 2001 From: Brian Mann Date: Sun, 14 May 2017 19:07:42 -0400 Subject: [PATCH] created coffee package, updated paths and cjsxify to prevent incorrect stack traces on errors --- packages/coffee/index.js | 1 + packages/coffee/package.json | 7 +++++++ packages/coffee/register.js | 17 +++++++++++++++++ packages/driver/package.json | 5 ++--- .../driver/test/support/server/server.coffee | 2 +- packages/electron/index.js | 2 +- packages/electron/package.json | 3 +-- packages/extension/index.js | 2 +- packages/extension/package.json | 1 - packages/extension/test/mocha.opts | 2 +- packages/https-proxy/https.js | 4 ++-- packages/https-proxy/index.js | 2 +- packages/https-proxy/package.json | 1 - packages/https-proxy/test/mocha.opts | 2 +- packages/launcher/package.json | 1 - packages/launcher/test/mocha.opts | 2 +- packages/server/index.js | 2 +- packages/server/lib/fixture.coffee | 2 +- packages/server/lib/util/bundle.coffee | 2 +- packages/server/lib/util/cjsxify.coffee | 11 +++++++++++ packages/server/package.json | 1 - packages/server/repl.js | 2 +- packages/server/test/support/helpers/gzip.js | 3 --- packages/server/test/support/helpers/run | 2 +- 24 files changed, 53 insertions(+), 26 deletions(-) create mode 100644 packages/coffee/index.js create mode 100644 packages/coffee/package.json create mode 100644 packages/coffee/register.js create mode 100644 packages/server/lib/util/cjsxify.coffee diff --git a/packages/coffee/index.js b/packages/coffee/index.js new file mode 100644 index 0000000000..9569210129 --- /dev/null +++ b/packages/coffee/index.js @@ -0,0 +1 @@ +module.exports = require("coffee-script") diff --git a/packages/coffee/package.json b/packages/coffee/package.json new file mode 100644 index 0000000000..6944f3c1df --- /dev/null +++ b/packages/coffee/package.json @@ -0,0 +1,7 @@ +{ + "name": "coffee", + "main": "index.js", + "dependencies": { + "coffee-script": "1.12.5" + } +} diff --git a/packages/coffee/register.js b/packages/coffee/register.js new file mode 100644 index 0000000000..ef2c05d761 --- /dev/null +++ b/packages/coffee/register.js @@ -0,0 +1,17 @@ +require("coffee-script/register") + +// using hack found here to prevent problems with +// cypress coffee script being replaced by modules which +// use coffee-script/register +// https://github.com/abresas/register-coffee-coverage/blob/master/index.js +const loader = require.extensions[".coffee"] + +Object.defineProperty(require.extensions, ".coffee", { + get () { + return loader + }, + + set () { + return loader + }, +}) diff --git a/packages/driver/package.json b/packages/driver/package.json index 20589ed088..9a9ada3c51 100644 --- a/packages/driver/package.json +++ b/packages/driver/package.json @@ -11,8 +11,6 @@ }, "devDependencies": { "@cypress/bower-kendo-ui": "0.0.2", - "@cypress/coffee-script": "0.1.2", - "@cypress/core-electron": "0.3.4", "@cypress/icons": "0.5.2", "angular": "^1.3.1", "backbone": "^1.1.2", @@ -74,5 +72,6 @@ "url-parse": "^1.1.7", "vinyl-source-stream": "^1.1.0", "watchify": "^3.9.0" - } + }, + "dependencies": {} } diff --git a/packages/driver/test/support/server/server.coffee b/packages/driver/test/support/server/server.coffee index ece65e3b9a..d5f9eed32e 100644 --- a/packages/driver/test/support/server/server.coffee +++ b/packages/driver/test/support/server/server.coffee @@ -6,7 +6,7 @@ path = require("path") fs = require("fs") hbs = require("hbs") glob = require("glob") -coffee = require("coffee-script") +coffee = require("../../../../coffee") str = require("string-to-stream") Promise = require("bluebird") xhrs = require("../../../../app/lib/controllers/xhrs") diff --git a/packages/electron/index.js b/packages/electron/index.js index 0aa0aa74aa..084e07342f 100644 --- a/packages/electron/index.js +++ b/packages/electron/index.js @@ -1,3 +1,3 @@ -require("@cypress/coffee-script") +require("../coffee/register") module.exports = require("./lib/electron") diff --git a/packages/electron/package.json b/packages/electron/package.json index d83ae3a74f..b648634b48 100644 --- a/packages/electron/package.json +++ b/packages/electron/package.json @@ -6,7 +6,7 @@ "main": "index.js", "scripts": { "start": "./bin/cypress-electron", - "test": "mocha --compilers coffee:@cypress/coffee-script", + "test": "mocha --compilers coffee:../coffee/register", "postinstall": "./bin/cypress-electron --install", "clean-deps": "rm -rf node_modules", "clean-all": "npm run clean-deps" @@ -31,7 +31,6 @@ "mocha": "^3.0.2" }, "dependencies": { - "@cypress/coffee-script": "0.1.2", "bluebird": "^3.4.1", "electron-packager": "^7.2.0", "fs-extra": "^0.30.0", diff --git a/packages/extension/index.js b/packages/extension/index.js index 6b0aeb6284..b12e7e500f 100644 --- a/packages/extension/index.js +++ b/packages/extension/index.js @@ -1,3 +1,3 @@ -require("@cypress/coffee-script") +require("../coffee/register") module.exports = require("./lib/extension") diff --git a/packages/extension/package.json b/packages/extension/package.json index 623084fd91..d8c7197088 100644 --- a/packages/extension/package.json +++ b/packages/extension/package.json @@ -47,7 +47,6 @@ "vinyl-source-stream": "^1.1.0" }, "dependencies": { - "@cypress/coffee-script": "0.1.2", "bluebird": "^3.3.5", "lodash": "^4.11.2" } diff --git a/packages/extension/test/mocha.opts b/packages/extension/test/mocha.opts index cd79002d1e..0ae5049e44 100644 --- a/packages/extension/test/mocha.opts +++ b/packages/extension/test/mocha.opts @@ -1,5 +1,5 @@ test/unit test/integration --reporter spec ---compilers coffee:@cypress/coffee-script +--compilers coffee:../coffee/register --recursive diff --git a/packages/https-proxy/https.js b/packages/https-proxy/https.js index 6ad5fd01ce..c6a3d601b6 100644 --- a/packages/https-proxy/https.js +++ b/packages/https-proxy/https.js @@ -1,2 +1,2 @@ -require("coffee-script/register") -require("./test/helpers/https_server").start(8443) \ No newline at end of file +require("../coffee/register") +require("./test/helpers/https_server").start(8443) diff --git a/packages/https-proxy/index.js b/packages/https-proxy/index.js index b170117533..e2752cb763 100644 --- a/packages/https-proxy/index.js +++ b/packages/https-proxy/index.js @@ -1,3 +1,3 @@ -require("@cypress/coffee-script") +require("../coffee/register") module.exports = require("./lib/proxy") diff --git a/packages/https-proxy/package.json b/packages/https-proxy/package.json index 2eed94dc50..2f53a6b30c 100644 --- a/packages/https-proxy/package.json +++ b/packages/https-proxy/package.json @@ -35,7 +35,6 @@ "supertest-as-promised": "^3.1.0" }, "dependencies": { - "@cypress/coffee-script": "0.1.2", "bluebird": "^3.4.0", "fs-extra": "^0.30.0", "node-forge": "^0.6.39", diff --git a/packages/https-proxy/test/mocha.opts b/packages/https-proxy/test/mocha.opts index cd79002d1e..0ae5049e44 100644 --- a/packages/https-proxy/test/mocha.opts +++ b/packages/https-proxy/test/mocha.opts @@ -1,5 +1,5 @@ test/unit test/integration --reporter spec ---compilers coffee:@cypress/coffee-script +--compilers coffee:../coffee/register --recursive diff --git a/packages/launcher/package.json b/packages/launcher/package.json index b8a3ed89a1..94efd6cb1c 100644 --- a/packages/launcher/package.json +++ b/packages/launcher/package.json @@ -39,7 +39,6 @@ "typescript": "^2.3.2" }, "dependencies": { - "@cypress/coffee-script": "0.1.2", "bluebird": "^3.3.5", "debug": "^2.6.6", "execa": "^0.6.3", diff --git a/packages/launcher/test/mocha.opts b/packages/launcher/test/mocha.opts index a0ee0c4736..b673855c21 100644 --- a/packages/launcher/test/mocha.opts +++ b/packages/launcher/test/mocha.opts @@ -1,4 +1,4 @@ test/unit --reporter spec ---compilers coffee:@cypress/coffee-script +--compilers coffee:../coffee/register --recursive diff --git a/packages/server/index.js b/packages/server/index.js index 3f7bc82431..428c7276cb 100644 --- a/packages/server/index.js +++ b/packages/server/index.js @@ -1,6 +1,6 @@ process.env.UV_THREADPOOL_SIZE = 128 require('graceful-fs').gracefulify(require('fs')) -require("@cypress/coffee-script") +require("../coffee/register") require && require.extensions && delete require.extensions[".litcoffee"] require && require.extensions && delete require.extensions[".coffee.md"] require("./lib/cypress").start(process.argv) diff --git a/packages/server/lib/fixture.coffee b/packages/server/lib/fixture.coffee index 89d964efce..8c67e7fe7e 100644 --- a/packages/server/lib/fixture.coffee +++ b/packages/server/lib/fixture.coffee @@ -2,7 +2,7 @@ _ = require("lodash") fs = require("fs-extra") path = require("path") check = require("syntax-error") -coffee = require("coffee-script") +coffee = require("../../../packages/coffee") Promise = require("bluebird") jsonlint = require("jsonlint") beautify = require("js-beautify").html diff --git a/packages/server/lib/util/bundle.coffee b/packages/server/lib/util/bundle.coffee index 2e8e82e0bd..31d3811417 100644 --- a/packages/server/lib/util/bundle.coffee +++ b/packages/server/lib/util/bundle.coffee @@ -3,7 +3,6 @@ fs = require("fs-extra") EE = require("events") path = require("path") through = require("through") -cjsxify = require("cjsxify") Promise = require("bluebird") babelify = require("babelify") watchify = require("watchify") @@ -13,6 +12,7 @@ presetLatest = require("babel-preset-latest") stringStream = require("string-to-stream") pluginAddModuleExports = require("babel-plugin-add-module-exports") sanitize = require("sanitize-filename") +cjsxify = require("./cjsxify") appData = require("./app_data") fs = Promise.promisifyAll(fs) diff --git a/packages/server/lib/util/cjsxify.coffee b/packages/server/lib/util/cjsxify.coffee new file mode 100644 index 0000000000..65fe529b4a --- /dev/null +++ b/packages/server/lib/util/cjsxify.coffee @@ -0,0 +1,11 @@ +## wrapper for cjsxify to prevent coffee script from rewriting Error.prepareStackTrace + +## hold onto the original +prepareStackTrace = Error.prepareStackTrace + +cjsxify = require("cjsxify") + +## restore +Error.prepareStackTrace = prepareStackTrace + +module.exports = cjsxify diff --git a/packages/server/package.json b/packages/server/package.json index 9786c24e9e..59f9c3eb7f 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -72,7 +72,6 @@ "xvfb-maybe": "cypress-io/xvfb-maybe#c4a810c42d603949cd63b8cf245f6c239331d370" }, "dependencies": { - "@cypress/coffee-script": "0.1.2", "@cypress/icons": "0.5.2", "@ffmpeg-installer/ffmpeg": "1.0.3", "ansi_up": "^1.3.0", diff --git a/packages/server/repl.js b/packages/server/repl.js index 424b65a7da..19a57d90c4 100644 --- a/packages/server/repl.js +++ b/packages/server/repl.js @@ -1,2 +1,2 @@ -require("coffee-script/register") +require("../coffee/register") require("./lib/repl") diff --git a/packages/server/test/support/helpers/gzip.js b/packages/server/test/support/helpers/gzip.js index 1ed849a85b..7754e659e5 100644 --- a/packages/server/test/support/helpers/gzip.js +++ b/packages/server/test/support/helpers/gzip.js @@ -1,9 +1,6 @@ -require("coffee-script/register") - const fs = require("fs") const zlib = require("zlib") const path = require("path") -const Fixtures = require("./test/support/helpers/fixtures") const src = path.join("test/support/fixtures/projects/e2e/static/FiraSans-Regular.woff") const dest = path.join("test/support/fixtures/projects/e2e/static/FiraSans-Regular.woff.gz") diff --git a/packages/server/test/support/helpers/run b/packages/server/test/support/helpers/run index 4c36dbd1a7..4dab91f4b5 100755 --- a/packages/server/test/support/helpers/run +++ b/packages/server/test/support/helpers/run @@ -10,4 +10,4 @@ DEBUG=nock.*,-nock.common,-nock.scope,socket.io:*,xvfb-maybe \ BROWSER=$BROWSER \ xvfb-maybe --xvfb-run-args "-s \"-screen 0 1280x1024x8\"" mocha $SPEC \ --recursive \ ---compilers coffee:@cypress/coffee-script +--compilers coffee:../coffee/register