stencil icon indicating copy to clipboard operation
stencil copied to clipboard

fix(compiler): removed support for tagNameTransform

Open christian-bromann opened this issue 1 year ago • 8 comments

What is the current behavior?

It seems like Stencil currently allows to transform the tag name at runtime. The feature was introduced in https://github.com/ionic-team/stencil/pull/2343/files but was never really introduced nor added to the docs.

What is the new behavior?

I suggest to remove this entirely since we don't have any tests for this nor do we know how it suppose to behave.

Documentation

Does this introduce a breaking change?

  • [ ] Yes
  • [x] No

Technically yes but since we never documented it, it was never actually been released as a feature.

Testing

Other information

n/a

christian-bromann avatar Jun 24 '24 19:06 christian-bromann

PR built and packed!

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

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

unzip -d ~/Downloads ~/Downloads/stencil-core-4.18.3-dev.1719259258.093e4de.tgz.zip && npm install ~/Downloads/stencil-core-4.18.3-dev.1719259258.093e4de.tgz

github-actions[bot] avatar Jun 24 '24 19:06 github-actions[bot]

@stencil/[email protected] ts tsc --noEmit --project scripts/tsconfig.json && tsx scripts/tech-debt-burndown-report.ts

--strictNullChecks error report

Typechecking with --strictNullChecks resulted in 1068 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 22
src/runtime/client-hydrate.ts 20
src/runtime/vdom/test/patch.spec.ts 19
src/runtime/vdom/test/util.spec.ts 19
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
Our most common errors
Typescript Error Code Count
TS2322 338
TS2345 326
TS18048 188
TS18047 99
TS2722 27
TS2531 19
TS2532 18
TS2790 11
TS2454 10
TS2352 9
TS2769 8
TS2416 7
TS2538 4
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 115 Env
src/compiler/app-core/app-data.ts 117 NAMESPACE
src/compiler/fs-watch/fs-watch-rebuild.ts 123 updateCacheFromRebuild
src/compiler/types/validate-primary-package-output-target.ts 82 satisfies
src/compiler/types/validate-primary-package-output-target.ts 82 Record
src/testing/puppeteer/puppeteer-declarations.ts 496 WaitForEventOptions
src/compiler/sys/fetch/write-fetch-success.ts 7 writeFetchSuccessSync

github-actions[bot] avatar Jun 24 '24 19:06 github-actions[bot]

Hi! just to make it known this feature is definitely used by the community https://dev.to/sanderand/running-multiple-versions-of-a-stencil-design-system-without-conflicts-2f46 :)

johnjenkins avatar Jun 25 '24 06:06 johnjenkins

Also wanted to chime in and say my team is currently using this feature!

TRMW avatar Jul 03 '24 00:07 TRMW

@johnjenkins @TRMW thanks for providing feedback. Mind sharing in what context you are using this? What is the problem you are trying to solve?

christian-bromann avatar Jul 03 '24 00:07 christian-bromann

I believe, essentially, the use cases are outlined by scoped custom element registries so if stencil can work with that proposal / polyfill then that’d be an alternative / better way forward

johnjenkins avatar Jul 03 '24 06:07 johnjenkins

I confirm, we also use it and struggle with angular react output target.

ryuran avatar Jul 09 '24 10:07 ryuran

We are also using it as an alternative to scoped custom element registries. We use Stencil for a design system component library, and there are sometimes times when multiple versions of that library end up on the same page. We use this to allow teams to prefix/suffix their custom element names to ensure they always get the version they expect.

TRMW avatar Jul 09 '24 17:07 TRMW

Closing as we plan to use this feature to support scoped components.

christian-bromann avatar Nov 20 '24 19:11 christian-bromann