workers-sdk icon indicating copy to clipboard operation
workers-sdk copied to clipboard

add support for assets bindings to `getPlatformProxy` (take 2)

Open dario-piotrowicz opened this issue 10 months ago • 9 comments

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:

dario-piotrowicz avatar Jan 22 '25 21:01 dario-piotrowicz

🦋 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

changeset-bot[bot] avatar Jan 22 '25 21:01 changeset-bot[bot]

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.

github-actions[bot] avatar Jan 22 '25 21:01 github-actions[bot]

Can you briefly explain in the description how this PR fixes the reason why the first iteration was reverted?

Done 👍

dario-piotrowicz avatar Jan 23 '25 19:01 dario-piotrowicz

@dario-piotrowicz is this ready to pick up again?

penalosa avatar Feb 13 '25 16:02 penalosa

@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 🙇

dario-piotrowicz avatar Feb 13 '25 19:02 dario-piotrowicz

@penalosa should be good to review now 🙂👍

dario-piotrowicz avatar Feb 17 '25 15:02 dario-piotrowicz

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-pr label to the current PR to stop this workflow from failing

github-actions[bot] avatar Jun 18 '25 21:06 github-actions[bot]

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

pkg-pr-new[bot] avatar Jun 18 '25 21:06 pkg-pr-new[bot]

[!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 🤔

dario-piotrowicz avatar Jun 20 '25 13:06 dario-piotrowicz