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: Web Stream API #5286

Merged
merged 10 commits into from Jan 29, 2024
Merged

feat: Web Stream API #5286

merged 10 commits into from Jan 29, 2024

Conversation

climba03003
Copy link
Member

@climba03003 climba03003 commented Jan 25, 2024

Closes #5280 Closes #5279

Checklist

lib/reply.js Outdated Show resolved Hide resolved
Copy link
Member

@mcollina mcollina left a comment

Choose a reason for hiding this comment

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

Could you check if this impacts our benchmarks? I fear of those long optional checks in .send().

lib/reply.js Outdated Show resolved Hide resolved
lib/reply.js Outdated Show resolved Hide resolved
@climba03003
Copy link
Member Author

Pull Request

> fastify@4.25.2 benchmark
> concurrently -k -s first "node ./examples/benchmark/simple.js" "autocannon -c 100 -d 30 -p 10 localhost:3000/"

[1] Running 30s test @ http://localhost:3000/
[1] 100 connections with 10 pipelining factor
[1]
[1] 
[1] ┌─────────┬──────┬───────┬───────┬────────┬──────────┬──────────┬────────┐
[1] │ Stat    │ 2.5% │ 50%   │ 97.5% │ 99%    │ Avg      │ Stdev    │ Max    │
[1] ├─────────┼──────┼───────┼───────┼────────┼──────────┼──────────┼────────┤
[1] │ Latency │ 7 ms │ 18 ms │ 95 ms │ 140 ms │ 21.95 ms │ 20.46 ms │ 201 ms │
[1] └─────────┴──────┴───────┴───────┴────────┴──────────┴──────────┴────────┘
[1] ┌───────────┬─────────┬─────────┬────────┬────────┬──────────┬──────────┬─────────┐
[1] │ Stat      │ 1%      │ 2.5%    │ 50%    │ 97.5%  │ Avg      │ Stdev    │ Min     │
[1] ├───────────┼─────────┼─────────┼────────┼────────┼──────────┼──────────┼─────────┤
[1] │ Req/Sec   │ 38,143  │ 38,143  │ 44,735 │ 47,327 │ 44,534.4 │ 2,041.82 │ 38,112  │
[1] ├───────────┼─────────┼─────────┼────────┼────────┼──────────┼──────────┼─────────┤
[1] │ Bytes/Sec │ 7.17 MB │ 7.17 MB │ 8.4 MB │ 8.9 MB │ 8.37 MB  │ 384 kB   │ 7.17 MB │
[1] └───────────┴─────────┴─────────┴────────┴────────┴──────────┴──────────┴─────────┘
[1]
[1] Req/Bytes counts sampled once per second.
[1] # of samples: 30
[1]
[1] 1337k requests in 30.05s, 251 MB read
[1] autocannon -c 100 -d 30 -p 10 localhost:3000/ exited with code 0

Main Branch

> fastify@4.25.2 benchmark
> concurrently -k -s first "node ./examples/benchmark/simple.js" "autocannon -c 100 -d 30 -p 10 localhost:3000/"

[1] Running 30s test @ http://localhost:3000/
[1] 100 connections with 10 pipelining factor
[1]
[1] 
[1] ┌─────────┬──────┬───────┬───────┬────────┬──────────┬──────────┬────────┐
[1] │ Stat    │ 2.5% │ 50%   │ 97.5% │ 99%    │ Avg      │ Stdev    │ Max    │
[1] ├─────────┼──────┼───────┼───────┼────────┼──────────┼──────────┼────────┤
[1] │ Latency │ 8 ms │ 18 ms │ 95 ms │ 137 ms │ 21.96 ms │ 20.61 ms │ 213 ms │
[1] └─────────┴──────┴───────┴───────┴────────┴──────────┴──────────┴────────┘
[1] ┌───────────┬────────┬────────┬─────────┬─────────┬───────────┬─────────┬────────┐
[1] │ Stat      │ 1%     │ 2.5%   │ 50%     │ 97.5%   │ Avg       │ Stdev   │ Min    │
[1] ├───────────┼────────┼────────┼─────────┼─────────┼───────────┼─────────┼────────┤
[1] │ Req/Sec   │ 36,703 │ 36,703 │ 44,511  │ 46,975  │ 44,526.94 │ 1,874.7 │ 36,690 │
[1] ├───────────┼────────┼────────┼─────────┼─────────┼───────────┼─────────┼────────┤
[1] │ Bytes/Sec │ 6.9 MB │ 6.9 MB │ 8.37 MB │ 8.83 MB │ 8.37 MB   │ 352 kB  │ 6.9 MB │
[1] └───────────┴────────┴────────┴─────────┴─────────┴───────────┴─────────┴────────┘
[1] 
[1] Req/Bytes counts sampled once per second.
[1] # of samples: 30
[1] 
[1] 1337k requests in 30.04s, 251 MB read
[1] autocannon -c 100 -d 30 -p 10 localhost:3000/ exited with code 0

