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

feat: wrangler init offers to create a starter worker #372

Merged
merged 1 commit into from
Feb 3, 2022

Conversation

threepointone
Copy link
Contributor

@threepointone threepointone commented Feb 2, 2022

We got feedback that wrangler init felt incomplete, because the immediate next thing folks need is a starter source file. So this adds another step to wrangler init where we offer to create that file for you.

Fixes #355

@changeset-bot
Copy link

changeset-bot bot commented Feb 2, 2022

🦋 Changeset detected

Latest commit: 302700b

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
wrangler 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

Copy link
Contributor

@Electroid Electroid left a comment

Choose a reason for hiding this comment

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

Yay! 🎉 I left some nits, feel free to take or leave them.

packages/wrangler/templates/new.worker.ts Outdated Show resolved Hide resolved
packages/wrangler/src/index.tsx Outdated Show resolved Hide resolved
packages/wrangler/src/__tests__/index.test.ts Outdated Show resolved Hide resolved
@threepointone
Copy link
Contributor Author

Feedback applied!

I don't exactly understand why the templates aren't being read in windows :( I'll have a look at it tomorrow unless someone else has any ideas.

But yay if the tests actually caught a bug in windows? That means #329 is already worth it, woo @petebacondarwin.

@JacobMGEvans
Copy link
Contributor

I can test this locally on my Windows computer tomorrow; it is set up for development.

packages/wrangler/src/index.tsx Outdated Show resolved Hide resolved
@threepointone
Copy link
Contributor Author

Tests pass now!

Copy link
Contributor

@petebacondarwin petebacondarwin left a comment

Choose a reason for hiding this comment

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

Looks great!

packages/wrangler/src/__tests__/index.test.ts Outdated Show resolved Hide resolved
packages/wrangler/src/__tests__/index.test.ts Outdated Show resolved Hide resolved
packages/wrangler/src/index.tsx Show resolved Hide resolved
We got feedback that `wrangler init` felt incomplete, because the immediate next thing folks need is a starter source file. So this adds another step to `wrangler init` where we offer to create that file for you.

Fixes #355
@threepointone threepointone merged commit 05dbb0d into main Feb 3, 2022
@threepointone threepointone deleted the init-source branch February 3, 2022 18:42
@github-actions github-actions bot mentioned this pull request Feb 3, 2022
threepointone added a commit that referenced this pull request Feb 3, 2022
Followup from #372 (comment), just removing some unnecessary calls to `process.cwd()`/`path.join()`, since they're already relative to where they're called from.
petebacondarwin pushed a commit that referenced this pull request Feb 3, 2022
Followup from #372 (comment), just removing some unnecessary calls to `process.cwd()`/`path.join()`, since they're already relative to where they're called from.
mrbbot added a commit that referenced this pull request Oct 31, 2023
…NTENT_MANIFEST` (#383)

* Use `glob-to-regexp` for glob parsing and matching

For Workers Sites, we'll need to match globs both outside and inside
workers. Splitting glob parsing into `RegExp`s and matching allows us
to serialise parsed `RegExp`s into worker bindings.

`glob-to-regexp` is also the package wrangler uses for globs.

* Support `file://` URLs in persistence options

File-system persistence can still be enabled using a regular non-URL
string root. Using a `file://` URL allows us to use query parameters
for controlling path sanitisation. Workers Sites requires unsanitised
storage as keys must exactly match paths (e.g. we want to lookup
`myfile.test.txt` not `myfile_test_txt`).

* Support `site{Include/Exclude}`, populate `__STATIC_CONTENT_MANIFEST`

This brings Miniflare 3's Workers Sites implementation up to parity
with Miniflare 2. Note as the Cache API is not yet supported,
`{ cacheControl: { bypassCache: true } }` must be passed as options
to `@cloudflare/kv-asset-handler`.

Closes #372

* Populate `compatibilityDate` for internal services

Recent open-source runtime binaries require this to be set

* PR suggestions

- Include full URL when storage protocol invalid
- Always try parse storage persistence URLs
- Status 405 for Method Not Allowed for Sites KV Namespace
mrbbot added a commit that referenced this pull request Nov 1, 2023
…NTENT_MANIFEST` (#383)

* Use `glob-to-regexp` for glob parsing and matching

For Workers Sites, we'll need to match globs both outside and inside
workers. Splitting glob parsing into `RegExp`s and matching allows us
to serialise parsed `RegExp`s into worker bindings.

`glob-to-regexp` is also the package wrangler uses for globs.

* Support `file://` URLs in persistence options

File-system persistence can still be enabled using a regular non-URL
string root. Using a `file://` URL allows us to use query parameters
for controlling path sanitisation. Workers Sites requires unsanitised
storage as keys must exactly match paths (e.g. we want to lookup
`myfile.test.txt` not `myfile_test_txt`).

* Support `site{Include/Exclude}`, populate `__STATIC_CONTENT_MANIFEST`

This brings Miniflare 3's Workers Sites implementation up to parity
with Miniflare 2. Note as the Cache API is not yet supported,
`{ cacheControl: { bypassCache: true } }` must be passed as options
to `@cloudflare/kv-asset-handler`.

Closes #372

* Populate `compatibilityDate` for internal services

Recent open-source runtime binaries require this to be set

* PR suggestions

- Include full URL when storage protocol invalid
- Always try parse storage persistence URLs
- Status 405 for Method Not Allowed for Sites KV Namespace
mrbbot added a commit that referenced this pull request Nov 1, 2023
…NTENT_MANIFEST` (#383)

* Use `glob-to-regexp` for glob parsing and matching

For Workers Sites, we'll need to match globs both outside and inside
workers. Splitting glob parsing into `RegExp`s and matching allows us
to serialise parsed `RegExp`s into worker bindings.

`glob-to-regexp` is also the package wrangler uses for globs.

* Support `file://` URLs in persistence options

File-system persistence can still be enabled using a regular non-URL
string root. Using a `file://` URL allows us to use query parameters
for controlling path sanitisation. Workers Sites requires unsanitised
storage as keys must exactly match paths (e.g. we want to lookup
`myfile.test.txt` not `myfile_test_txt`).

* Support `site{Include/Exclude}`, populate `__STATIC_CONTENT_MANIFEST`

This brings Miniflare 3's Workers Sites implementation up to parity
with Miniflare 2. Note as the Cache API is not yet supported,
`{ cacheControl: { bypassCache: true } }` must be passed as options
to `@cloudflare/kv-asset-handler`.

Closes #372

* Populate `compatibilityDate` for internal services

Recent open-source runtime binaries require this to be set

* PR suggestions

- Include full URL when storage protocol invalid
- Always try parse storage persistence URLs
- Status 405 for Method Not Allowed for Sites KV Namespace
mrbbot added a commit that referenced this pull request Nov 1, 2023
…NTENT_MANIFEST` (#383)

* Use `glob-to-regexp` for glob parsing and matching

For Workers Sites, we'll need to match globs both outside and inside
workers. Splitting glob parsing into `RegExp`s and matching allows us
to serialise parsed `RegExp`s into worker bindings.

`glob-to-regexp` is also the package wrangler uses for globs.

* Support `file://` URLs in persistence options

File-system persistence can still be enabled using a regular non-URL
string root. Using a `file://` URL allows us to use query parameters
for controlling path sanitisation. Workers Sites requires unsanitised
storage as keys must exactly match paths (e.g. we want to lookup
`myfile.test.txt` not `myfile_test_txt`).

* Support `site{Include/Exclude}`, populate `__STATIC_CONTENT_MANIFEST`

This brings Miniflare 3's Workers Sites implementation up to parity
with Miniflare 2. Note as the Cache API is not yet supported,
`{ cacheControl: { bypassCache: true } }` must be passed as options
to `@cloudflare/kv-asset-handler`.

Closes #372

* Populate `compatibilityDate` for internal services

Recent open-source runtime binaries require this to be set

* PR suggestions

- Include full URL when storage protocol invalid
- Always try parse storage persistence URLs
- Status 405 for Method Not Allowed for Sites KV Namespace
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

wrangler init should populate example code
4 participants