workers-sdk
workers-sdk copied to clipboard
add support for assets bindings to `getPlatformProxy` (take 2)
Fixes https://github.com/cloudflare/workers-sdk/issues/7812
this change makes sure that that getPlatformProxy, when the input configuration file contains an assets field, correctly returns the appropriate asset binding proxy
This is reintroducing the change introduced in https://github.com/cloudflare/workers-sdk/pull/7816 and reverted in https://github.com/cloudflare/workers-sdk/pull/7866
This was reverted because some projects might call getPlatformProxy before the assets directory exists (for example if getPlatformProxy is used in their vite config, an initial vite build will cause the utility not to find the directory and throw an error), my solution is to try catch the exception and ignore the non-existing dir for this utility (this seems reasonable enough to me, I need to see if the team agrees)
- Tests
- [ ] TODO (before merge)
- [x] Tests included
- [ ] Tests not necessary because:
- Wrangler / Vite E2E Tests CI Job required? (Use "e2e" label or ask maintainer to run separately)
- [ ] I don't know
- [x] Required
- [ ] Not required because:
- Public documentation
- [ ] TODO (before merge)
- [x] Cloudflare docs PR(s): https://github.com/cloudflare/cloudflare-docs/pull/19300
- [ ] Documentation not necessary because:
- Wrangler V3 Backport
- [ ] TODO (before merge)
- [x] Wrangler PR: https://github.com/cloudflare/workers-sdk/pull/9694
- [ ] Not necessary because:
🦋 Changeset detected
Latest commit: edc43d431af03c3e07d7c1c0af8267260e6ab309
The changes in this PR will be included in the next version bump.
This PR includes changesets to release 2 packages
| Name | Type |
|---|---|
| wrangler | Patch |
| @cloudflare/vitest-pool-workers | Patch |
Not sure what this means? Click here to learn what changesets are.
Click here if you're a maintainer who wants to add another changeset to this PR
A wrangler prerelease is available for testing. You can install this latest build in your project with:
npm install --save-dev https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/13372236543/npm-package-wrangler-7871
You can reference the automatically updated head of this PR with:
npm install --save-dev https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/prs/7871/npm-package-wrangler-7871
Or you can use npx with this latest build directly:
npx https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/13372236543/npm-package-wrangler-7871 dev path/to/script.js
Additional artifacts:
cloudflare-workers-bindings-extension:
wget https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/13372236543/npm-package-cloudflare-workers-bindings-extension-7871 -O ./cloudflare-workers-bindings-extension.0.0.0-vee9dc019c.vsix && code --install-extension ./cloudflare-workers-bindings-extension.0.0.0-vee9dc019c.vsix
create-cloudflare:
npx https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/13372236543/npm-package-create-cloudflare-7871 --no-auto-update
@cloudflare/kv-asset-handler:
npm install https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/13372236543/npm-package-cloudflare-kv-asset-handler-7871
miniflare:
npm install https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/13372236543/npm-package-miniflare-7871
@cloudflare/pages-shared:
npm install https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/13372236543/npm-package-cloudflare-pages-shared-7871
@cloudflare/unenv-preset:
npm install https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/13372236543/npm-package-cloudflare-unenv-preset-7871
@cloudflare/vite-plugin:
npm install https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/13372236543/npm-package-cloudflare-vite-plugin-7871
@cloudflare/vitest-pool-workers:
npm install https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/13372236543/npm-package-cloudflare-vitest-pool-workers-7871
@cloudflare/workers-editor-shared:
npm install https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/13372236543/npm-package-cloudflare-workers-editor-shared-7871
@cloudflare/workers-shared:
npm install https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/13372236543/npm-package-cloudflare-workers-shared-7871
@cloudflare/workflows-shared:
npm install https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/13372236543/npm-package-cloudflare-workflows-shared-7871
Note that these links will no longer work once the GitHub Actions artifact expires.
[email protected] includes the following runtime dependencies:
| Package | Constraint | Resolved |
|---|---|---|
miniflare |
workspace:* | 3.20250204.1 |
workerd |
1.20250204.0 | 1.20250204.0 |
workerd --version |
1.20250204.0 | 2025-02-04 |
Please ensure constraints are pinned, and miniflare/workerd minor versions match.
Can you briefly explain in the description how this PR fixes the reason why the first iteration was reverted?
Done 👍
@dario-piotrowicz is this ready to pick up again?
@dario-piotrowicz is this ready to pick up again?
yes it is! it's been on the back of my mind for a bit but I've been busy with other stuff, I'll pick this back up tomorrow or in the next few days, sorry about it 🙇
@penalosa should be good to review now 🙂👍
Failed to automatically backport this PR's changes to Wrangler v3. Please manually create a PR targeting the v3-maintenance branch with your changes. Thank you for helping us keep Wrangler v3 supported!
Depending on your changes, running git rebase --onto v3-maintenance main dario/7812/2/getplatformproxy_assets might be a good starting point.
Notes:
- your PR branch should be named
v3-backport-7871 - add the
skip-v3-prlabel to the current PR to stop this workflow from failing
create-cloudflare
npm i https://pkg.pr.new/create-cloudflare@7871
@cloudflare/kv-asset-handler
npm i https://pkg.pr.new/@cloudflare/kv-asset-handler@7871
miniflare
npm i https://pkg.pr.new/miniflare@7871
@cloudflare/pages-shared
npm i https://pkg.pr.new/@cloudflare/pages-shared@7871
@cloudflare/unenv-preset
npm i https://pkg.pr.new/@cloudflare/unenv-preset@7871
@cloudflare/vite-plugin
npm i https://pkg.pr.new/@cloudflare/vite-plugin@7871
@cloudflare/vitest-pool-workers
npm i https://pkg.pr.new/@cloudflare/vitest-pool-workers@7871
@cloudflare/workers-editor-shared
npm i https://pkg.pr.new/@cloudflare/workers-editor-shared@7871
wrangler
npm i https://pkg.pr.new/wrangler@7871
commit: edc43d4
[!NOTE] I've added the https://github.com/cloudflare/workers-sdk/labels/skip-v3-pr label just so that the workflow doesn't fail there is a v3 backport PR associated to this
PS: I think that ideally the v3 backport check should be smart enough to understand when a manual backport PR has been created 🤔