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(cache): improved customizability #2652

Merged
merged 6 commits into from
May 12, 2024
Merged

feat(cache): improved customizability #2652

merged 6 commits into from
May 12, 2024

Conversation

MathurAditya724
Copy link
Contributor

Closes #2650

  • cacheName can accept a function, which returns a string
  • Added keyGenerator function, to define custom cache keys

@MathurAditya724 MathurAditya724 marked this pull request as ready for review May 10, 2024 07:42
@yusukebe
Copy link
Member

Hey @MathurAditya724

Good! I like using ((c: Context) => Promise<string> | string). There are some things that you want to do:

  • Writing proper tests.
  • bun run denoify to generate files for Deno and push them.
  • bun run format:fix && bun run lint:fix to format the code.

Thanks!

@MathurAditya724
Copy link
Contributor Author

Hey @yusukebe, I have completed all the requested changes kindly have a look. Regarding the test, I have added tests that seem reasonable to me but do let me know if you have any queries

@MathurAditya724
Copy link
Contributor Author

I have added this PR for the website, reflecting the behavior of the new API

Copy link
Member

@yusukebe yusukebe left a comment

Choose a reason for hiding this comment

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

LGTM!

@@ -28,6 +28,10 @@ class MockCache {
return this.store.get(key) || null
}

