diff --git a/.gitignore b/.gitignore
index 397b8d1ea..2e5568e18 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,6 +3,6 @@ coverage
node_modules
test/build/
.self_coverage
-*.covered.js
+self-coverage/
*.swp
needs-transpile.js
diff --git a/bin/nyc.js b/bin/nyc.js
index 2a0690630..c285c5abe 100755
--- a/bin/nyc.js
+++ b/bin/nyc.js
@@ -2,12 +2,7 @@
const configUtil = require('../lib/config-util')
const foreground = require('foreground-child')
-var NYC
-try {
- NYC = require('../index.covered.js')
-} catch (e) {
- NYC = require('../index.js')
-}
+const NYC = require('../index.js')
const processArgs = require('../lib/process-args')
const sw = require('spawn-wrap')
diff --git a/bin/wrap.js b/bin/wrap.js
index 0ec3cb0cd..b4c916156 100644
--- a/bin/wrap.js
+++ b/bin/wrap.js
@@ -1,10 +1,5 @@
var sw = require('spawn-wrap')
-var NYC
-try {
- NYC = require('../index.covered.js')
-} catch (e) {
- NYC = require('../index.js')
-}
+var NYC = require('../index.js')
var parentPid = process.env.NYC_PARENT_PID || '0'
process.env.NYC_PARENT_PID = process.pid
diff --git a/build-self-coverage.js b/build-self-coverage.js
index bc8c2b63c..6526d0100 100644
--- a/build-self-coverage.js
+++ b/build-self-coverage.js
@@ -1,21 +1,43 @@
-var istanbul = require('istanbul-lib-instrument')
-var fs = require('fs')
-var path = require('path')
-
-;[
- 'index.js',
- 'lib/process.js'
-].forEach(function (name) {
- var indexPath = path.join(__dirname, name)
- var source = fs.readFileSync(indexPath, 'utf8')
-
- var instrumentor = istanbul.createInstrumenter({
- coverageVariable: '___NYC_SELF_COVERAGE___',
- esModules: true
- })
+const path = require('path')
+const fs = require('fs')
+const istanbul = require('istanbul-lib-instrument')
+const makeDir = require('make-dir')
+const glob = require('glob')
+
+const instrumenter = istanbul.createInstrumenter({
+ coverageVariable: '___NYC_SELF_COVERAGE___',
+ esModules: true
+})
+
+function instrumentFile (name) {
+ const indexPath = path.join(__dirname, name)
+ const outputPath = path.join(__dirname, 'self-coverage', name)
- var instrumentedSource = instrumentor.instrumentSync(source, indexPath)
+ const source = fs.readFileSync(indexPath, 'utf8')
+ const instrumentedSource = name === 'package.json' ? source : instrumenter.instrumentSync(source, indexPath)
- var outputPath = path.join(__dirname, name.replace(/\.js$/, '.covered.js'))
+ makeDir.sync(path.dirname(outputPath))
fs.writeFileSync(outputPath, instrumentedSource)
-})
+}
+
+function instrumentGlob (pattern) {
+ const result = glob.sync(pattern, {
+ cwd: __dirname,
+ nodir: true
+ })
+
+ result.forEach(file => {
+ instrumentFile(file)
+ })
+}
+
+function instrumentAll () {
+ /* package.json is just being copied so the instrumented copy of lib/hash.js can find it. */
+ const globPatterns = ['package.json', 'index.js', 'bin/*.js', 'lib/**/*.js']
+
+ globPatterns.forEach(pattern => {
+ instrumentGlob(pattern)
+ })
+}
+
+instrumentAll()
diff --git a/index.js b/index.js
index dc6a461d9..743ef1136 100755
--- a/index.js
+++ b/index.js
@@ -24,17 +24,11 @@ const api = require('istanbul-api')
const debugLog = util.debuglog('nyc')
-var ProcessInfo
-try {
- ProcessInfo = require('./lib/process.covered.js')
-} catch (e) {
- /* istanbul ignore next */
- ProcessInfo = require('./lib/process.js')
-}
+const ProcessInfo = require('./lib/process.js')
/* istanbul ignore next */
-if (/index\.covered\.js$/.test(__filename)) {
- require('./lib/self-coverage-helper')
+if (/self-coverage/.test(__dirname)) {
+ require('../self-coverage-helper')
}
function NYC (config) {
diff --git a/lib/commands/check-coverage.js b/lib/commands/check-coverage.js
index c12667bbe..746c347f2 100644
--- a/lib/commands/check-coverage.js
+++ b/lib/commands/check-coverage.js
@@ -1,9 +1,4 @@
-var NYC
-try {
- NYC = require('../../index.covered.js')
-} catch (e) {
- NYC = require('../../index.js')
-}
+const NYC = require('../../index.js')
exports.command = 'check-coverage'
diff --git a/lib/commands/instrument.js b/lib/commands/instrument.js
index 7c098d9a2..5e56b44be 100644
--- a/lib/commands/instrument.js
+++ b/lib/commands/instrument.js
@@ -1,9 +1,4 @@
-var NYC
-try {
- NYC = require('../../index.covered.js')
-} catch (e) {
- NYC = require('../../index.js')
-}
+const NYC = require('../../index.js')
exports.command = 'instrument [output]'
diff --git a/lib/commands/merge.js b/lib/commands/merge.js
index 3f76248fe..072cfc450 100644
--- a/lib/commands/merge.js
+++ b/lib/commands/merge.js
@@ -3,12 +3,7 @@ const fs = require('fs')
const path = require('path')
const makeDir = require('make-dir')
-var NYC
-try {
- NYC = require('../../index.covered.js')
-} catch (e) {
- NYC = require('../../index.js')
-}
+const NYC = require('../../index.js')
exports.command = 'merge [output-file]'
diff --git a/lib/commands/report.js b/lib/commands/report.js
index 0b48d869f..410058c63 100644
--- a/lib/commands/report.js
+++ b/lib/commands/report.js
@@ -1,9 +1,4 @@
-var NYC
-try {
- NYC = require('../../index.covered.js')
-} catch (e) {
- NYC = require('../../index.js')
-}
+const NYC = require('../../index.js')
exports.command = 'report'
diff --git a/package-lock.json b/package-lock.json
index 8ffc3f54b..175be854e 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -13,13 +13,13 @@
}
},
"@babel/generator": {
- "version": "7.3.2",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.3.2.tgz",
- "integrity": "sha512-f3QCuPppXxtZOEm5GWPra/uYUjmNQlu9pbAD8D/9jze4pTY83rTtB1igTBSwvkeNlC5gR24zFFkz+2WHLFQhqQ==",
+ "version": "7.3.3",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.3.3.tgz",
+ "integrity": "sha512-aEADYwRRZjJyMnKN7llGIlircxTCofm3dtV5pmY6ob18MSIuipHpA2yZWkPlycwu5HJcx/pADS3zssd8eY7/6A==",
"requires": {
- "@babel/types": "^7.3.2",
+ "@babel/types": "^7.3.3",
"jsesc": "^2.5.1",
- "lodash": "^4.17.10",
+ "lodash": "^4.17.11",
"source-map": "^0.5.0",
"trim-right": "^1.0.1"
}
@@ -61,9 +61,9 @@
}
},
"@babel/parser": {
- "version": "7.3.2",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.3.2.tgz",
- "integrity": "sha512-QzNUC2RO1gadg+fs21fi0Uu0OuGNzRKEmgCxoLNzbCdoprLwjfmZwzUrpUNfJPaVRwBpDY47A17yYEGWyRelnQ=="
+ "version": "7.3.3",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.3.3.tgz",
+ "integrity": "sha512-xsH1CJoln2r74hR+y7cg2B5JCPaTh+Hd+EbBRk9nWGSNspuo6krjhX0Om6RnRQuIvFq8wVXCLKH3kwKDYhanSg=="
},
"@babel/template": {
"version": "7.2.2",
@@ -92,12 +92,12 @@
}
},
"@babel/types": {
- "version": "7.3.2",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.3.2.tgz",
- "integrity": "sha512-3Y6H8xlUlpbGR+XvawiH0UXehqydTmNmEpozWcXymqwcrwYAl5KMvKtQ+TF6f6E08V6Jur7v/ykdDSF+WDEIXQ==",
+ "version": "7.3.3",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.3.3.tgz",
+ "integrity": "sha512-2tACZ80Wg09UnPg5uGAOUvvInaqLk3l/IAhQzlxLQOIXacr6bMsra5SH6AWw/hIDRCSbCdHP2KzSOD+cT7TzMQ==",
"requires": {
"esutils": "^2.0.2",
- "lodash": "^4.17.10",
+ "lodash": "^4.17.11",
"to-fast-properties": "^2.0.0"
}
},
@@ -124,9 +124,9 @@
"dev": true
},
"ajv": {
- "version": "6.9.1",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.9.1.tgz",
- "integrity": "sha512-XDN92U311aINL77ieWHmqCcNlwjoP5cHXDxIxbf2MaPYuCXOHS7gHH8jktxeK5omgd52XbSTX6a4Piwd1pQmzA==",
+ "version": "6.9.2",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.9.2.tgz",
+ "integrity": "sha512-4UFy0/LgDo7Oa/+wOAlj44tp9K78u38E5/359eSrqEp1Z5PdVfimCcs7SluXMP755RUQu6d2b4AvF0R1C9RZjg==",
"dev": true,
"requires": {
"fast-deep-equal": "^2.0.1",
@@ -292,7 +292,7 @@
},
"chalk": {
"version": "1.1.3",
- "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
"integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
"dev": true,
"requires": {
@@ -311,7 +311,7 @@
},
"strip-ansi": {
"version": "3.0.1",
- "resolved": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
"integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
"dev": true,
"requires": {
@@ -747,14 +747,25 @@
}
},
"caching-transform": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-3.0.1.tgz",
- "integrity": "sha512-Y1KTLNwSPd4ljsDrFOtyXVmm7Gnk42yQitNq43AhE+cwUR/e4T+rmOHs1IPtzBg8066GBJfTOj1rQYFSWSsH2g==",
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-3.0.2.tgz",
+ "integrity": "sha512-Mtgcv3lh3U0zRii/6qVgQODdPA4G3zhG+jtbCWj39RXuUFTMzH0vcdMtaJS1jPowd+It2Pqr6y3NJMQqOqCE2w==",
"requires": {
"hasha": "^3.0.0",
- "make-dir": "^1.3.0",
+ "make-dir": "^2.0.0",
"package-hash": "^3.0.0",
- "write-file-atomic": "^2.3.0"
+ "write-file-atomic": "^2.4.2"
+ },
+ "dependencies": {
+ "make-dir": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.0.0.tgz",
+ "integrity": "sha512-DCZvJtCxpfY3a0Onp57Jm0PY9ggZENfVtBMsPdXFZDrMSHU5kYCMJkJesLr0/UrFdJKuDUYoGxCpc93n4F3Z8g==",
+ "requires": {
+ "pify": "^4.0.1",
+ "semver": "^5.6.0"
+ }
+ }
}
},
"caller-path": {
@@ -1043,7 +1054,7 @@
},
"load-json-file": {
"version": "1.1.0",
- "resolved": "http://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
+ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
"integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=",
"dev": true,
"requires": {
@@ -1266,6 +1277,12 @@
"pinkie-promise": "^2.0.0"
}
},
+ "get-stdin": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz",
+ "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=",
+ "dev": true
+ },
"indent-string": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz",
@@ -1277,7 +1294,7 @@
},
"load-json-file": {
"version": "1.1.0",
- "resolved": "http://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
+ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
"integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=",
"dev": true,
"requires": {
@@ -1314,7 +1331,7 @@
},
"minimist": {
"version": "1.2.0",
- "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
"integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
"dev": true
},
@@ -1425,9 +1442,9 @@
"dev": true
},
"coveralls": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/coveralls/-/coveralls-3.0.2.tgz",
- "integrity": "sha512-Tv0LKe/MkBOilH2v7WBiTBdudg2ChfGbdXafc/s330djpF3zKOmuehTeRwjXWc7pzfj9FrDUTA7tEx6Div8NFw==",
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/coveralls/-/coveralls-3.0.3.tgz",
+ "integrity": "sha512-viNfeGlda2zJr8Gj1zqXpDMRjw9uM54p7wzZdvLRyOgnAfCe974Dq4veZkjJdxQXbmdppu6flEajFYseHYaUhg==",
"dev": true,
"requires": {
"growl": "~> 1.10.0",
@@ -1435,12 +1452,12 @@
"lcov-parse": "^0.0.10",
"log-driver": "^1.2.7",
"minimist": "^1.2.0",
- "request": "^2.85.0"
+ "request": "^2.86.0"
},
"dependencies": {
"minimist": {
"version": "1.2.0",
- "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
"integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
"dev": true
}
@@ -1586,9 +1603,9 @@
"dev": true
},
"diff": {
- "version": "3.5.0",
- "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz",
- "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==",
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-1.4.0.tgz",
+ "integrity": "sha1-fyjS657nsVqX79ic5j3P2qPMur8=",
"dev": true
},
"doctrine": {
@@ -1977,7 +1994,7 @@
},
"load-json-file": {
"version": "2.0.0",
- "resolved": "http://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz",
+ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz",
"integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=",
"dev": true,
"requires": {
@@ -2136,9 +2153,9 @@
"dev": true
},
"esm": {
- "version": "3.2.4",
- "resolved": "https://registry.npmjs.org/esm/-/esm-3.2.4.tgz",
- "integrity": "sha512-wOuWtQCkkwD1WKQN/k3RsyGSSN+AmiUzdKftn8vaC+uV9JesYmQlODJxgXaaRz0LaaFIlUxZaUu5NPiUAjKAAA==",
+ "version": "3.2.5",
+ "resolved": "https://registry.npmjs.org/esm/-/esm-3.2.5.tgz",
+ "integrity": "sha512-rukU6Nd3agbHQCJWV4rrlZxqpbO3ix8qhUxK1BhKALGS2E465O0BFwgCOqJjNnYfO/I2MwpUBmPsW8DXoe8tcA==",
"dev": true
},
"espree": {
@@ -2228,7 +2245,7 @@
},
"external-editor": {
"version": "2.2.0",
- "resolved": "http://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz",
+ "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz",
"integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==",
"dev": true,
"requires": {
@@ -2327,7 +2344,7 @@
},
"foreground-child": {
"version": "1.5.6",
- "resolved": "http://registry.npmjs.org/foreground-child/-/foreground-child-1.5.6.tgz",
+ "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-1.5.6.tgz",
"integrity": "sha1-T9ca0t/elnibmApcCilZN8svXOk=",
"requires": {
"cross-spawn": "^4",
@@ -2439,6 +2456,12 @@
"pinkie-promise": "^2.0.0"
}
},
+ "get-stdin": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz",
+ "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=",
+ "dev": true
+ },
"indent-string": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz",
@@ -2450,7 +2473,7 @@
},
"load-json-file": {
"version": "1.1.0",
- "resolved": "http://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
+ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
"integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=",
"dev": true,
"requires": {
@@ -2487,7 +2510,7 @@
},
"minimist": {
"version": "1.2.0",
- "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
"integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
"dev": true
},
@@ -2584,9 +2607,9 @@
}
},
"get-stdin": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz",
- "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=",
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-6.0.0.tgz",
+ "integrity": "sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==",
"dev": true
},
"get-stream": {
@@ -2885,7 +2908,7 @@
},
"is-obj": {
"version": "1.0.1",
- "resolved": "http://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz",
+ "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz",
"integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=",
"dev": true
},
@@ -2981,9 +3004,9 @@
"dev": true
},
"istanbul-api": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/istanbul-api/-/istanbul-api-2.1.0.tgz",
- "integrity": "sha512-+Ygg4t1StoiNlBGc6x0f8q/Bv26FbZqP/+jegzfNpU7Q8o+4ZRoJxJPhBkgE/UonpAjtxnE4zCZIyJX+MwLRMQ==",
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/istanbul-api/-/istanbul-api-2.1.1.tgz",
+ "integrity": "sha512-kVmYrehiwyeBAk/wE71tW6emzLiHGjYIiDrc8sfyty4F8M02/lrgXSm+R1kXysmF20zArvmZXjlE/mg24TVPJw==",
"requires": {
"async": "^2.6.1",
"compare-versions": "^3.2.1",
@@ -2993,7 +3016,7 @@
"istanbul-lib-instrument": "^3.1.0",
"istanbul-lib-report": "^2.0.4",
"istanbul-lib-source-maps": "^3.0.2",
- "istanbul-reports": "^2.1.0",
+ "istanbul-reports": "^2.1.1",
"js-yaml": "^3.12.0",
"make-dir": "^1.3.0",
"minimatch": "^3.0.4",
@@ -3188,6 +3211,13 @@
"parse-json": "^4.0.0",
"pify": "^3.0.0",
"strip-bom": "^3.0.0"
+ },
+ "dependencies": {
+ "pify": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+ "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY="
+ }
}
},
"locate-path": {
@@ -3274,6 +3304,13 @@
"integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==",
"requires": {
"pify": "^3.0.0"
+ },
+ "dependencies": {
+ "pify": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+ "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY="
+ }
}
},
"make-error": {
@@ -3344,7 +3381,7 @@
},
"minimist": {
"version": "1.2.0",
- "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
"integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
"dev": true
},
@@ -3429,7 +3466,7 @@
},
"minimist": {
"version": "0.0.10",
- "resolved": "http://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz",
"integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8="
},
"minimist-options": {
@@ -3462,7 +3499,7 @@
},
"mkdirp": {
"version": "0.5.1",
- "resolved": "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
"integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
"requires": {
"minimist": "0.0.8"
@@ -3470,7 +3507,7 @@
"dependencies": {
"minimist": {
"version": "0.0.8",
- "resolved": "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
"integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0="
}
}
@@ -4775,6 +4812,13 @@
"integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==",
"requires": {
"pify": "^3.0.0"
+ },
+ "dependencies": {
+ "pify": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+ "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY="
+ }
}
},
"pathval": {
@@ -4790,9 +4834,9 @@
"dev": true
},
"pify": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
- "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY="
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
+ "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g=="
},
"pinkie": {
"version": "2.0.4",
@@ -4963,9 +5007,9 @@
"dev": true
},
"react-is": {
- "version": "16.8.2",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.8.2.tgz",
- "integrity": "sha512-D+NxhSR2HUCjYky1q1DwpNUD44cDpUXzSmmFyC3ug1bClcU/iDNy0YNn1iwme28fn+NFhpA13IndOd42CrFb+Q==",
+ "version": "16.8.3",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.8.3.tgz",
+ "integrity": "sha512-Y4rC1ZJmsxxkkPuMLwvKvlL1Zfpbcu+Bf4ZigkHup3v9EfdYhAlWAaVyA19olXq2o2mGn0w+dFKvk3pVVlYcIA==",
"dev": true
},
"read-pkg": {
@@ -4989,7 +5033,7 @@
},
"readable-stream": {
"version": "2.3.6",
- "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
"integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
"dev": true,
"requires": {
@@ -5348,15 +5392,9 @@
"pkg-conf": "^2.0.0"
},
"dependencies": {
- "get-stdin": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-6.0.0.tgz",
- "integrity": "sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==",
- "dev": true
- },
"minimist": {
"version": "1.2.0",
- "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
"integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
"dev": true
}
@@ -5398,7 +5436,7 @@
},
"chalk": {
"version": "1.1.3",
- "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
"integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
"dev": true,
"requires": {
@@ -5510,7 +5548,7 @@
},
"load-json-file": {
"version": "2.0.0",
- "resolved": "http://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz",
+ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz",
"integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=",
"dev": true,
"requires": {
@@ -5621,7 +5659,7 @@
},
"strip-ansi": {
"version": "3.0.1",
- "resolved": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
"integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
"dev": true,
"requires": {
@@ -5749,9 +5787,9 @@
}
},
"tap": {
- "version": "12.5.2",
- "resolved": "https://registry.npmjs.org/tap/-/tap-12.5.2.tgz",
- "integrity": "sha512-r1uXuQ39+EnnR4hqWDTKw854+2ZSGR6QUEZwVRfabqcnhoNmkPQfiJCaVyhw+DILuMcJyT2/VRTVzn6puxkJ6w==",
+ "version": "12.5.3",
+ "resolved": "https://registry.npmjs.org/tap/-/tap-12.5.3.tgz",
+ "integrity": "sha512-st6Tkj4iL2dqucFngl82IK+mUrY/FQETNCWMN2Kfred38vznzjDTUXrpivE1RegzwwyXetJLCHgdycpSVTiMsw==",
"dev": true,
"requires": {
"bind-obj-methods": "^2.0.0",
@@ -5770,7 +5808,7 @@
"js-yaml": "^3.12.1",
"minipass": "^2.3.5",
"mkdirp": "^0.5.1",
- "nyc": "^13.2.0",
+ "nyc": "^13.3.0",
"opener": "^1.5.1",
"os-homedir": "^1.0.2",
"own-or": "^1.0.0",
@@ -5791,9 +5829,9 @@
}
},
"tap-mocha-reporter": {
- "version": "3.0.7",
- "resolved": "https://registry.npmjs.org/tap-mocha-reporter/-/tap-mocha-reporter-3.0.7.tgz",
- "integrity": "sha512-GHVXJ38C3oPRpM3YUc43JlGdpVZYiKeT1fmAd3HH2+J+ZWwsNAUFvRRdoGsXLw9+gU9o+zXpBqhS/oXyRQYwlA==",
+ "version": "3.0.9",
+ "resolved": "https://registry.npmjs.org/tap-mocha-reporter/-/tap-mocha-reporter-3.0.9.tgz",
+ "integrity": "sha512-VO07vhC9EG27EZdOe7bWBj1ldbK+DL9TnRadOgdQmiQOVZjFpUEQuuqO7+rNSO2kfmkq5hWeluYXDWNG/ytXTQ==",
"dev": true,
"requires": {
"color-support": "^1.1.0",
@@ -5816,12 +5854,6 @@
"ms": "2.0.0"
}
},
- "diff": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/diff/-/diff-1.4.0.tgz",
- "integrity": "sha1-fyjS657nsVqX79ic5j3P2qPMur8=",
- "dev": true
- },
"ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
@@ -5877,7 +5909,7 @@
},
"through": {
"version": "2.3.8",
- "resolved": "http://registry.npmjs.org/through/-/through-2.3.8.tgz",
+ "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
"integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=",
"dev": true
},
@@ -5972,6 +6004,14 @@
"make-error": "^1.1.1",
"source-map-support": "^0.5.6",
"yn": "^3.0.0"
+ },
+ "dependencies": {
+ "diff": {
+ "version": "3.5.0",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz",
+ "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==",
+ "dev": true
+ }
}
},
"tsame": {
@@ -6017,9 +6057,9 @@
"dev": true
},
"typescript": {
- "version": "3.3.3",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.3.3.tgz",
- "integrity": "sha512-Y21Xqe54TBVp+VDSNbuDYdGw0BpoR/Q6wo/+35M8PAU0vipahnyduJWirxxdxjsAkS7hue53x2zp8gz7F05u0A==",
+ "version": "3.3.3333",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.3.3333.tgz",
+ "integrity": "sha512-JjSKsAfuHBE/fB2oZ8NxtRTk5iGcg6hkYXMnZ3Wc+b2RSqejEqTaem11mHASMnFilHrax3sLK0GDzcJrekZYLw==",
"dev": true
},
"uglify-js": {
@@ -6064,7 +6104,7 @@
},
"strip-ansi": {
"version": "3.0.1",
- "resolved": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
"integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
"dev": true,
"requires": {
@@ -6145,7 +6185,7 @@
},
"wrap-ansi": {
"version": "2.1.0",
- "resolved": "http://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
"integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=",
"requires": {
"string-width": "^1.0.1",
@@ -6177,7 +6217,7 @@
},
"strip-ansi": {
"version": "3.0.1",
- "resolved": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
"integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
"requires": {
"ansi-regex": "^2.0.0"
diff --git a/package.json b/package.json
index 23251247c..cb85361d5 100644
--- a/package.json
+++ b/package.json
@@ -5,11 +5,12 @@
"main": "index.js",
"scripts": {
"bundle": "bundle-dependencies update",
+ "pretest": "npm run clean && npm run instrument",
+ "test": "tap -t360 --no-cov -b ./test/*.js && npm run report",
"posttest": "standard",
- "test": "npm run clean && npm run instrument && tap -t360 --no-cov -b ./test/*.js && npm run report",
- "clean": "rimraf ./.nyc_output ./node_modules/.cache ./.self_coverage ./test/fixtures/.nyc_output ./test/fixtures/node_modules/.cache *covered.js ./lib/*covered.js",
+ "clean": "rimraf ./.nyc_output ./node_modules/.cache ./.self_coverage ./test/fixtures/.nyc_output ./test/fixtures/node_modules/.cache ./self-coverage",
"instrument": "node ./build-self-coverage.js",
- "report": "node ./bin/nyc --temp-dir ./.self_coverage/ -r text -r lcov report",
+ "report": "node ./self-coverage/bin/nyc report --temp-dir ./.self_coverage/ -r text -r lcov",
"release": "standard-version"
},
"bin": {
@@ -18,22 +19,19 @@
"files": [
"index.js",
"bin/*.js",
- "lib/*.js",
- "lib/commands/*.js",
- "lib/instrumenters/*.js",
- "!**/*covered.js"
+ "lib/**/*.js"
],
"nyc": {
"exclude": [
"node_modules",
"bin",
"coverage",
+ "self-coverage",
"test/fixtures/coverage.js",
"test/build/*",
"test/src/*",
"test/nyc.js",
"test/process-args.js",
- "index.covered.js",
"test/fixtures/_generateCoverage.js"
]
},
diff --git a/lib/self-coverage-helper.js b/self-coverage-helper.js
similarity index 88%
rename from lib/self-coverage-helper.js
rename to self-coverage-helper.js
index d4d2d2cb5..9eeeb68b0 100644
--- a/lib/self-coverage-helper.js
+++ b/self-coverage-helper.js
@@ -10,7 +10,7 @@ onExit(function () {
if (typeof ___NYC_SELF_COVERAGE___ === 'object') coverage = ___NYC_SELF_COVERAGE___
if (!coverage) return
- var selfCoverageDir = path.join(__dirname, '../.self_coverage')
+ var selfCoverageDir = path.join(__dirname, '.self_coverage')
mkdirp.sync(selfCoverageDir)
fs.writeFileSync(
path.join(selfCoverageDir, process.pid + '.json'),
diff --git a/test/nyc-integration.js b/test/nyc-integration.js
index aa6b9a39c..7c208230c 100644
--- a/test/nyc-integration.js
+++ b/test/nyc-integration.js
@@ -2,7 +2,7 @@
const _ = require('lodash')
const path = require('path')
-const bin = path.resolve(__dirname, '../bin/nyc')
+const bin = path.resolve(__dirname, '../self-coverage/bin/nyc')
const fixturesCLI = path.resolve(__dirname, './fixtures/cli')
const fixturesHooks = path.resolve(__dirname, './fixtures/hooks')
const fixturesSourceMaps = path.resolve(__dirname, './fixtures/source-maps')
diff --git a/test/src/nyc-tap.js b/test/src/nyc-tap.js
index ac31015d0..1cf384350 100644
--- a/test/src/nyc-tap.js
+++ b/test/src/nyc-tap.js
@@ -8,12 +8,7 @@ const configUtil = require('../../lib/config-util')
const fs = require('fs')
const enableCache = false
-let _NYC
-try {
- _NYC = require('../../index.covered.js')
-} catch (e) {
- _NYC = require('../../')
-}
+const _NYC = require('../../self-coverage')
function NYC (opts) {
opts = opts || {}
@@ -29,7 +24,7 @@ var rimraf = require('rimraf')
var isWindows = require('is-windows')()
var spawn = require('child_process').spawn
var fixtures = path.resolve(__dirname, '../fixtures')
-var bin = path.resolve(__dirname, '../../bin/nyc')
+var bin = path.resolve(__dirname, '../../self-coverage/bin/nyc')
// beforeEach
glob.sync('**/*/{.nyc_output,.cache}').forEach(function (path) {
@@ -41,6 +36,8 @@ delete process.env.NYC_CWD
require('chai').should()
require('tap').mochaGlobals()
+const transpileHook = path.resolve(process.cwd(), './test/fixtures/transpile-hook')
+
describe('nyc', function () {
describe('cwd', function () {
it('sets cwd to process.cwd() if no environment variable is set', function () {
@@ -402,7 +399,7 @@ describe('nyc', function () {
'utf-8'
)
- var nyc = (new NYC(configUtil.buildYargs(fixtures).parse(['--require', './test/fixtures/transpile-hook'])))
+ var nyc = (new NYC(configUtil.buildYargs(fixtures).parse(['--require', transpileHook])))
nyc.reset()
nyc.addAllFiles()
@@ -428,7 +425,7 @@ describe('nyc', function () {
)
var nyc = (new NYC(configUtil.buildYargs(fixtures).parse([
- '--require=./test/fixtures/transpile-hook',
+ `--require=${transpileHook}`,
'--extension=.do-not-transpile',
'--include=needs-transpile.do-not-transpile'
])))
@@ -448,7 +445,7 @@ describe('nyc', function () {
)
var nyc = (new NYC(configUtil.buildYargs(fixtures).parse([
- '--require=./test/fixtures/transpile-hook',
+ `--require=${transpileHook}`,
'--extension=.whatever'
])))