feat(runtime): support already-existing shadow roots#5787
Closed
alicewriteswrongs wants to merge 3 commits intomainfrom
Closed
feat(runtime): support already-existing shadow roots#5787alicewriteswrongs wants to merge 3 commits intomainfrom
alicewriteswrongs wants to merge 3 commits intomainfrom
Conversation
Contributor
|
| 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 | 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 |
a10290c to
39cb9e9
Compare
Contributor
PR built and packed!Download the tarball here: https://github.com/ionic-team/stencil/actions/runs/9269810431/artifacts/1544211247 If your browser saves files to |
2 tasks
This adds some checks when a Stencil component is booting up that will re-use a shadow root if the host element already has one, instead of just calling `this.attachShadow` in all cases. Additionally, Stencil's virtual DOM will now cleanly take over any elements which are already present in its root element when it first runs. This will allow it to re-use elements that were already created in the shadow root, as well as clean up any stray elements that shouldn't be there. Together these changes will allow the Stencil runtime to smoothly take over a shadow root which was created via a `<template>` tag in the page's HTML, i.e. via declarative shadow DOM (DSD). **NOTE** this _only_ enables the Stencil runtime to re-use a shadow root created via DSD, it does not add any support to Stencil for rendering a suitable `<template>...` HTML string. STENCIL-1316
39cb9e9 to
65b5fb8
Compare
Contributor
Author
|
closing in favor of #5792 |
christian-bromann
added a commit
that referenced
this pull request
Jun 4, 2024
christian-bromann
added a commit
that referenced
this pull request
Jun 12, 2024
feat(runtime): enhance renderToString to support serializeShadowRootAsDeclarativeShadowRoot flag make esm hydrate script make test work add unit test fix prettier wip minor tweaks apply more changes from #5787 get unit tests working prettier remove import fix test eslint fix use dynamic import minor e2e fixes prettier fix cspell adjust tests prettier allow to run headless make streaming work fix tests prettier remove obsolete file this should fix pre-render test prettier finally get it right prettier
christian-bromann
added a commit
that referenced
this pull request
Jun 12, 2024
feat(runtime): enhance renderToString to support serializeShadowRootAsDeclarativeShadowRoot flag make esm hydrate script make test work add unit test fix prettier wip minor tweaks apply more changes from #5787 get unit tests working prettier remove import fix test eslint fix use dynamic import minor e2e fixes prettier fix cspell adjust tests prettier allow to run headless make streaming work fix tests prettier remove obsolete file this should fix pre-render test prettier finally get it right prettier
github-merge-queue bot
pushed a commit
that referenced
this pull request
Jun 21, 2024
* feat(runtime): support declarative shadow DOM feat(runtime): enhance renderToString to support serializeShadowRootAsDeclarativeShadowRoot flag make esm hydrate script make test work add unit test fix prettier wip minor tweaks apply more changes from #5787 get unit tests working prettier remove import fix test eslint fix use dynamic import minor e2e fixes prettier fix cspell adjust tests prettier allow to run headless make streaming work fix tests prettier remove obsolete file this should fix pre-render test prettier finally get it right prettier * Update src/runtime/bootstrap-lazy.ts Co-authored-by: Tanner Reits <47483144+tanner-reits@users.noreply.github.com> * fix: strict null checks * prettier * remove setTimeout call --------- Co-authored-by: Tanner Reits <47483144+tanner-reits@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This adds some checks when a Stencil component is booting up that will
re-use a shadow root if the host element already has one, instead of
just calling
this.attachShadowin all cases.Additionally, Stencil's virtual DOM will now cleanly take over any
elements which are already present in its root element when it first
runs. This will allow it to re-use elements that were already created in
the shadow root, as well as clean up any stray elements that shouldn't
be there.
Together these changes will allow the Stencil runtime to smoothly take
over a shadow root which was created via a
<template>tag in thepage's HTML, i.e. via declarative shadow DOM (DSD).
NOTE this only enables the Stencil runtime to re-use a shadow root
created via DSD, it does not add any support to Stencil for rendering
a suitable
<template>...HTML string.STENCIL-1316
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