ionic-team / stencil

A toolchain for building scalable, enterprise-ready component systems on top of TypeScript and Web Component standards. Stencil components can be distributed natively to React, Angular, Vue, and traditional web developers from a single, framework-agnostic codebase.
https://stenciljs.com
Other
12.4k stars 775 forks source link

fix(emit): don't emit test files #5789

Closed alicewriteswrongs closed 4 weeks ago

alicewriteswrongs commented 1 month ago

This fixes a bug introduced in #4315, which upgraded to TypeScript 5. In that PR we had to change the way that we prevented certain files from being emitted by the typescript compiler because in the 5.0 release our previous approach stopped working.

However, in porting over to a new approach that worked with TS 5.0 there was an oversight. I misunderstood the intent of the old code as being to merely prevent writing .d.ts files in the output, when actually it was about preventing the compiled JavaScript from being written for .e2e.ts and .spec.ts files.

This change ensures that we no longer emit these files.

fixes #5788 STENCIL-1325

What is the current behavior?

GitHub Issue Number: N/A

What is the new behavior?

Documentation

Does this introduce a breaking change?

Testing

Other information

github-actions[bot] commented 1 month ago

@stencil/core@4.18.3 ts tsc --noEmit --project scripts/tsconfig.json && tsx scripts/tech-debt-burndown-report.ts

--strictNullChecks error report

Typechecking with --strictNullChecks resulted in 1080 errors on this branch.

That's the same number of errors on main, so at least we're not creating new ones!

reports and statistics

Our most error-prone files | Path | Error Count | | --- | --- | | src/dev-server/index.ts | 37 | | src/dev-server/server-process.ts | 32 | | src/compiler/prerender/prerender-main.ts | 22 | | src/runtime/vdom/vdom-render.ts | 21 | | src/runtime/client-hydrate.ts | 20 | | src/screenshot/connector-base.ts | 19 | | src/testing/puppeteer/puppeteer-element.ts | 19 | | src/dev-server/request-handler.ts | 15 | | src/compiler/prerender/prerender-optimize.ts | 14 | | src/compiler/sys/stencil-sys.ts | 14 | | src/runtime/connected-callback.ts | 14 | | src/sys/node/node-sys.ts | 14 | | src/compiler/prerender/prerender-queue.ts | 13 | | src/compiler/sys/in-memory-fs.ts | 13 | | src/runtime/set-value.ts | 13 | | src/compiler/output-targets/output-www.ts | 12 | | src/compiler/transformers/test/parse-vdom.spec.ts | 12 | | src/compiler/transformers/transform-utils.ts | 12 | | src/mock-doc/test/attribute.spec.ts | 12 | | src/compiler/build/compiler-ctx.ts | 11 |
Our most common errors | [Typescript Error Code](https://github.com/microsoft/TypeScript/blob/main/src/compiler/diagnosticMessages.json) | Count | | --- | --- | | TS2322 | 351 | | TS2345 | 330 | | TS18048 | 193 | | TS18047 | 76 | | TS2722 | 27 | | TS2532 | 24 | | TS2531 | 19 | | TS2454 | 14 | | TS2790 | 11 | | TS2352 | 9 | | TS2769 | 8 | | TS2416 | 7 | | TS2538 | 4 | | TS2493 | 3 | | TS18046 | 2 | | TS2684 | 1 | | TS2430 | 1 |

Unused exports report

There are 15 unused exports on this PR. That's the same number of errors on main, so at least we're not creating new ones!

Unused exports | File | Line | Identifier | | --- | --- | --- | | src/runtime/bootstrap-lazy.ts | 21 | setNonce | | src/screenshot/screenshot-fs.ts | 18 | readScreenshotData | | src/testing/testing-utils.ts | 198 | withSilentWarn | | src/utils/index.ts | 145 | CUSTOM | | src/utils/index.ts | 245 | NODE_TYPES | | src/utils/index.ts | 269 | normalize | | src/utils/index.ts | 7 | escapeRegExpSpecialCharacters | | src/compiler/app-core/app-data.ts | 25 | BUILD | | src/compiler/app-core/app-data.ts | 116 | Env | | src/compiler/app-core/app-data.ts | 118 | NAMESPACE | | src/compiler/fs-watch/fs-watch-rebuild.ts | 123 | updateCacheFromRebuild | | src/compiler/types/validate-primary-package-output-target.ts | 61 | satisfies | | src/compiler/types/validate-primary-package-output-target.ts | 61 | Record | | src/testing/puppeteer/puppeteer-declarations.ts | 485 | WaitForEventOptions | | src/compiler/sys/fetch/write-fetch-success.ts | 7 | writeFetchSuccessSync |
github-actions[bot] commented 1 month ago

PR built and packed!

Download the tarball here: https://github.com/ionic-team/stencil/actions/runs/9357030384/artifacts/1564305362

If your browser saves files to ~/Downloads you can install it like so:

unzip -d ~/Downloads ~/Downloads/stencil-core-4.18.3-dev.1717447679.3751c61.tgz.zip && npm install ~/Downloads/stencil-core-4.18.3-dev.1717447679.3751c61.tgz
alicewriteswrongs commented 4 weeks ago

@christian-bromann I updated this following your feedback!