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

refactor: minor cleanups in webpack actions code #75912

Merged
merged 4 commits into from
Feb 12, 2025

Conversation

lubieowoce
Copy link
Member

@lubieowoce lubieowoce commented Feb 11, 2025

this is a bundle of small cleanups i did while working on #75908, and i decided to pull them out.
this PR is intended to be reviewed commit-by-commit.
i don't want to turn this into a stack because that'll take much longer to merge (unless someone REALLY wants me to)

changes by commit:

  1. i removed RSCMeta.actions, because it was unused except for one place where RSCMeta.actionIds is enough
  2. fixed some places that were accessing module.buildInfo.rsc in a non-typesafe way, removed redundant getActionsFromBuildInfo helper
  3. added some type safety to the huge queryparam passed to next-flight-action-entry-loader
  4. replaced some [id, name] tuples in flight-client-entry-plugin next-flight-action-entry-loader with { id, exportedName }. IMHO tuples where both items are the same type are asking for trouble, names are harder to mess up

@ijjk ijjk added created-by: Next.js team PRs by the Next.js team. type: next labels Feb 11, 2025
@lubieowoce lubieowoce marked this pull request as ready for review February 11, 2025 16:28
@ijjk
Copy link
Member

ijjk commented Feb 11, 2025

Stats from current PR