async keys() {
Copy link
Member

Choose a reason for hiding this comment

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

Mocking keys() is good!

@yusukebe
Copy link
Member

Hi @MathurAditya724

Great! I'm glad you also created the PR for the website. I'll merge this to the main now and ship it with the next patch release since it's not such a big feature. Thank you for your contribution!

@yusukebe yusukebe merged commit e1989ff into honojs:main May 12, 2024
10 checks passed
nicolewhite referenced this pull request in autoblocksai/cli May 13, 2024
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [hono](https://hono.dev/) ([source](https://github.com/honojs/hono))
| [`4.3.0` ->
`4.3.6`](https://renovatebot.com/diffs/npm/hono/4.3.0/4.3.6) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/hono/4.3.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/hono/4.3.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/hono/4.3.0/4.3.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/hono/4.3.0/4.3.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>honojs/hono (hono)</summary>

### [`v4.3.6`](https://github.com/honojs/hono/releases/tag/v4.3.6)

[Compare
Source](https://github.com/honojs/hono/compare/v4.3.5...v4.3.6)

#### What's Changed

- feat(cache): improved customizability by
[@&#8203;MathurAditya724](https://github.com/MathurAditya724) in
[https://github.com/honojs/hono/pull/2652](https://github.com/honojs/hono/pull/2652)
- fix(utils/body): support multiple `File`s by
[@&#8203;yusukebe](https://github.com/yusukebe) in
[https://github.com/honojs/hono/pull/2665](https://github.com/honojs/hono/pull/2665)

#### New Contributors

- [@&#8203;MathurAditya724](https://github.com/MathurAditya724) made
their first contribution in
[https://github.com/honojs/hono/pull/2652](https://github.com/honojs/hono/pull/2652)

**Full Changelog**:
honojs/hono@v4.3.5...v4.3.6

### [`v4.3.5`](https://github.com/honojs/hono/releases/tag/v4.3.5)

[Compare
Source](https://github.com/honojs/hono/compare/v4.3.4...v4.3.5)

#### What's Changed

- refactor(context): remove some `any` by
[@&#8203;yusukebe](https://github.com/yusukebe) in
[https://github.com/honojs/hono/pull/2658](https://github.com/honojs/hono/pull/2658)
- feat(hono-base): tweaks `fetch` signature for better compatibility
with `deno serve` by [@&#8203;usualoma](https://github.com/usualoma)
in
[https://github.com/honojs/hono/pull/2661](https://github.com/honojs/hono/pull/2661)
- perf(types): add type annotations by
[@&#8203;yusukebe](https://github.com/yusukebe) in
[https://github.com/honojs/hono/pull/2663](https://github.com/honojs/hono/pull/2663)

**Full Changelog**:
honojs/hono@v4.3.4...v4.3.5

### [`v4.3.4`](https://github.com/honojs/hono/releases/tag/v4.3.4)

[Compare
Source](https://github.com/honojs/hono/compare/v4.3.3...v4.3.4)

#### What's Changed

- chore: update the pull request template by
[@&#8203;yusukebe](https://github.com/yusukebe) in
[https://github.com/honojs/hono/pull/2647](https://github.com/honojs/hono/pull/2647)
- feat(validator): check for json subtypes in validator by
[@&#8203;ztiromoritz](https://github.com/ztiromoritz) in
[https://github.com/honojs/hono/pull/2634](https://github.com/honojs/hono/pull/2634)
- feat(jsx/dom): support getServerSnapshot in useSyncExternalStore by
[@&#8203;usualoma](https://github.com/usualoma) in
[https://github.com/honojs/hono/pull/2646](https://github.com/honojs/hono/pull/2646)

#### New Contributors

- [@&#8203;ztiromoritz](https://github.com/ztiromoritz) made their
first contribution in
[https://github.com/honojs/hono/pull/2634](https://github.com/honojs/hono/pull/2634)

**Full Changelog**:
honojs/hono@v4.3.3...v4.3.4

### [`v4.3.3`](https://github.com/honojs/hono/releases/tag/v4.3.3)

[Compare
Source](https://github.com/honojs/hono/compare/v4.3.2...v4.3.3)

#### What's Changed

- fix(types): relax the type of `c.req.param()` by
[@&#8203;yusukebe](https://github.com/yusukebe) in
[https://github.com/honojs/hono/pull/2613](https://github.com/honojs/hono/pull/2613)
- chore(eslint): enable `@typescript-eslint/unbound-method` by
[@&#8203;yusukebe](https://github.com/yusukebe) in
[https://github.com/honojs/hono/pull/2622](https://github.com/honojs/hono/pull/2622)
- fix(factory): support `createFactory()` destruction by
[@&#8203;yusukebe](https://github.com/yusukebe) in
[https://github.com/honojs/hono/pull/2623](https://github.com/honojs/hono/pull/2623)
- fix(aws-lambda): avoid duplicating already set headers by
[@&#8203;Amorim33](https://github.com/Amorim33) in
[https://github.com/honojs/hono/pull/2585](https://github.com/honojs/hono/pull/2585)
- refactor: improve parseBody function and docs by
[@&#8203;mgrithm](https://github.com/mgrithm) in
[https://github.com/honojs/hono/pull/2628](https://github.com/honojs/hono/pull/2628)
- fix(validator): `form` supports multiple values with `foo[]` by
[@&#8203;yusukebe](https://github.com/yusukebe) in
[https://github.com/honojs/hono/pull/2639](https://github.com/honojs/hono/pull/2639)

#### New Contributors

- [@&#8203;Amorim33](https://github.com/Amorim33) made their first
contribution in
[https://github.com/honojs/hono/pull/2585](https://github.com/honojs/hono/pull/2585)

**Full Changelog**:
honojs/hono@v4.3.2...v4.3.3

### [`v4.3.2`](https://github.com/honojs/hono/releases/tag/v4.3.2)

[Compare
Source](https://github.com/honojs/hono/compare/v4.3.1...v4.3.2)

#### What's Changed

- fix(types): correct inferring when Method has Endponts as Union by
[@&#8203;yusukebe](https://github.com/yusukebe) in
[https://github.com/honojs/hono/pull/2610](https://github.com/honojs/hono/pull/2610)

**Full Changelog**:
honojs/hono@v4.3.1...v4.3.2

### [`v4.3.1`](https://github.com/honojs/hono/releases/tag/v4.3.1)

[Compare
Source](https://github.com/honojs/hono/compare/v4.3.0...v4.3.1)

#### What's Changed

- fix(types): `ToSchema` compatibility by
[@&#8203;NamesMT](https://github.com/NamesMT) in
[https://github.com/honojs/hono/pull/2605](https://github.com/honojs/hono/pull/2605)

**Full Changelog**:
honojs/hono@v4.3.0...v4.3.1

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "before 4am on Monday" in timezone
America/Chicago, Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/autoblocksai/cli).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zNDAuMTAiLCJ1cGRhdGVkSW5WZXIiOiIzNy4zNTEuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
@kosiumeigbo
Copy link

thank you @MathurAditya724 . I have a use case for this and this has come in handy!

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.

[Feature Request]: hono/cache cacheName should also take function
3 participants