Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: --all now respects --extension flag. #357

Merged
merged 6 commits into from
May 16, 2022

Conversation

brev
Copy link
Contributor

@brev brev commented Feb 9, 2022

Hello!

This changeset updates the --all flag to cooperate with the new --extension flag.

Instead of a few hard-coded extensions, --all will now respect any
custom extensions.

Backwards compatible if --extension flag is not used.

New test added, snapshots updated, everything is passing.

As an example: I'm using esmodule loaders to have Node.js load .svelte files
(see: esm-loader-svelte). This
works great with the --extension flag, but --all was missing this new
extension. With this changeset, everything now works great.

Checklist
  • npm test, tests passing
  • npm run test:snap (to update the snapshot)
  • tests and/or benchmarks are included

Copy link
Owner

@bcoe bcoe left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Work looks great, just one suggestion.

Also, you just need to:

nvm use 10
npm run test:snap

To capture snapshots for Node 10

---------------------------------------|---------|----------|---------|---------|-------------------
All files | 1.98 | 12 | 6.25 | 1.98 |
c8 | 0 | 0 | 0 | 0 |
index.js | 0 | 0 | 0 | 0 | 1
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think you should add clean=false to the prior test case, and this test case, at which point the output should be much smaller.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think they are already set to clean=false, did you mean change them to clean=true? thanks.

Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, clean=true, if you don't mind 👍 then we can have less noisy test output.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @bcoe, I believe clean=true is now set, as of my last commit. Please confirm? Thanks!

@brev
Copy link
Contributor Author

brev commented Mar 1, 2022

To capture snapshots for Node 10

Done! thanks. :)

@DannyFeliz
Copy link

I hope we can get this merge one day 🙌🏻

test/integration.js Outdated Show resolved Hide resolved
@bcoe
Copy link
Owner

bcoe commented Mar 23, 2022

@brev apologies for the slow review. Could I bother you to update your snapshots using --clean=true so that your fixtures don't include output from the prior test.

@brev
Copy link
Contributor Author

brev commented Mar 29, 2022

@brev apologies for the slow review. Could I bother you to update your snapshots using --clean=true so that your fixtures don't include output from the prior test.

Hello @bcoe, I've updated the snapshots with your --clean=true change. Thank you!

@darkangel081195
Copy link

Can i please know when will the PR be merged.

Thanks in advance.

@NagariaHussain
Copy link

Could this be reviewed on priority @bcoe ? Causing issue while setting up vitest test coverage with vue and js files. Is there a hack we can use in the mean time?

@Lyokolux
Copy link

Lyokolux commented Apr 19, 2022

Could this be reviewed on priority @bcoe ? Causing issue while setting up vitest test coverage with vue and js files. Is there a hack we can use in the mean time?

I am watching this PR closely to see what version this PR is merged into. @bcoe any feedback is welcome

@bcoe
Copy link
Owner

bcoe commented Apr 20, 2022

@Lyokolux PR looks good to me, just need to cleanup the tests a bit to not include extra files.

@Asim-Tahir
Copy link

Asim-Tahir commented Apr 22, 2022

@NagariaHussain

Is there a hack we can use in the mean time?

Referencing this StackOverflow answer

For yarn 1 ⚠️UNTESTED

yarn add git+https://github.com/brev/c8.git#all-flag-includes-extensions -D

For yarn 2+ ✅TESTED

yarn add c8@https://github.com/brev/c8#head=all-flag-includes-extensions -D

For pnpm ⚠️UNTESTED

pnpm add brev/c8#head=all-flag-includes-extensions -D

For npm ⚠️UNTESTED

npm i brev/c8#all-flag-includes-extensions -D

@volarname
Copy link

+1 for merge

brev and others added 5 commits May 16, 2022 00:09
Instead of a few hard-coded extensions, `--all` will now respect any
custom extensions.

Backwards compatible if `--extension` flag is not used.

New test added, snapshots updated, everything is passing.

