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
feat(compiler-cli): inline resources when generating class metadata calls #43178
feat(compiler-cli): inline resources when generating class metadata calls #43178
Conversation
53ac2af
to
d48b595
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good @devversion - a minor tweak should reduce the noise in the test diffs, and also produce more compact output.
…alls Previously with View Engine output, the `enableResourceInlining` option could be set to inline external templates and styles (also for the resulting `.metadata.json` files). We want to do the same for the Ivy compilation pipeline (regardless of the compilation mode). The full compilation definitions, and partial declarations currently already inline resources in a way that no external requests need to be made. Although there is one exception currently. These are the calls for setting class metadata (for testbed overrides). This commit updates the set class metadata calls (for both partial and full compilation) to always inline resources. This means that libraries do not need to start shipping external styles/templates just for the `setClassMetadata` calls. Note: Only doing this for partial compilation has been considered, but it seems like it would be simpler implementation-wise to do this for full compilation as well. Given the external resources are already inlined (through their `ecmp` definitions), it seems acceptable (or even more aligned) to do the same for the set class metadata calls.
…adata calls Address feedback
d48b595
to
5c3fc58
Compare
…alls (angular#43178) Previously with View Engine output, the `enableResourceInlining` option could be set to inline external templates and styles (also for the resulting `.metadata.json` files). We want to do the same for the Ivy compilation pipeline (regardless of the compilation mode). The full compilation definitions, and partial declarations currently already inline resources in a way that no external requests need to be made. Although there is one exception currently. These are the calls for setting class metadata (for testbed overrides). This commit updates the set class metadata calls (for both partial and full compilation) to always inline resources. This means that libraries do not need to start shipping external styles/templates just for the `setClassMetadata` calls. Note: Only doing this for partial compilation has been considered, but it seems like it would be simpler implementation-wise to do this for full compilation as well. Given the external resources are already inlined (through their `ecmp` definitions), it seems acceptable (or even more aligned) to do the same for the set class metadata calls. PR Close angular#43178
This issue has been automatically locked due to inactivity. Read more about our automatic conversation locking policy. This action has been performed automatically by a bot. |
…alls (angular#43178) Previously with View Engine output, the `enableResourceInlining` option could be set to inline external templates and styles (also for the resulting `.metadata.json` files). We want to do the same for the Ivy compilation pipeline (regardless of the compilation mode). The full compilation definitions, and partial declarations currently already inline resources in a way that no external requests need to be made. Although there is one exception currently. These are the calls for setting class metadata (for testbed overrides). This commit updates the set class metadata calls (for both partial and full compilation) to always inline resources. This means that libraries do not need to start shipping external styles/templates just for the `setClassMetadata` calls. Note: Only doing this for partial compilation has been considered, but it seems like it would be simpler implementation-wise to do this for full compilation as well. Given the external resources are already inlined (through their `ecmp` definitions), it seems acceptable (or even more aligned) to do the same for the set class metadata calls. PR Close angular#43178
Previously with View Engine output, the
enableResourceInlining
optioncould be set to inline external templates and styles (also for the
resulting
.metadata.json
files). We want to do the same for the Ivycompilation pipeline (regardless of the compilation mode). The full
compilation definitions, and partial declarations currently already
inline resources in a way that no external requests need to be made.
Although there is one exception currently. These are the calls for
setting class metadata (for testbed overrides). This commit updates
the set class metadata calls (for both partial and full compilation)
to always inline resources. This means that libraries do not need
to start shipping external styles/templates just for the
setClassMetadata
calls.Note: Only doing this for partial compilation has been considered, but
it seems like it would be simpler implementation-wise to do this for
full compilation as well. Given the external resources are already
inlined (through their
ecmp
definitions), it seems acceptable (oreven more aligned) to do the same for the set class metadata calls.
Also, it's worth noting that source mappings will not exist for the
case where we inline external resources. It would be possible to
generate mappings in some cases; but not all because the
@Component
metadata could be built up using a spread operator etc. I believe it's
not worth the effort doing this (this will require a lot of logic and break for
various edge-cases).