Default Build (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary vercel/next.js lubieowoce/refactor-rsc-info Change
buildDuration 21.3s 18.1s N/A
buildDurationCached 17.2s 14.4s N/A
nodeModulesSize 393 MB 393 MB ⚠️ +2.17 kB
nextStartRea..uration (ms) 467ms 466ms N/A
Client Bundles (main, webpack)
vercel/next.js canary vercel/next.js lubieowoce/refactor-rsc-info Change
5306-HASH.js gzip 54.8 kB 54.8 kB N/A
8276.HASH.js gzip 169 B 168 B N/A
8377-HASH.js gzip 5.46 kB 5.46 kB N/A
bccd1874-HASH.js gzip 53 kB 53 kB
framework-HASH.js gzip 57.5 kB 57.5 kB N/A
main-app-HASH.js gzip 244 B 246 B N/A
main-HASH.js gzip 34.6 kB 34.5 kB N/A
webpack-HASH.js gzip 1.71 kB 1.71 kB N/A
Overall change 53 kB 53 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary vercel/next.js lubieowoce/refactor-rsc-info Change
polyfills-HASH.js gzip 39.4 kB 39.4 kB
Overall change 39.4 kB 39.4 kB
Client Pages
vercel/next.js canary vercel/next.js lubieowoce/refactor-rsc-info Change
_app-HASH.js gzip 193 B 193 B
_error-HASH.js gzip 193 B 193 B
amp-HASH.js gzip 512 B 510 B N/A
css-HASH.js gzip 343 B 342 B N/A
dynamic-HASH.js gzip 1.84 kB 1.84 kB
edge-ssr-HASH.js gzip 265 B 265 B
head-HASH.js gzip 363 B 362 B N/A
hooks-HASH.js gzip 393 B 392 B N/A
image-HASH.js gzip 4.59 kB 4.58 kB N/A
index-HASH.js gzip 268 B 268 B
link-HASH.js gzip 2.35 kB 2.35 kB N/A
routerDirect..HASH.js gzip 328 B 328 B
script-HASH.js gzip 397 B 397 B
withRouter-HASH.js gzip 323 B 326 B N/A
1afbb74e6ecf..834.css gzip 106 B 106 B
Overall change 3.59 kB 3.59 kB
Client Build Manifests
vercel/next.js canary vercel/next.js lubieowoce/refactor-rsc-info Change
_buildManifest.js gzip 748 B 747 B N/A
Overall change 0 B 0 B
Rendered Page Sizes
vercel/next.js canary vercel/next.js lubieowoce/refactor-rsc-info Change
index.html gzip 524 B 524 B
link.html gzip 540 B 537 B N/A
withRouter.html gzip 521 B 520 B N/A
Overall change 524 B 524 B
Edge SSR bundle Size
vercel/next.js canary vercel/next.js lubieowoce/refactor-rsc-info Change
edge-ssr.js gzip 130 kB 130 kB N/A
page.js gzip 211 kB 211 kB N/A
Overall change 0 B 0 B
Middleware size
vercel/next.js canary vercel/next.js lubieowoce/refactor-rsc-info Change
middleware-b..fest.js gzip 674 B 673 B N/A
middleware-r..fest.js gzip 155 B 156 B N/A
middleware.js gzip 31.3 kB 31.3 kB N/A
edge-runtime..pack.js gzip 844 B 844 B
Overall change 844 B 844 B
Next Runtimes
vercel/next.js canary vercel/next.js lubieowoce/refactor-rsc-info Change
app-page-exp...dev.js gzip 393 kB 393 kB
app-page-exp..prod.js gzip 132 kB 132 kB
app-page-tur..prod.js gzip 145 kB 145 kB
app-page-tur..prod.js gzip 141 kB 141 kB
app-page.run...dev.js gzip 381 kB 381 kB
app-page.run..prod.js gzip 129 kB 129 kB
app-route-ex...dev.js gzip 39.3 kB 39.3 kB
app-route-ex..prod.js gzip 25.6 kB 25.6 kB
app-route-tu..prod.js gzip 25.6 kB 25.6 kB
app-route-tu..prod.js gzip 25.4 kB 25.4 kB
app-route.ru...dev.js gzip 40.9 kB 40.9 kB
app-route.ru..prod.js gzip 25.4 kB 25.4 kB
dist_client_...dev.js gzip 356 B 356 B
dist_client_...dev.js gzip 349 B 349 B
pages-api-tu..prod.js gzip 9.69 kB 9.69 kB
pages-api.ru...dev.js gzip 11.8 kB 11.8 kB
pages-api.ru..prod.js gzip 9.68 kB 9.68 kB
pages-turbo...prod.js gzip 21.9 kB 21.9 kB
pages.runtim...dev.js gzip 31.5 kB 31.5 kB
pages.runtim..prod.js gzip 21.9 kB 21.9 kB
server.runti..prod.js gzip 61 kB 61 kB
Overall change 1.67 MB 1.67 MB
build cache Overall increase ⚠️
vercel/next.js canary vercel/next.js lubieowoce/refactor-rsc-info Change
0.pack gzip 2.11 MB 2.11 MB ⚠️ +6.23 kB
index.pack gzip 75.8 kB 76.1 kB ⚠️ +270 B
Overall change 2.18 MB 2.19 MB ⚠️ +6.5 kB
Diff details
Diff for main-HASH.js

Diff too large to display

Commit: 42fc308

@lubieowoce lubieowoce changed the title refactor: webpack cleanups around actions refactor: minor cleanups in webpack actions code Feb 11, 2025
@ijjk
Copy link
Member

ijjk commented Feb 11, 2025

Tests Passed

const actions = getActionsFromBuildInfo(mod)
if (actions) {
collectedActions.set(modResource, Object.entries(actions))
const actionIds = getModuleBuildInfo(mod).rsc?.actionIds
Copy link
Member

Choose a reason for hiding this comment

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

can we still keep accessing actionIds as a webpack util, we were trying to avoid touching buildInfo directly everywhere instead abstracting them in utils to avoid more changes when contract changes.

Copy link
Member Author

Choose a reason for hiding this comment

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

has the contract ever changed tho. IMHO getActionsFromBuildInfo(mod) isn't really much of an improvement over getModuleBuildInfo(mod).rsc?.actionIds

Copy link
Member Author

@lubieowoce lubieowoce Feb 11, 2025

Choose a reason for hiding this comment

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

there's like 3 files that reference the actual field so i'd say it's not really a big deal to update
Screenshot 2025-02-11 at 17 55 30

@lubieowoce lubieowoce force-pushed the lubieowoce/refactor-rsc-info branch from 3fa75df to 42fc308 Compare February 11, 2025 18:53
@lubieowoce lubieowoce merged commit ca86778 into canary Feb 12, 2025
130 checks passed
@lubieowoce lubieowoce deleted the lubieowoce/refactor-rsc-info branch February 12, 2025 02:42
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Feb 26, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants