[wrangler] fix: allow wrangler pages dev
sessions to be reloaded
#4054
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.
Fixes #4008, #4017, remix-run/remix#7510
What this PR solves / how to test:
#3951 introduced a change that closed the bootstrapper's IPC channel when Wrangler exited. Whenever
wrangler (pages) dev
reloads, an event is sent on this channel to indicate the dev server is ready. Unfortunately,wrangler pages dev
's handler didn't wait for the dev session to exit before resolving its returned promise, meaning the channel was closed as soon as the dev server was ready, not when Wrangler exited. This meant that ready events sent from reloads resulted in anERR_IPC_CHANNEL_CLOSED
that crashed Wrangler. :(This PR updates the code to only resolve the returned promise once the dev session exits, ensuring the channel stays open.
To test, run
npm run dev
infixtures/pages-functions-app
, wait for the dev server to start, then update a file. Before this change, this would crash. Afterwards, it should reload the dev server with the new script.Associated docs issue(s)/PR(s):
N/A
Author has included the following, where applicable:
Reviewer is to perform the following, as applicable:
Note for PR author:
We want to celebrate and highlight awesome PR review! If you think this PR received a particularly high-caliber review, please assign it the label
highlight pr review
so future reviewers can take inspiration and learn from it.