t.same(response.json(), { ok: true })
})

test('allow to pipe with undici.fetch', async (t) => {
Copy link
Member Author

Choose a reason for hiding this comment

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

@gurgunday
It is why I use Object.prototype.toString.call(payload) === '[object Response]'.

Comment on lines +174 to +176
typeof payload.getReader === 'function' ||
// Response
toString.call(payload) === '[object Response]'
Copy link
Contributor

Choose a reason for hiding this comment

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

Can we not create a symbol kResponse and set it as an attribute of the payload once, so we dont need to call toString multiple times?

Copy link
Member Author

Choose a reason for hiding this comment

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

I don't think we can skip it in .send but we can reduce one time in onSendEnd.
Note that due to the nature of Response, it is an immutable object. Which means every mutation (like status or headers) on it requires to re-create a new Response. Setting an attribute on it will be useless somehow.

Copy link
Member

@mcollina mcollina left a comment

Choose a reason for hiding this comment

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

lgtm

@Uzlopak Uzlopak added benchmark Label to run benchmark against PR and main branch and removed benchmark Label to run benchmark against PR and main branch labels Jan 25, 2024
lib/reply.js Outdated Show resolved Hide resolved
test/web-api.test.js Show resolved Hide resolved
@Uzlopak
Copy link
Contributor

Uzlopak commented Jan 27, 2024

It feels strange that this PR should not have any performance penalty. The toString call is usually slowing down.

If the Response object is immutable, what if we store the result of toString.call(payload) === '[object Response]' as an attribute kIsResponse on our Reply Instance?

@climba03003
Copy link
Member Author

climba03003 commented Jan 27, 2024

It feels strange that this PR should not have any performance penalty. The toString call is usually slowing down.

Do you have any reference on the toString call performance?
toString call is actually finding the Symbol.toStringTag in the object. It would be as fast as an property access if the implementation of class explicitly provide the symbol.

If the Response object is immutable, what if we store the result of toString.call(payload) === '[object Response]' as an attribute kIsResponse on our Reply Instance?

It is not an option because you would need to toString call anyway, this PR allows to change the payload to in any state which means it is not restricted to only .send API.
You need such identification of payload in .send or after onSend hook. The behavior is actually match the current implementation without an extra attribute.

Copy link
Contributor

@Uzlopak Uzlopak left a comment

Choose a reason for hiding this comment

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

LGTM

@mcollina mcollina merged commit 101ba57 into main Jan 29, 2024
1 check passed
@mcollina mcollina deleted the response branch January 29, 2024 09:06
renovate bot added a commit to tomacheese/telcheck that referenced this pull request Feb 1, 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 |
|---|---|---|---|---|---|
| [fastify](https://fastify.dev/)
([source](https://togithub.com/fastify/fastify)) | [`4.25.2` ->
`4.26.0`](https://renovatebot.com/diffs/npm/fastify/4.25.2/4.26.0) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/fastify/4.26.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/fastify/4.26.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/fastify/4.25.2/4.26.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/fastify/4.25.2/4.26.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>fastify/fastify (fastify)</summary>

###
[`v4.26.0`](https://togithub.com/fastify/fastify/releases/tag/v4.26.0)

[Compare
Source](https://togithub.com/fastify/fastify/compare/v4.25.2...v4.26.0)

#### What's Changed

- docs(ecosystem): add missing plugins to core list by
[@&#8203;Fdawgs](https://togithub.com/Fdawgs) in
[fastify/fastify#5234
- ci: CITGM github workflow by
[@&#8203;Uzlopak](https://togithub.com/Uzlopak) in
[fastify/fastify#5233
- chore: bump find-may-way to v8.0.0 by
[@&#8203;mcollina](https://togithub.com/mcollina) in
[fastify/fastify#5236
- fix: setValidatorCompiler with addSchema by
[@&#8203;derammo](https://togithub.com/derammo) in
[fastify/fastify#5188
- feat(routes): expose findRoute and param validator by
[@&#8203;sf3ris](https://togithub.com/sf3ris) in
[fastify/fastify#5230
- feat: add use semicolon delimter config, default = true by
[@&#8203;dancastillo](https://togithub.com/dancastillo) in
[fastify/fastify#5239
- chore: add autocannon and concurrently as dev dependencies by
[@&#8203;Uzlopak](https://togithub.com/Uzlopak) in
[fastify/fastify#5240
- fix: return the correct serializer function when no content-type is
defined by [@&#8203;DouglasdeMoura](https://togithub.com/DouglasdeMoura)
in
[fastify/fastify#5229
- Sync next by [@&#8203;Uzlopak](https://togithub.com/Uzlopak) in
[fastify/fastify#5238
- docs: add open-collective by [@&#8203;Eomm](https://togithub.com/Eomm)
in
[fastify/fastify#5216
- chore: Bump actions/upload-artifact from 3 to 4 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[fastify/fastify#5249
- chore: Bump actions/labeler from 4 to 5 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[fastify/fastify#5248
- docs(ecosystem): update fastify-rabbitmq // add fastify-hl7 to
ecosystem.md by [@&#8203;Bugs5382](https://togithub.com/Bugs5382) in
[fastify/fastify#5245
- chore: update actions/labeler@5 by
[@&#8203;climba03003](https://togithub.com/climba03003) in
[fastify/fastify#5254
- fix: restrict findRoute exposed property by
[@&#8203;climba03003](https://togithub.com/climba03003) in
[fastify/fastify#5253
- fix(test): flaky on-listen hook test by
[@&#8203;Uzlopak](https://togithub.com/Uzlopak) in
[fastify/fastify#5256
- fix: remove unused promise warning in setNotFoundHandler with
preHandler by [@&#8203;mcollina](https://togithub.com/mcollina) in
[fastify/fastify#5258
- fix: Always call resource.emitDestroy() by
[@&#8203;mcollina](https://togithub.com/mcollina) in
[fastify/fastify#5228
- docs: Add missing punctuation in Ecosystem by
[@&#8203;matthyk](https://togithub.com/matthyk) in
[fastify/fastify#5261
- docs: remove word repetition on Decorators docs by
[@&#8203;rlawisch](https://togithub.com/rlawisch) in
[fastify/fastify#5260
- chore(types): Remove unused type imports by
[@&#8203;codershiba](https://togithub.com/codershiba) in
[fastify/fastify#5264
- chore(license): Update licensing year by
[@&#8203;codershiba](https://togithub.com/codershiba) in
[fastify/fastify#5266
- chore(docs): Add clarification about `fastify.setErrorHandler()` by
[@&#8203;codershiba](https://togithub.com/codershiba) in
[fastify/fastify#5265
- refactor: deprecate `Reply#getResponseTime()` in favour of
`Reply#elapsedTime` by
[@&#8203;codershiba](https://togithub.com/codershiba) in
[fastify/fastify#5263
- chore: remove `www.` from `fastify.dev` urls by
[@&#8203;Fdawgs](https://togithub.com/Fdawgs) in
[fastify/fastify#5270
- feat: expose method for setGenReqId on FastifyInstance by
[@&#8203;dancastillo](https://togithub.com/dancastillo) in
[fastify/fastify#5259
- fix: ensure `onListen` hooks are called when they should be by
[@&#8203;bienzaaron](https://togithub.com/bienzaaron) in
[fastify/fastify#5273
- docs: re-word clarification about `setErrorHandler()` by
[@&#8203;codershiba](https://togithub.com/codershiba) in
[fastify/fastify#5269
- docs(ecosystem): remove unsupported package by
[@&#8203;Fdawgs](https://togithub.com/Fdawgs) in
[fastify/fastify#5278
- docs: Fix Pino docs link by
[@&#8203;BoscoDomingo](https://togithub.com/BoscoDomingo) in
[fastify/fastify#5284
- chore: add github sponsor by [@&#8203;Eomm](https://togithub.com/Eomm)
in
[fastify/fastify#5293
- docs(ecosystem): adds fastify-sqlite-typed to the community plugins
list by [@&#8203;yoav0gal](https://togithub.com/yoav0gal) in
[fastify/fastify#5288
- docs: add ESM usage example in Getting Started by
[@&#8203;atilagulers](https://togithub.com/atilagulers) in
[fastify/fastify#5294
- docs: repoint readers to shared `.github` files by
[@&#8203;Fdawgs](https://togithub.com/Fdawgs) in
[fastify/fastify#5268
- feat: Web Stream API by
[@&#8203;climba03003](https://togithub.com/climba03003) in
[fastify/fastify#5286
- chore: sync generated code by
[@&#8203;Eomm](https://togithub.com/Eomm) in
[fastify/fastify#5295

#### New Contributors

- [@&#8203;derammo](https://togithub.com/derammo) made their first
contribution in
[fastify/fastify#5188
- [@&#8203;DouglasdeMoura](https://togithub.com/DouglasdeMoura) made
their first contribution in
[fastify/fastify#5229
- [@&#8203;rlawisch](https://togithub.com/rlawisch) made their first
contribution in
[fastify/fastify#5260
- [@&#8203;codershiba](https://togithub.com/codershiba) made their first
contribution in
[fastify/fastify#5264
- [@&#8203;BoscoDomingo](https://togithub.com/BoscoDomingo) made their
first contribution in
[fastify/fastify#5284
- [@&#8203;yoav0gal](https://togithub.com/yoav0gal) made their first
contribution in
[fastify/fastify#5288
- [@&#8203;atilagulers](https://togithub.com/atilagulers) made their
first contribution in
[fastify/fastify#5294

**Full Changelog**:
fastify/fastify@v4.25.2...v4.26.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **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/tomacheese/telcheck).

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

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
renovate bot added a commit to redwoodjs/redwood that referenced this pull request Mar 7, 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 |
|---|---|---|---|---|---|
| [fastify](https://fastify.dev/)
([source](https://togithub.com/fastify/fastify)) | [`4.25.2` ->
`4.26.2`](https://renovatebot.com/diffs/npm/fastify/4.25.2/4.26.2) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/fastify/4.26.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/fastify/4.26.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/fastify/4.25.2/4.26.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/fastify/4.25.2/4.26.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>fastify/fastify (fastify)</summary>

###
[`v4.26.2`](https://togithub.com/fastify/fastify/releases/tag/v4.26.2)

[Compare
Source](https://togithub.com/fastify/fastify/compare/v4.26.1...v4.26.2)

#### What's Changed

- fix: typo in module exports by
[@&#8203;lirantal](https://togithub.com/lirantal) in
[fastify/fastify#5316
- docs(ts): Fix links by
[@&#8203;rozzilla](https://togithub.com/rozzilla) in
[fastify/fastify#5308
- fix: cb is not a function at fallbackErrorHandler by
[@&#8203;Uzlopak](https://togithub.com/Uzlopak) in
[fastify/fastify#5317
- feat: add a Firebase Functions step by step guide by
[@&#8203;lirantal](https://togithub.com/lirantal) in
[fastify/fastify#5318
- types: fix test failure by
[@&#8203;gurgunday](https://togithub.com/gurgunday) in
[fastify/fastify#5330
- perf: use FifoMap to check contentType by
[@&#8203;gurgunday](https://togithub.com/gurgunday) in
[fastify/fastify#5331
- docs(ecosystem): adds fastify-override to plugins list by
[@&#8203;matthyk](https://togithub.com/matthyk) in
[fastify/fastify#5336
- types: Export preClose hook types by
[@&#8203;matthyk](https://togithub.com/matthyk) in
[fastify/fastify#5335
- fix: database migration doc missing db connection code by
[@&#8203;nuhman](https://togithub.com/nuhman) in
[fastify/fastify#5339
- chore: Bump pnpm/action-setup from 2 to 3 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[fastify/fastify#5341
- chore: Bump xt0rted/markdownlint-problem-matcher from 2.0.0 to 3.0.0
by [@&#8203;dependabot](https://togithub.com/dependabot) in
[fastify/fastify#5342

#### New Contributors

- [@&#8203;nuhman](https://togithub.com/nuhman) made their first
contribution in
[fastify/fastify#5339

**Full Changelog**:
fastify/fastify@v4.26.1...v4.26.2

###
[`v4.26.1`](https://togithub.com/fastify/fastify/releases/tag/v4.26.1)

[Compare
Source](https://togithub.com/fastify/fastify/compare/v4.26.0...v4.26.1)

#### What's Changed

- docs(ecosystem): adds fastify-hana to the community plugins list by
[@&#8203;yoav0gal](https://togithub.com/yoav0gal) in
[fastify/fastify#5289
- docs: fix misattributed property parent in deprecation warning:
request.elapsedTime by
[@&#8203;mscottnelson](https://togithub.com/mscottnelson) in
[fastify/fastify#5299
- chore: Bump lycheeverse/lychee-action from 1.8.0 to 1.9.3 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[fastify/fastify#5300
- chore: Bump actions/dependency-review-action from 3 to 4 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[fastify/fastify#5301
- chore(.gitignore): add .tap/ dir by
[@&#8203;Fdawgs](https://togithub.com/Fdawgs) in
[fastify/fastify#5303
- fix: amend error codes for latest avvio v8.3.0 by
[@&#8203;mcollina](https://togithub.com/mcollina) in
[fastify/fastify#5309
- fix(types): Request route options url add undefined by
[@&#8203;rozzilla](https://togithub.com/rozzilla) in
[fastify/fastify#5307
- chore: add docs for tracing warnings by
[@&#8203;jsumners](https://togithub.com/jsumners) in
[fastify/fastify#5310

#### New Contributors

- [@&#8203;mscottnelson](https://togithub.com/mscottnelson) made their
first contribution in
[fastify/fastify#5299

**Full Changelog**:
fastify/fastify@v4.26.0...v4.26.1

###
[`v4.26.0`](https://togithub.com/fastify/fastify/releases/tag/v4.26.0)

[Compare
Source](https://togithub.com/fastify/fastify/compare/v4.25.2...v4.26.0)

#### What's Changed

- docs(ecosystem): add missing plugins to core list by
[@&#8203;Fdawgs](https://togithub.com/Fdawgs) in
[fastify/fastify#5234
- ci: CITGM github workflow by
[@&#8203;Uzlopak](https://togithub.com/Uzlopak) in
[fastify/fastify#5233
- chore: bump find-may-way to v8.0.0 by
[@&#8203;mcollina](https://togithub.com/mcollina) in
[fastify/fastify#5236
- fix: setValidatorCompiler with addSchema by
[@&#8203;derammo](https://togithub.com/derammo) in
[fastify/fastify#5188
- feat(routes): expose findRoute and param validator by
[@&#8203;sf3ris](https://togithub.com/sf3ris) in
[fastify/fastify#5230
- feat: add use semicolon delimter config, default = true by
[@&#8203;dancastillo](https://togithub.com/dancastillo) in
[fastify/fastify#5239
- chore: add autocannon and concurrently as dev dependencies by
[@&#8203;Uzlopak](https://togithub.com/Uzlopak) in
[fastify/fastify#5240
- fix: return the correct serializer function when no content-type is
defined by [@&#8203;DouglasdeMoura](https://togithub.com/DouglasdeMoura)
in
[fastify/fastify#5229
- Sync next by [@&#8203;Uzlopak](https://togithub.com/Uzlopak) in
[fastify/fastify#5238
- docs: add open-collective by [@&#8203;Eomm](https://togithub.com/Eomm)
in
[fastify/fastify#5216
- chore: Bump actions/upload-artifact from 3 to 4 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[fastify/fastify#5249
- chore: Bump actions/labeler from 4 to 5 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[fastify/fastify#5248
- docs(ecosystem): update fastify-rabbitmq // add fastify-hl7 to
ecosystem.md by [@&#8203;Bugs5382](https://togithub.com/Bugs5382) in
[fastify/fastify#5245
- chore: update actions/labeler@5 by
[@&#8203;climba03003](https://togithub.com/climba03003) in
[fastify/fastify#5254
- fix: restrict findRoute exposed property by
[@&#8203;climba03003](https://togithub.com/climba03003) in
[fastify/fastify#5253
- fix(test): flaky on-listen hook test by
[@&#8203;Uzlopak](https://togithub.com/Uzlopak) in
[fastify/fastify#5256
- fix: remove unused promise warning in setNotFoundHandler with
preHandler by [@&#8203;mcollina](https://togithub.com/mcollina) in
[fastify/fastify#5258
- fix: Always call resource.emitDestroy() by
[@&#8203;mcollina](https://togithub.com/mcollina) in
[fastify/fastify#5228
- docs: Add missing punctuation in Ecosystem by
[@&#8203;matthyk](https://togithub.com/matthyk) in
[fastify/fastify#5261
- docs: remove word repetition on Decorators docs by
[@&#8203;rlawisch](https://togithub.com/rlawisch) in
[fastify/fastify#5260
- chore(types): Remove unused type imports by
[@&#8203;codershiba](https://togithub.com/codershiba) in
[fastify/fastify#5264
- chore(license): Update licensing year by
[@&#8203;codershiba](https://togithub.com/codershiba) in
[fastify/fastify#5266
- chore(docs): Add clarification about `fastify.setErrorHandler()` by
[@&#8203;codershiba](https://togithub.com/codershiba) in
[fastify/fastify#5265
- refactor: deprecate `Reply#getResponseTime()` in favour of
`Reply#elapsedTime` by
[@&#8203;codershiba](https://togithub.com/codershiba) in
[fastify/fastify#5263
- chore: remove `www.` from `fastify.dev` urls by
[@&#8203;Fdawgs](https://togithub.com/Fdawgs) in
[fastify/fastify#5270
- feat: expose method for setGenReqId on FastifyInstance by
[@&#8203;dancastillo](https://togithub.com/dancastillo) in
[fastify/fastify#5259
- fix: ensure `onListen` hooks are called when they should be by
[@&#8203;bienzaaron](https://togithub.com/bienzaaron) in
[fastify/fastify#5273
- docs: re-word clarification about `setErrorHandler()` by
[@&#8203;codershiba](https://togithub.com/codershiba) in
[fastify/fastify#5269
- docs(ecosystem): remove unsupported package by
[@&#8203;Fdawgs](https://togithub.com/Fdawgs) in
[fastify/fastify#5278
- docs: Fix Pino docs link by
[@&#8203;BoscoDomingo](https://togithub.com/BoscoDomingo) in
[fastify/fastify#5284
- chore: add github sponsor by [@&#8203;Eomm](https://togithub.com/Eomm)
in
[fastify/fastify#5293
- docs(ecosystem): adds fastify-sqlite-typed to the community plugins
list by [@&#8203;yoav0gal](https://togithub.com/yoav0gal) in
[fastify/fastify#5288
- docs: add ESM usage example in Getting Started by
[@&#8203;atilagulers](https://togithub.com/atilagulers) in
[fastify/fastify#5294
- docs: repoint readers to shared `.github` files by
[@&#8203;Fdawgs](https://togithub.com/Fdawgs) in
[fastify/fastify#5268
- feat: Web Stream API by
[@&#8203;climba03003](https://togithub.com/climba03003) in
[fastify/fastify#5286
- chore: sync generated code by
[@&#8203;Eomm](https://togithub.com/Eomm) in
[fastify/fastify#5295

#### New Contributors

- [@&#8203;derammo](https://togithub.com/derammo) made their first
contribution in
[fastify/fastify#5188
- [@&#8203;DouglasdeMoura](https://togithub.com/DouglasdeMoura) made
their first contribution in
[fastify/fastify#5229
- [@&#8203;rlawisch](https://togithub.com/rlawisch) made their first
contribution in
[fastify/fastify#5260
- [@&#8203;codershiba](https://togithub.com/codershiba) made their first
contribution in
[fastify/fastify#5264
- [@&#8203;BoscoDomingo](https://togithub.com/BoscoDomingo) made their
first contribution in
[fastify/fastify#5284
- [@&#8203;yoav0gal](https://togithub.com/yoav0gal) made their first
contribution in
[fastify/fastify#5288
- [@&#8203;atilagulers](https://togithub.com/atilagulers) made their
first contribution in
[fastify/fastify#5294

**Full Changelog**:
fastify/fastify@v4.25.2...v4.26.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

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

🔕 **Ignore**: Close this PR and you won't be reminded about these
updates 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/redwoodjs/redwood).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yMjAuMiIsInVwZGF0ZWRJblZlciI6IjM3LjIyNy4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
jtoar pushed a commit to redwoodjs/redwood that referenced this pull request Mar 7, 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 |
|---|---|---|---|---|---|
| [fastify](https://fastify.dev/)
([source](https://togithub.com/fastify/fastify)) | [`4.25.2` ->
`4.26.2`](https://renovatebot.com/diffs/npm/fastify/4.25.2/4.26.2) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/fastify/4.26.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/fastify/4.26.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/fastify/4.25.2/4.26.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/fastify/4.25.2/4.26.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

<details>
<summary>fastify/fastify (fastify)</summary>

[`v4.26.2`](https://togithub.com/fastify/fastify/releases/tag/v4.26.2)

[Compare
Source](https://togithub.com/fastify/fastify/compare/v4.26.1...v4.26.2)

- fix: typo in module exports by
[@&#8203;lirantal](https://togithub.com/lirantal) in
[fastify/fastify#5316
- docs(ts): Fix links by
[@&#8203;rozzilla](https://togithub.com/rozzilla) in
[fastify/fastify#5308
- fix: cb is not a function at fallbackErrorHandler by
[@&#8203;Uzlopak](https://togithub.com/Uzlopak) in
[fastify/fastify#5317
- feat: add a Firebase Functions step by step guide by
[@&#8203;lirantal](https://togithub.com/lirantal) in
[fastify/fastify#5318
- types: fix test failure by
[@&#8203;gurgunday](https://togithub.com/gurgunday) in
[fastify/fastify#5330
- perf: use FifoMap to check contentType by
[@&#8203;gurgunday](https://togithub.com/gurgunday) in
[fastify/fastify#5331
- docs(ecosystem): adds fastify-override to plugins list by
[@&#8203;matthyk](https://togithub.com/matthyk) in
[fastify/fastify#5336
- types: Export preClose hook types by
[@&#8203;matthyk](https://togithub.com/matthyk) in
[fastify/fastify#5335
- fix: database migration doc missing db connection code by
[@&#8203;nuhman](https://togithub.com/nuhman) in
[fastify/fastify#5339
- chore: Bump pnpm/action-setup from 2 to 3 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[fastify/fastify#5341
- chore: Bump xt0rted/markdownlint-problem-matcher from 2.0.0 to 3.0.0
by [@&#8203;dependabot](https://togithub.com/dependabot) in
[fastify/fastify#5342

- [@&#8203;nuhman](https://togithub.com/nuhman) made their first
contribution in
[fastify/fastify#5339

**Full Changelog**:
fastify/fastify@v4.26.1...v4.26.2

[`v4.26.1`](https://togithub.com/fastify/fastify/releases/tag/v4.26.1)

[Compare
Source](https://togithub.com/fastify/fastify/compare/v4.26.0...v4.26.1)

- docs(ecosystem): adds fastify-hana to the community plugins list by
[@&#8203;yoav0gal](https://togithub.com/yoav0gal) in
[fastify/fastify#5289
- docs: fix misattributed property parent in deprecation warning:
request.elapsedTime by
[@&#8203;mscottnelson](https://togithub.com/mscottnelson) in
[fastify/fastify#5299
- chore: Bump lycheeverse/lychee-action from 1.8.0 to 1.9.3 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[fastify/fastify#5300
- chore: Bump actions/dependency-review-action from 3 to 4 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[fastify/fastify#5301
- chore(.gitignore): add .tap/ dir by
[@&#8203;Fdawgs](https://togithub.com/Fdawgs) in
[fastify/fastify#5303
- fix: amend error codes for latest avvio v8.3.0 by
[@&#8203;mcollina](https://togithub.com/mcollina) in
[fastify/fastify#5309
- fix(types): Request route options url add undefined by
[@&#8203;rozzilla](https://togithub.com/rozzilla) in
[fastify/fastify#5307
- chore: add docs for tracing warnings by
[@&#8203;jsumners](https://togithub.com/jsumners) in
[fastify/fastify#5310

- [@&#8203;mscottnelson](https://togithub.com/mscottnelson) made their
first contribution in
[fastify/fastify#5299

**Full Changelog**:
fastify/fastify@v4.26.0...v4.26.1

[`v4.26.0`](https://togithub.com/fastify/fastify/releases/tag/v4.26.0)

[Compare
Source](https://togithub.com/fastify/fastify/compare/v4.25.2...v4.26.0)

- docs(ecosystem): add missing plugins to core list by
[@&#8203;Fdawgs](https://togithub.com/Fdawgs) in
[fastify/fastify#5234
- ci: CITGM github workflow by
[@&#8203;Uzlopak](https://togithub.com/Uzlopak) in
[fastify/fastify#5233
- chore: bump find-may-way to v8.0.0 by
[@&#8203;mcollina](https://togithub.com/mcollina) in
[fastify/fastify#5236
- fix: setValidatorCompiler with addSchema by
[@&#8203;derammo](https://togithub.com/derammo) in
[fastify/fastify#5188
- feat(routes): expose findRoute and param validator by
[@&#8203;sf3ris](https://togithub.com/sf3ris) in
[fastify/fastify#5230
- feat: add use semicolon delimter config, default = true by
[@&#8203;dancastillo](https://togithub.com/dancastillo) in
[fastify/fastify#5239
- chore: add autocannon and concurrently as dev dependencies by
[@&#8203;Uzlopak](https://togithub.com/Uzlopak) in
[fastify/fastify#5240
- fix: return the correct serializer function when no content-type is
defined by [@&#8203;DouglasdeMoura](https://togithub.com/DouglasdeMoura)
in
[fastify/fastify#5229
- Sync next by [@&#8203;Uzlopak](https://togithub.com/Uzlopak) in
[fastify/fastify#5238
- docs: add open-collective by [@&#8203;Eomm](https://togithub.com/Eomm)
in
[fastify/fastify#5216
- chore: Bump actions/upload-artifact from 3 to 4 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[fastify/fastify#5249
- chore: Bump actions/labeler from 4 to 5 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[fastify/fastify#5248
- docs(ecosystem): update fastify-rabbitmq // add fastify-hl7 to
ecosystem.md by [@&#8203;Bugs5382](https://togithub.com/Bugs5382) in
[fastify/fastify#5245
- chore: update actions/labeler@5 by
[@&#8203;climba03003](https://togithub.com/climba03003) in
[fastify/fastify#5254
- fix: restrict findRoute exposed property by
[@&#8203;climba03003](https://togithub.com/climba03003) in
[fastify/fastify#5253
- fix(test): flaky on-listen hook test by
[@&#8203;Uzlopak](https://togithub.com/Uzlopak) in
[fastify/fastify#5256
- fix: remove unused promise warning in setNotFoundHandler with
preHandler by [@&#8203;mcollina](https://togithub.com/mcollina) in
[fastify/fastify#5258
- fix: Always call resource.emitDestroy() by
[@&#8203;mcollina](https://togithub.com/mcollina) in
[fastify/fastify#5228
- docs: Add missing punctuation in Ecosystem by
[@&#8203;matthyk](https://togithub.com/matthyk) in
[fastify/fastify#5261
- docs: remove word repetition on Decorators docs by
[@&#8203;rlawisch](https://togithub.com/rlawisch) in
[fastify/fastify#5260
- chore(types): Remove unused type imports by
[@&#8203;codershiba](https://togithub.com/codershiba) in
[fastify/fastify#5264
- chore(license): Update licensing year by
[@&#8203;codershiba](https://togithub.com/codershiba) in
[fastify/fastify#5266
- chore(docs): Add clarification about `fastify.setErrorHandler()` by
[@&#8203;codershiba](https://togithub.com/codershiba) in
[fastify/fastify#5265
- refactor: deprecate `Reply#getResponseTime()` in favour of
`Reply#elapsedTime` by
[@&#8203;codershiba](https://togithub.com/codershiba) in
[fastify/fastify#5263
- chore: remove `www.` from `fastify.dev` urls by
[@&#8203;Fdawgs](https://togithub.com/Fdawgs) in
[fastify/fastify#5270
- feat: expose method for setGenReqId on FastifyInstance by
[@&#8203;dancastillo](https://togithub.com/dancastillo) in
[fastify/fastify#5259
- fix: ensure `onListen` hooks are called when they should be by
[@&#8203;bienzaaron](https://togithub.com/bienzaaron) in
[fastify/fastify#5273
- docs: re-word clarification about `setErrorHandler()` by
[@&#8203;codershiba](https://togithub.com/codershiba) in
[fastify/fastify#5269
- docs(ecosystem): remove unsupported package by
[@&#8203;Fdawgs](https://togithub.com/Fdawgs) in
[fastify/fastify#5278
- docs: Fix Pino docs link by
[@&#8203;BoscoDomingo](https://togithub.com/BoscoDomingo) in
[fastify/fastify#5284
- chore: add github sponsor by [@&#8203;Eomm](https://togithub.com/Eomm)
in
[fastify/fastify#5293
- docs(ecosystem): adds fastify-sqlite-typed to the community plugins
list by [@&#8203;yoav0gal](https://togithub.com/yoav0gal) in
[fastify/fastify#5288
- docs: add ESM usage example in Getting Started by
[@&#8203;atilagulers](https://togithub.com/atilagulers) in
[fastify/fastify#5294
- docs: repoint readers to shared `.github` files by
[@&#8203;Fdawgs](https://togithub.com/Fdawgs) in
[fastify/fastify#5268
- feat: Web Stream API by
[@&#8203;climba03003](https://togithub.com/climba03003) in
[fastify/fastify#5286
- chore: sync generated code by
[@&#8203;Eomm](https://togithub.com/Eomm) in
[fastify/fastify#5295

- [@&#8203;derammo](https://togithub.com/derammo) made their first
contribution in
[fastify/fastify#5188
- [@&#8203;DouglasdeMoura](https://togithub.com/DouglasdeMoura) made
their first contribution in
[fastify/fastify#5229
- [@&#8203;rlawisch](https://togithub.com/rlawisch) made their first
contribution in
[fastify/fastify#5260
- [@&#8203;codershiba](https://togithub.com/codershiba) made their first
contribution in
[fastify/fastify#5264
- [@&#8203;BoscoDomingo](https://togithub.com/BoscoDomingo) made their
first contribution in
[fastify/fastify#5284
- [@&#8203;yoav0gal](https://togithub.com/yoav0gal) made their first
contribution in
[fastify/fastify#5288
- [@&#8203;atilagulers](https://togithub.com/atilagulers) made their
first contribution in
[fastify/fastify#5294

**Full Changelog**:
fastify/fastify@v4.25.2...v4.26.0

</details>

---

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

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

🔕 **Ignore**: Close this PR and you won't be reminded about these
updates 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/redwoodjs/redwood).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yMjAuMiIsInVwZGF0ZWRJblZlciI6IjM3LjIyNy4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
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.

Return Response.body from a fetch call as a stream
6 participants