As an example: I'm using esmodule loaders to have Node.js load `.svelte` files
(see: [esm-loader-svelte](https://github.com/brev/esm-loader-svelte)). This
works great with the `--extension` flag, but `--all` was missing this new
extension. With this changeset, everything now works great.
@bcoe bcoe force-pushed the all-flag-includes-extensions branch from 665e418 to dc87b08 Compare May 16, 2022 00:12
@bcoe bcoe changed the title Change the --all flag to cooperate with the new --extension flag. fix: --all now respects --extension flag. May 16, 2022
@bcoe bcoe merged commit a5deb27 into bcoe:main May 16, 2022
@bcoe
Copy link
Owner

bcoe commented May 16, 2022

@brev thank you for the contribution, sorry that it took so long to merge.

@brev
Copy link
Contributor Author

brev commented May 16, 2022

@bcoe Thank you for the amazing project, and the hard work and sacrifice!

github-actions bot pushed a commit to prantlf/c8 that referenced this pull request Apr 2, 2023
# 1.0.0 (2023-04-02)

### Bug Fixes

* `--all` now respects `--extension` flag. ([bcoe#357](https://github.com/prantlf/c8/issues/357)) ([a5deb27](a5deb27))
* add missing space in text ([bcoe#245](https://github.com/prantlf/c8/issues/245)) ([efe6d04](efe6d04))
* address bugs with source remapping on Windows ([bcoe#301](https://github.com/prantlf/c8/issues/301)) ([c817902](c817902))
* address file:// issue with CJS ([bcoe#39](https://github.com/prantlf/c8/issues/39)) ([d4f9cab](d4f9cab))
* all flag not propagated to check-coverage command ([bcoe#188](https://github.com/prantlf/c8/issues/188)) ([86eaf72](86eaf72))
* **config:** support configuration inheritance ([bcoe#343](https://github.com/prantlf/c8/issues/343)) ([e81ed5d](e81ed5d))
* **deps:** merging failed when the same script occurred multiple times in the same report ([bcoe#147](https://github.com/prantlf/c8/issues/147)) ([1ebcaf9](1ebcaf9))
* **deps:** update dependency find-up to v4 ([bcoe#119](https://github.com/prantlf/c8/issues/119)) ([c568d96](c568d96))
* **deps:** update dependency find-up to v5 ([bcoe#242](https://github.com/prantlf/c8/issues/242)) ([8a0cfd7](8a0cfd7))
* **deps:** update dependency furi to v2 ([bcoe#193](https://github.com/prantlf/c8/issues/193)) ([6b9af6e](6b9af6e))
* **deps:** update dependency rimraf to v3 ([bcoe#132](https://github.com/prantlf/c8/issues/132)) ([7601748](7601748))
* **deps:** update dependency v8-to-istanbul to v4 ([bcoe#167](https://github.com/prantlf/c8/issues/167)) ([97b9769](97b9769))
* **deps:** update dependency yargs to v14 ([bcoe#134](https://github.com/prantlf/c8/issues/134)) ([e49737f](e49737f))
* **deps:** update dependency yargs to v15 ([bcoe#164](https://github.com/prantlf/c8/issues/164)) ([e41a483](e41a483))
* **deps:** update dependency yargs to v16 ([bcoe#251](https://github.com/prantlf/c8/issues/251)) ([0436816](0436816))
* **deps:** update dependency yargs-parser to v13 ([bcoe#124](https://github.com/prantlf/c8/issues/124)) ([1eb3394](1eb3394))
* **deps:** update dependency yargs-parser to v14 ([bcoe#144](https://github.com/prantlf/c8/issues/144)) ([9b3d089](9b3d089))
* **deps:** update dependency yargs-parser to v15 ([bcoe#153](https://github.com/prantlf/c8/issues/153)) ([80153de](80153de))
* **deps:** update dependency yargs-parser to v16 ([bcoe#157](https://github.com/prantlf/c8/issues/157)) ([15746e5](15746e5))
* **deps:** update dependency yargs-parser to v17 ([bcoe#201](https://github.com/prantlf/c8/issues/201)) ([d730c63](d730c63))
* **deps:** update dependency yargs-parser to v18 ([bcoe#202](https://github.com/prantlf/c8/issues/202)) ([983de44](983de44))
* **deps:** update dependency yargs-parser to v19 ([bcoe#241](https://github.com/prantlf/c8/issues/241)) ([baa01df](baa01df))
* **deps:** update dependency yargs-parser to v20 ([bcoe#252](https://github.com/prantlf/c8/issues/252)) ([ae845f0](ae845f0))
* **deps:** update deps to address warning in cross-spawn ([bcoe#141](https://github.com/prantlf/c8/issues/141)) ([4b66221](4b66221))
* **deps:** update deps to latest ([bcoe#384](https://github.com/prantlf/c8/issues/384)) ([78eac8c](78eac8c)), closes [bcoe#375](https://github.com/prantlf/c8/issues/375)
* **deps:** v8-to-istanbul with fix for Windows paths ([bcoe#311](https://github.com/prantlf/c8/issues/311)) ([ef1b875](ef1b875))
* **deps:** v8-to-istanbul with patch for crasher ([bcoe#200](https://github.com/prantlf/c8/issues/200)) ([d4b7d80](d4b7d80))
* **deps:** v8-to-istnbul with fixes for Node 10/18 ([bcoe#392](https://github.com/prantlf/c8/issues/392)) ([d5f642a](d5f642a))
* do not override NODE_V8_COVERAGE if set ([bcoe#70](https://github.com/prantlf/c8/issues/70)) ([8bb67b0](8bb67b0))
* don't load JSON that does not look like coverage ([bcoe#146](https://github.com/prantlf/c8/issues/146)) ([a6481f1](a6481f1))
* escaping issue with cobertura reporter ([bcoe#203](https://github.com/prantlf/c8/issues/203)) ([e93747b](e93747b))
* exclude coverage of the CJS-ESM bridge from results ([bcoe#83](https://github.com/prantlf/c8/issues/83)) ([da2c945](da2c945))
* exit with code 1 when report output fails ([bcoe#92](https://github.com/prantlf/c8/issues/92)) ([a27b694](a27b694))
* file URL to system path conversion ([bcoe#46](https://github.com/prantlf/c8/issues/46)) ([e7f8cf2](e7f8cf2))
* fix package.json `test:snap` script to use cross-env ([bcoe#366](https://github.com/prantlf/c8/issues/366)) ([5d2981c](5d2981c))
* Fix usage of excludeAfterRemap not to set the coverage always to 100 ([9113449](9113449)), closes [bcoe#462](https://github.com/prantlf/c8/issues/462)
* float patch for branch/function coverage merge bug ([bcoe#56](https://github.com/prantlf/c8/issues/56)) ([1de0cca](1de0cca))
* HTML report now has correct source positions for Node >10.16.0 ([bcoe#125](https://github.com/prantlf/c8/issues/125)) ([c49fa7f](c49fa7f))
* ignore missing source maps in raw coverage output ([bcoe#233](https://github.com/prantlf/c8/issues/233)) ([eed98af](eed98af))
* make tests run on Windows ([bcoe#25](https://github.com/prantlf/c8/issues/25)) ([08e44d0](08e44d0))
* make tmp directory regardless of clean ([44d2185](44d2185))
* **perf:** cache `this.exclude.shouldInstrument` for improved performance ([bcoe#388](https://github.com/prantlf/c8/issues/388)) ([8b36f23](8b36f23))
* pin to functional version of spawn-wrap ([d1ced8c](d1ced8c))
* process coverage merging ([bcoe#37](https://github.com/prantlf/c8/issues/37)) ([67959b4](67959b4))
* regex flags in dependency were breaking Node 8 ([a9d9645](a9d9645))
* remove the unmaintained mkdirp dependency ([bcoe#91](https://github.com/prantlf/c8/issues/91)) ([a465b65](a465b65))
* snapshot ([7fd9e13](7fd9e13))
* support node@v15.x.x built-in modules ([bcoe#265](https://github.com/prantlf/c8/issues/265)) ([1b90a22](1b90a22))
* switch to mkdirp for Node 8 ([206b83f](206b83f))
* temporary files should be in tmp folder ([bcoe#106](https://github.com/prantlf/c8/issues/106)) ([64dd2e6](64dd2e6))
* tweak inspector event timing ([bcoe#6](https://github.com/prantlf/c8/issues/6)) ([01f654e](01f654e))
* **types:** add excludeAfterRemap and allowExternal  ([bcoe#297](https://github.com/prantlf/c8/issues/297)) ([e32a53f](e32a53f))
* Upgrade dependencies ([c288f5f](c288f5f))
* upgrade to @bcoe/v8-coverage with breaking regex dropped ([6c28e7f](6c28e7f))
* **v8-to-istanbul:** fixes shebang handling/ignore behavior ([bcoe#267](https://github.com/prantlf/c8/issues/267)) ([21cd41f](21cd41f))
* **v8-to-istanbul:** pull in fix for missing branches ([bcoe#258](https://github.com/prantlf/c8/issues/258)) ([eaffa78](eaffa78))
* **v8-to-istanbul:** revert off by one that broke TypeScript ([bcoe#262](https://github.com/prantlf/c8/issues/262)) ([81ab5b7](81ab5b7))
* we were not exiting with 1 if mkdir failed ([bcoe#89](https://github.com/prantlf/c8/issues/89)) ([fb02ed6](fb02ed6))

* feat!: use Node.js' source-map cache, to support tools like ts-node (bcoe#152) ([53bba15](53bba15)), closes [bcoe#152](https://github.com/prantlf/c8/issues/152)
* feat!: default temp directory to report directory (bcoe#102) ([8602f4a](8602f4a)), closes [bcoe#102](https://github.com/prantlf/c8/issues/102)

### Features

* `--100` ([bcoe#332](https://github.com/prantlf/c8/issues/332)) ([4205f2f](4205f2f))
* add --config option and documentation on options and configs ([bcoe#308](https://github.com/prantlf/c8/issues/308)) ([99436ef](99436ef))
* add --exclude-node-modules option ([bcoe#321](https://github.com/prantlf/c8/issues/321)) ([a4733c6](a4733c6))
* add --extension option ([bcoe#331](https://github.com/prantlf/c8/issues/331)) ([ff01cd8](ff01cd8))
* add --report-dir alias (for consistency with nyc) ([0dd1b04](0dd1b04))
* add --skip-full ([bcoe#287](https://github.com/prantlf/c8/issues/287)) ([8b01b63](8b01b63))
* add `skipFull` and `excludeNodeModules` to type definitions ([bcoe#417](https://github.com/prantlf/c8/issues/417)) ([b93b9c0](b93b9c0))
* add support for 1:1 source-maps ([bcoe#85](https://github.com/prantlf/c8/issues/85)) ([6ca4345](6ca4345))
* add support for ignoring lines, functions, and blocks ([bcoe#87](https://github.com/prantlf/c8/issues/87)) ([c66950e](c66950e))
* add thresholds for enforcing coverage percentage ([bcoe#59](https://github.com/prantlf/c8/issues/59)) ([70e8943](70e8943))
* adds --all functionality ([bcoe#158](https://github.com/prantlf/c8/issues/158)) ([2eb631e](2eb631e))
* adds support for 1:many source maps ([bcoe#238](https://github.com/prantlf/c8/issues/238)) ([dbf94a0](dbf94a0))
* adds TypeScript definitions ([d39801b](d39801b)), closes [bcoe#195](https://github.com/prantlf/c8/issues/195)
* **all:** handle base64 inline source maps ([bcoe#283](https://github.com/prantlf/c8/issues/283)) ([3f12dd4](3f12dd4))
* allow  --reports-dir to be configured ([bcoe#65](https://github.com/prantlf/c8/issues/65)) ([5ab31f5](5ab31f5))
* allow relative paths to be optionally included ([3806c79](3806c79))
* allow script wrapper length to be specified ([bcoe#51](https://github.com/prantlf/c8/issues/51)) ([a22c4e0](a22c4e0))
* first pass at functional prototype without subprocess support ([bcoe#5](https://github.com/prantlf/c8/issues/5)) ([9534f56](9534f56))
* foreground-child's done() method was not being called ([bcoe#82](https://github.com/prantlf/c8/issues/82)) ([fde596e](fde596e))
* implement Istanbul reporting ([bcoe#8](https://github.com/prantlf/c8/issues/8)) ([8e430bf](8e430bf))
* improve test assertions ([bcoe#28](https://github.com/prantlf/c8/issues/28)) ([522720e](522720e))
* introduce --exclude-after-remap flag ([bcoe#293](https://github.com/prantlf/c8/issues/293)) ([53c4234](53c4234)), closes [bcoe#224](https://github.com/prantlf/c8/issues/224)
* load .nycrc/.nycrc.json to simplify migration ([bcoe#100](https://github.com/prantlf/c8/issues/100)) ([bd7484f](bd7484f))
* playing around with initial implementation ([18f5471](18f5471))
* support --check-coverage for reports ([bcoe#60](https://github.com/prantlf/c8/issues/60)) ([b542930](b542930))
* support for instrumenting files outside of current working directory ([7e53a0e](7e53a0e))
* support ignore start/stop comment ([bcoe#273](https://github.com/prantlf/c8/issues/273)) ([90949fa](90949fa)), closes [bcoe#271](https://github.com/prantlf/c8/issues/271)
* support passing reporter options ([bcoe#423](https://github.com/prantlf/c8/issues/423)) ([bc347a9](bc347a9))
* switch to stderr and default port ([bcoe#7](https://github.com/prantlf/c8/issues/7)) ([bb117b7](bb117b7))
* switch to using Node's built in coverage ([bcoe#22](https://github.com/prantlf/c8/issues/22)) ([3c1b92b](3c1b92b))
* **types:** add typings for reporterOptions ([bcoe#446](https://github.com/prantlf/c8/issues/446)) ([3646e6e](3646e6e))
* use debuglog rather than console.warn ([bcoe#279](https://github.com/prantlf/c8/issues/279)) ([7c04a4d](7c04a4d))
* use process.stdout.columns for reporter maxCols ([bcoe#409](https://github.com/prantlf/c8/issues/409)) ([7731574](7731574))
* warn instead of throw on exception ([bcoe#29](https://github.com/prantlf/c8/issues/29)) ([a8620d4](a8620d4))

### BREAKING CHANGES

* Node.js' source-map and lineLength cache is now used to remap coverage output (this allows tools like ts-node to be supported, which transpile at runtime).
* temp directory now defaults to setting for report directory
* c8 will now load source-maps if possible and remap coverage accordingly
* switches to using NODE_V8_COVERAGE rather than inspector directly
* dropped subprocess support for the time being, while we march towards an initial implementation.
github-actions bot pushed a commit to prantlf/c8 that referenced this pull request Apr 2, 2023
# 1.0.0 (2023-04-02)

### Bug Fixes

* `--all` now respects `--extension` flag. ([bcoe#357](https://github.com/prantlf/c8/issues/357)) ([a5deb27](a5deb27))
* add missing space in text ([bcoe#245](https://github.com/prantlf/c8/issues/245)) ([efe6d04](efe6d04))
* address bugs with source remapping on Windows ([bcoe#301](https://github.com/prantlf/c8/issues/301)) ([c817902](c817902))
* address file:// issue with CJS ([bcoe#39](https://github.com/prantlf/c8/issues/39)) ([d4f9cab](d4f9cab))
* all flag not propagated to check-coverage command ([bcoe#188](https://github.com/prantlf/c8/issues/188)) ([86eaf72](86eaf72))
* **config:** support configuration inheritance ([bcoe#343](https://github.com/prantlf/c8/issues/343)) ([e81ed5d](e81ed5d))
* **deps:** merging failed when the same script occurred multiple times in the same report ([bcoe#147](https://github.com/prantlf/c8/issues/147)) ([1ebcaf9](1ebcaf9))
* **deps:** update dependency find-up to v4 ([bcoe#119](https://github.com/prantlf/c8/issues/119)) ([c568d96](c568d96))
* **deps:** update dependency find-up to v5 ([bcoe#242](https://github.com/prantlf/c8/issues/242)) ([8a0cfd7](8a0cfd7))
* **deps:** update dependency furi to v2 ([bcoe#193](https://github.com/prantlf/c8/issues/193)) ([6b9af6e](6b9af6e))
* **deps:** update dependency rimraf to v3 ([bcoe#132](https://github.com/prantlf/c8/issues/132)) ([7601748](7601748))
* **deps:** update dependency v8-to-istanbul to v4 ([bcoe#167](https://github.com/prantlf/c8/issues/167)) ([97b9769](97b9769))
* **deps:** update dependency yargs to v14 ([bcoe#134](https://github.com/prantlf/c8/issues/134)) ([e49737f](e49737f))
* **deps:** update dependency yargs to v15 ([bcoe#164](https://github.com/prantlf/c8/issues/164)) ([e41a483](e41a483))
* **deps:** update dependency yargs to v16 ([bcoe#251](https://github.com/prantlf/c8/issues/251)) ([0436816](0436816))
* **deps:** update dependency yargs-parser to v13 ([bcoe#124](https://github.com/prantlf/c8/issues/124)) ([1eb3394](1eb3394))
* **deps:** update dependency yargs-parser to v14 ([bcoe#144](https://github.com/prantlf/c8/issues/144)) ([9b3d089](9b3d089))
* **deps:** update dependency yargs-parser to v15 ([bcoe#153](https://github.com/prantlf/c8/issues/153)) ([80153de](80153de))
* **deps:** update dependency yargs-parser to v16 ([bcoe#157](https://github.com/prantlf/c8/issues/157)) ([15746e5](15746e5))
* **deps:** update dependency yargs-parser to v17 ([bcoe#201](https://github.com/prantlf/c8/issues/201)) ([d730c63](d730c63))
* **deps:** update dependency yargs-parser to v18 ([bcoe#202](https://github.com/prantlf/c8/issues/202)) ([983de44](983de44))
* **deps:** update dependency yargs-parser to v19 ([bcoe#241](https://github.com/prantlf/c8/issues/241)) ([baa01df](baa01df))
* **deps:** update dependency yargs-parser to v20 ([bcoe#252](https://github.com/prantlf/c8/issues/252)) ([ae845f0](ae845f0))
* **deps:** update deps to address warning in cross-spawn ([bcoe#141](https://github.com/prantlf/c8/issues/141)) ([4b66221](4b66221))
* **deps:** update deps to latest ([bcoe#384](https://github.com/prantlf/c8/issues/384)) ([78eac8c](78eac8c)), closes [bcoe#375](https://github.com/prantlf/c8/issues/375)
* **deps:** v8-to-istanbul with fix for Windows paths ([bcoe#311](https://github.com/prantlf/c8/issues/311)) ([ef1b875](ef1b875))
* **deps:** v8-to-istanbul with patch for crasher ([bcoe#200](https://github.com/prantlf/c8/issues/200)) ([d4b7d80](d4b7d80))
* **deps:** v8-to-istnbul with fixes for Node 10/18 ([bcoe#392](https://github.com/prantlf/c8/issues/392)) ([d5f642a](d5f642a))
* do not override NODE_V8_COVERAGE if set ([bcoe#70](https://github.com/prantlf/c8/issues/70)) ([8bb67b0](8bb67b0))
* don't load JSON that does not look like coverage ([bcoe#146](https://github.com/prantlf/c8/issues/146)) ([a6481f1](a6481f1))
* escaping issue with cobertura reporter ([bcoe#203](https://github.com/prantlf/c8/issues/203)) ([e93747b](e93747b))
* exclude coverage of the CJS-ESM bridge from results ([bcoe#83](https://github.com/prantlf/c8/issues/83)) ([da2c945](da2c945))
* exit with code 1 when report output fails ([bcoe#92](https://github.com/prantlf/c8/issues/92)) ([a27b694](a27b694))
* file URL to system path conversion ([bcoe#46](https://github.com/prantlf/c8/issues/46)) ([e7f8cf2](e7f8cf2))
* fix package.json `test:snap` script to use cross-env ([bcoe#366](https://github.com/prantlf/c8/issues/366)) ([5d2981c](5d2981c))
* Fix usage of excludeAfterRemap not to set the coverage always to 100 ([9113449](9113449)), closes [bcoe#462](https://github.com/prantlf/c8/issues/462)
* float patch for branch/function coverage merge bug ([bcoe#56](https://github.com/prantlf/c8/issues/56)) ([1de0cca](1de0cca))
* HTML report now has correct source positions for Node >10.16.0 ([bcoe#125](https://github.com/prantlf/c8/issues/125)) ([c49fa7f](c49fa7f))
* ignore missing source maps in raw coverage output ([bcoe#233](https://github.com/prantlf/c8/issues/233)) ([eed98af](eed98af))
* make tests run on Windows ([bcoe#25](https://github.com/prantlf/c8/issues/25)) ([08e44d0](08e44d0))
* make tmp directory regardless of clean ([44d2185](44d2185))
* **perf:** cache `this.exclude.shouldInstrument` for improved performance ([bcoe#388](https://github.com/prantlf/c8/issues/388)) ([8b36f23](8b36f23))
* pin to functional version of spawn-wrap ([d1ced8c](d1ced8c))
* process coverage merging ([bcoe#37](https://github.com/prantlf/c8/issues/37)) ([67959b4](67959b4))
* regex flags in dependency were breaking Node 8 ([a9d9645](a9d9645))
* remove the unmaintained mkdirp dependency ([bcoe#91](https://github.com/prantlf/c8/issues/91)) ([a465b65](a465b65))
* snapshot ([7fd9e13](7fd9e13))
* support node@v15.x.x built-in modules ([bcoe#265](https://github.com/prantlf/c8/issues/265)) ([1b90a22](1b90a22))
* switch to mkdirp for Node 8 ([206b83f](206b83f))
* temporary files should be in tmp folder ([bcoe#106](https://github.com/prantlf/c8/issues/106)) ([64dd2e6](64dd2e6))
* tweak inspector event timing ([bcoe#6](https://github.com/prantlf/c8/issues/6)) ([01f654e](01f654e))
* **types:** add excludeAfterRemap and allowExternal  ([bcoe#297](https://github.com/prantlf/c8/issues/297)) ([e32a53f](e32a53f))
* Upgrade dependencies ([985b219](985b219))
* upgrade to @bcoe/v8-coverage with breaking regex dropped ([6c28e7f](6c28e7f))
* **v8-to-istanbul:** fixes shebang handling/ignore behavior ([bcoe#267](https://github.com/prantlf/c8/issues/267)) ([21cd41f](21cd41f))
* **v8-to-istanbul:** pull in fix for missing branches ([bcoe#258](https://github.com/prantlf/c8/issues/258)) ([eaffa78](eaffa78))
* **v8-to-istanbul:** revert off by one that broke TypeScript ([bcoe#262](https://github.com/prantlf/c8/issues/262)) ([81ab5b7](81ab5b7))
* we were not exiting with 1 if mkdir failed ([bcoe#89](https://github.com/prantlf/c8/issues/89)) ([fb02ed6](fb02ed6))

* feat!: use Node.js' source-map cache, to support tools like ts-node (bcoe#152) ([53bba15](53bba15)), closes [bcoe#152](https://github.com/prantlf/c8/issues/152)
* feat!: default temp directory to report directory (bcoe#102) ([8602f4a](8602f4a)), closes [bcoe#102](https://github.com/prantlf/c8/issues/102)

### Features

* `--100` ([bcoe#332](https://github.com/prantlf/c8/issues/332)) ([4205f2f](4205f2f))
* add --config option and documentation on options and configs ([bcoe#308](https://github.com/prantlf/c8/issues/308)) ([99436ef](99436ef))
* add --exclude-node-modules option ([bcoe#321](https://github.com/prantlf/c8/issues/321)) ([a4733c6](a4733c6))
* add --extension option ([bcoe#331](https://github.com/prantlf/c8/issues/331)) ([ff01cd8](ff01cd8))
* add --report-dir alias (for consistency with nyc) ([0dd1b04](0dd1b04))
* add --skip-full ([bcoe#287](https://github.com/prantlf/c8/issues/287)) ([8b01b63](8b01b63))
* add `skipFull` and `excludeNodeModules` to type definitions ([bcoe#417](https://github.com/prantlf/c8/issues/417)) ([b93b9c0](b93b9c0))
* add support for 1:1 source-maps ([bcoe#85](https://github.com/prantlf/c8/issues/85)) ([6ca4345](6ca4345))
* add support for ignoring lines, functions, and blocks ([bcoe#87](https://github.com/prantlf/c8/issues/87)) ([c66950e](c66950e))
* add thresholds for enforcing coverage percentage ([bcoe#59](https://github.com/prantlf/c8/issues/59)) ([70e8943](70e8943))
* adds --all functionality ([bcoe#158](https://github.com/prantlf/c8/issues/158)) ([2eb631e](2eb631e))
* adds support for 1:many source maps ([bcoe#238](https://github.com/prantlf/c8/issues/238)) ([dbf94a0](dbf94a0))
* adds TypeScript definitions ([d39801b](d39801b)), closes [bcoe#195](https://github.com/prantlf/c8/issues/195)
* **all:** handle base64 inline source maps ([bcoe#283](https://github.com/prantlf/c8/issues/283)) ([3f12dd4](3f12dd4))
* allow  --reports-dir to be configured ([bcoe#65](https://github.com/prantlf/c8/issues/65)) ([5ab31f5](5ab31f5))
* allow relative paths to be optionally included ([3806c79](3806c79))
* allow script wrapper length to be specified ([bcoe#51](https://github.com/prantlf/c8/issues/51)) ([a22c4e0](a22c4e0))
* first pass at functional prototype without subprocess support ([bcoe#5](https://github.com/prantlf/c8/issues/5)) ([9534f56](9534f56))
* foreground-child's done() method was not being called ([bcoe#82](https://github.com/prantlf/c8/issues/82)) ([fde596e](fde596e))
* implement Istanbul reporting ([bcoe#8](https://github.com/prantlf/c8/issues/8)) ([8e430bf](8e430bf))
* improve test assertions ([bcoe#28](https://github.com/prantlf/c8/issues/28)) ([522720e](522720e))
* introduce --exclude-after-remap flag ([bcoe#293](https://github.com/prantlf/c8/issues/293)) ([53c4234](53c4234)), closes [bcoe#224](https://github.com/prantlf/c8/issues/224)
* load .nycrc/.nycrc.json to simplify migration ([bcoe#100](https://github.com/prantlf/c8/issues/100)) ([bd7484f](bd7484f))
* playing around with initial implementation ([18f5471](18f5471))
* support --check-coverage for reports ([bcoe#60](https://github.com/prantlf/c8/issues/60)) ([b542930](b542930))
* support for instrumenting files outside of current working directory ([7e53a0e](7e53a0e))
* support ignore start/stop comment ([bcoe#273](https://github.com/prantlf/c8/issues/273)) ([90949fa](90949fa)), closes [bcoe#271](https://github.com/prantlf/c8/issues/271)
* support passing reporter options ([bcoe#423](https://github.com/prantlf/c8/issues/423)) ([bc347a9](bc347a9))
* switch to stderr and default port ([bcoe#7](https://github.com/prantlf/c8/issues/7)) ([bb117b7](bb117b7))
* switch to using Node's built in coverage ([bcoe#22](https://github.com/prantlf/c8/issues/22)) ([3c1b92b](3c1b92b))
* **types:** add typings for reporterOptions ([bcoe#446](https://github.com/prantlf/c8/issues/446)) ([3646e6e](3646e6e))
* use debuglog rather than console.warn ([bcoe#279](https://github.com/prantlf/c8/issues/279)) ([7c04a4d](7c04a4d))
* use process.stdout.columns for reporter maxCols ([bcoe#409](https://github.com/prantlf/c8/issues/409)) ([7731574](7731574))
* warn instead of throw on exception ([bcoe#29](https://github.com/prantlf/c8/issues/29)) ([a8620d4](a8620d4))

### BREAKING CHANGES

* Node.js' source-map and lineLength cache is now used to remap coverage output (this allows tools like ts-node to be supported, which transpile at runtime).
* temp directory now defaults to setting for report directory
* c8 will now load source-maps if possible and remap coverage accordingly
* switches to using NODE_V8_COVERAGE rather than inspector directly
* dropped subprocess support for the time being, while we march towards an initial implementation.
mcknasty pushed a commit to mcknasty/c8 that referenced this pull request Feb 2, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants