-
Notifications
You must be signed in to change notification settings - Fork 100
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
perf: use node:
prefix to bypass require.cache call for builtins
#407
Conversation
Seem to be getting test failures locally even on |
It might be because of a test that modifies/mocks a built-in module |
Modifying t.test(
'register with rootpath that causes statSync to fail with non-ENOENT code',
(t) => {
const fastifyStatic = proxyquire('../', {
'node:fs': { // HERE: fs -> 'node:fs'
statSync: function statSyncStub (path) {
throw new Error({ code: 'MOCK' })
}
}
})
const pluginOptions = {
root: path.join(__dirname, '/static'),
wildcard: true
}
const fastify = Fastify()
fastify.register(fastifyStatic, pluginOptions)
t.teardown(fastify.close.bind(fastify))
fastify.listen({ port: 0 }, (err) => {
fastify.server.unref()
t.ok(err)
t.end()
})
}
) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I was today years old...
Core modules can be identified using the node: prefix, in which case it bypasses the require cache. For instance, require('node:http') will always return the built in HTTP module, even if there is require.cache entry by that name.
Didn't know it
LGTM on green pipeline 👍🏼
Happy to mass update rest of the repos with a similar PR at some point this weekend, unless @gurgunday beats me to it 😂 |
What about prefixing npm packages with npm:? Wouldnt we then be deno compatible? |
🤣, I just wanted to get the ones I actively use out of the way in case there is a release or something I would of course prefer if you created a script for it 😁 |
Can't find anything in node's documentation about supporting this? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
) * perf: use `node:` prefix to bypass require.cache call for builtins See fastify/fastify-static#407 * docs: use `node:` prefix to bypass require.cache call for builtins
* perf: use `node:` prefix to bypass require.cache call for builtins See fastify/fastify-static#407 * docs: use `node:` prefix to bypass require.cache call for builtins
) * perf: use `node:` prefix to bypass require.cache call for builtins See fastify/fastify-static#407 * docs: use `node:` prefix to bypass require.cache call for builtins
) * perf: use `node:` prefix to bypass require.cache call for builtins See fastify/fastify-static#407 * docs: use `node:` prefix to bypass require.cache call for builtins
) * perf: use `node:` prefix to bypass require.cache call for builtins See fastify/fastify-static#407 * docs: use `node:` prefix to bypass require.cache call for builtins
* perf: use `node:` prefix to bypass require.cache call for builtins See fastify/fastify-static#407 * try to fix tests --------- Co-authored-by: Uzlopak <aras.abbasi@googlemail.com>
) * perf: use `node:` prefix to bypass require.cache call for builtins See fastify/fastify-static#407 * try to fix --------- Co-authored-by: Uzlopak <aras.abbasi@googlemail.com>
) * perf: use `node:` prefix to bypass require.cache call for builtins See fastify/fastify-static#407 * docs: use `node:` prefix to bypass require.cache call for builtins
* perf: use `node:` prefix to bypass require.cache call for builtins See fastify/fastify-static#407 * chore: fix linting errors
* perf: use `node:` prefix to bypass require.cache call for builtins See fastify/fastify-static#407 * chore: fix linting * test: fix tests
@mcollina happy to update Pino repos accordingly also, wdyt? |
[![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/static](https://togithub.com/fastify/fastify-static) | [`6.11.0` -> `6.11.1`](https://renovatebot.com/diffs/npm/@fastify%2fstatic/6.11.0/6.11.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@fastify%2fstatic/6.11.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@fastify%2fstatic/6.11.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@fastify%2fstatic/6.11.0/6.11.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@fastify%2fstatic/6.11.0/6.11.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>fastify/fastify-static (@​fastify/static)</summary> ### [`v6.11.1`](https://togithub.com/fastify/fastify-static/releases/tag/v6.11.1) [Compare Source](https://togithub.com/fastify/fastify-static/compare/v6.11.0...v6.11.1) ##### What's Changed - Remove test/content-type/sample.jpg.br by [@​mcollina](https://togithub.com/mcollina) in [https://github.com/fastify/fastify-static/pull/400](https://togithub.com/fastify/fastify-static/pull/400) - build(deps-dev): bump tsd from 0.28.1 to 0.29.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/fastify/fastify-static/pull/401](https://togithub.com/fastify/fastify-static/pull/401) - added some small code improvements by [@​turnerran](https://togithub.com/turnerran) in [https://github.com/fastify/fastify-static/pull/399](https://togithub.com/fastify/fastify-static/pull/399) - (more) small performance/clarity improvements by [@​gurgunday](https://togithub.com/gurgunday) in [https://github.com/fastify/fastify-static/pull/405](https://togithub.com/fastify/fastify-static/pull/405) - perf: use `node:` prefix to bypass require.cache call for builtins by [@​Fdawgs](https://togithub.com/Fdawgs) in [https://github.com/fastify/fastify-static/pull/407](https://togithub.com/fastify/fastify-static/pull/407) - use native stream by [@​gurgunday](https://togithub.com/gurgunday) in [https://github.com/fastify/fastify-static/pull/408](https://togithub.com/fastify/fastify-static/pull/408) - Fix request route config deprecation warnings by [@​TTPO100AJIEX](https://togithub.com/TTPO100AJIEX) in [https://github.com/fastify/fastify-static/pull/409](https://togithub.com/fastify/fastify-static/pull/409) ##### New Contributors - [@​turnerran](https://togithub.com/turnerran) made their first contribution in [https://github.com/fastify/fastify-static/pull/399](https://togithub.com/fastify/fastify-static/pull/399) - [@​TTPO100AJIEX](https://togithub.com/TTPO100AJIEX) made their first contribution in [https://github.com/fastify/fastify-static/pull/409](https://togithub.com/fastify/fastify-static/pull/409) **Full Changelog**: fastify/fastify-static@v6.11.0...v6.11.1 </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/redwoodjs/redwood). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi44My4wIiwidXBkYXRlZEluVmVyIjoiMzYuODMuMCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
[![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/static](https://togithub.com/fastify/fastify-static) | [`6.11.0` -> `6.11.1`](https://renovatebot.com/diffs/npm/@fastify%2fstatic/6.11.0/6.11.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@fastify%2fstatic/6.11.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@fastify%2fstatic/6.11.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@fastify%2fstatic/6.11.0/6.11.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@fastify%2fstatic/6.11.0/6.11.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>fastify/fastify-static (@​fastify/static)</summary> ### [`v6.11.1`](https://togithub.com/fastify/fastify-static/releases/tag/v6.11.1) [Compare Source](https://togithub.com/fastify/fastify-static/compare/v6.11.0...v6.11.1) ##### What's Changed - Remove test/content-type/sample.jpg.br by [@​mcollina](https://togithub.com/mcollina) in [https://github.com/fastify/fastify-static/pull/400](https://togithub.com/fastify/fastify-static/pull/400) - build(deps-dev): bump tsd from 0.28.1 to 0.29.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/fastify/fastify-static/pull/401](https://togithub.com/fastify/fastify-static/pull/401) - added some small code improvements by [@​turnerran](https://togithub.com/turnerran) in [https://github.com/fastify/fastify-static/pull/399](https://togithub.com/fastify/fastify-static/pull/399) - (more) small performance/clarity improvements by [@​gurgunday](https://togithub.com/gurgunday) in [https://github.com/fastify/fastify-static/pull/405](https://togithub.com/fastify/fastify-static/pull/405) - perf: use `node:` prefix to bypass require.cache call for builtins by [@​Fdawgs](https://togithub.com/Fdawgs) in [https://github.com/fastify/fastify-static/pull/407](https://togithub.com/fastify/fastify-static/pull/407) - use native stream by [@​gurgunday](https://togithub.com/gurgunday) in [https://github.com/fastify/fastify-static/pull/408](https://togithub.com/fastify/fastify-static/pull/408) - Fix request route config deprecation warnings by [@​TTPO100AJIEX](https://togithub.com/TTPO100AJIEX) in [https://github.com/fastify/fastify-static/pull/409](https://togithub.com/fastify/fastify-static/pull/409) ##### New Contributors - [@​turnerran](https://togithub.com/turnerran) made their first contribution in [https://github.com/fastify/fastify-static/pull/399](https://togithub.com/fastify/fastify-static/pull/399) - [@​TTPO100AJIEX](https://togithub.com/TTPO100AJIEX) made their first contribution in [https://github.com/fastify/fastify-static/pull/409](https://togithub.com/fastify/fastify-static/pull/409) **Full Changelog**: fastify/fastify-static@v6.11.0...v6.11.1 </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/redwoodjs/redwood). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi44My4wIiwidXBkYXRlZEluVmVyIjoiMzYuODMuMCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
) * perf: use `node:` prefix to bypass require.cache call for builtins See fastify/fastify-static#407 * test(start): fix mock
[![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/static](https://togithub.com/fastify/fastify-static) | [`6.10.2` -> `6.12.0`](https://renovatebot.com/diffs/npm/@fastify%2fstatic/6.10.2/6.12.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@fastify%2fstatic/6.12.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@fastify%2fstatic/6.12.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@fastify%2fstatic/6.10.2/6.12.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@fastify%2fstatic/6.10.2/6.12.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>fastify/fastify-static (@​fastify/static)</summary> ### [`v6.12.0`](https://togithub.com/fastify/fastify-static/releases/tag/v6.12.0) [Compare Source](https://togithub.com/fastify/fastify-static/compare/v6.11.2...v6.12.0) #### What's Changed - fix eslint by [@​gurgunday](https://togithub.com/gurgunday) in [https://github.com/fastify/fastify-static/pull/415](https://togithub.com/fastify/fastify-static/pull/415) - refactor: add `u` unicode flag to regex by [@​Fdawgs](https://togithub.com/Fdawgs) in [https://github.com/fastify/fastify-static/pull/418](https://togithub.com/fastify/fastify-static/pull/418) - refactor: remove unused bindings by [@​Fdawgs](https://togithub.com/Fdawgs) in [https://github.com/fastify/fastify-static/pull/417](https://togithub.com/fastify/fastify-static/pull/417) - perf(index): check set size over converting to array to check length by [@​Fdawgs](https://togithub.com/Fdawgs) in [https://github.com/fastify/fastify-static/pull/416](https://togithub.com/fastify/fastify-static/pull/416) - chore(package): explicitly declare js module type by [@​Fdawgs](https://togithub.com/Fdawgs) in [https://github.com/fastify/fastify-static/pull/419](https://togithub.com/fastify/fastify-static/pull/419) - test: replace `typeof` undefined check by [@​Fdawgs](https://togithub.com/Fdawgs) in [https://github.com/fastify/fastify-static/pull/420](https://togithub.com/fastify/fastify-static/pull/420) **Full Changelog**: fastify/fastify-static@v6.11.2...v6.12.0 ### [`v6.11.2`](https://togithub.com/fastify/fastify-static/releases/tag/v6.11.2) [Compare Source](https://togithub.com/fastify/fastify-static/compare/v6.11.1...v6.11.2) #### What's Changed - fix: allow fallback to fastify@2.22 route config by [@​climba03003](https://togithub.com/climba03003) in [https://github.com/fastify/fastify-static/pull/410](https://togithub.com/fastify/fastify-static/pull/410) **Full Changelog**: fastify/fastify-static@v6.11.1...v6.11.2 ### [`v6.11.1`](https://togithub.com/fastify/fastify-static/releases/tag/v6.11.1) [Compare Source](https://togithub.com/fastify/fastify-static/compare/v6.11.0...v6.11.1) #### What's Changed - Remove test/content-type/sample.jpg.br by [@​mcollina](https://togithub.com/mcollina) in [https://github.com/fastify/fastify-static/pull/400](https://togithub.com/fastify/fastify-static/pull/400) - build(deps-dev): bump tsd from 0.28.1 to 0.29.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/fastify/fastify-static/pull/401](https://togithub.com/fastify/fastify-static/pull/401) - added some small code improvements by [@​turnerran](https://togithub.com/turnerran) in [https://github.com/fastify/fastify-static/pull/399](https://togithub.com/fastify/fastify-static/pull/399) - (more) small performance/clarity improvements by [@​gurgunday](https://togithub.com/gurgunday) in [https://github.com/fastify/fastify-static/pull/405](https://togithub.com/fastify/fastify-static/pull/405) - perf: use `node:` prefix to bypass require.cache call for builtins by [@​Fdawgs](https://togithub.com/Fdawgs) in [https://github.com/fastify/fastify-static/pull/407](https://togithub.com/fastify/fastify-static/pull/407) - use native stream by [@​gurgunday](https://togithub.com/gurgunday) in [https://github.com/fastify/fastify-static/pull/408](https://togithub.com/fastify/fastify-static/pull/408) - Fix request route config deprecation warnings by [@​TTPO100AJIEX](https://togithub.com/TTPO100AJIEX) in [https://github.com/fastify/fastify-static/pull/409](https://togithub.com/fastify/fastify-static/pull/409) #### New Contributors - [@​turnerran](https://togithub.com/turnerran) made their first contribution in [https://github.com/fastify/fastify-static/pull/399](https://togithub.com/fastify/fastify-static/pull/399) - [@​TTPO100AJIEX](https://togithub.com/TTPO100AJIEX) made their first contribution in [https://github.com/fastify/fastify-static/pull/409](https://togithub.com/fastify/fastify-static/pull/409) **Full Changelog**: fastify/fastify-static@v6.11.0...v6.11.1 ### [`v6.11.0`](https://togithub.com/fastify/fastify-static/releases/tag/v6.11.0) [Compare Source](https://togithub.com/fastify/fastify-static/compare/v6.10.2...v6.11.0) #### What's Changed - Update README with 404+wildcard behavior by [@​Ethan-Arrowood](https://togithub.com/Ethan-Arrowood) in [https://github.com/fastify/fastify-static/pull/390](https://togithub.com/fastify/fastify-static/pull/390) - add tests for [#​234](https://togithub.com/fastify/fastify-static/issues/234) by [@​gurgunday](https://togithub.com/gurgunday) in [https://github.com/fastify/fastify-static/pull/391](https://togithub.com/fastify/fastify-static/pull/391) - remove linting from the test script by [@​gurgunday](https://togithub.com/gurgunday) in [https://github.com/fastify/fastify-static/pull/394](https://togithub.com/fastify/fastify-static/pull/394) - Remove redundant parameter by [@​gurgunday](https://togithub.com/gurgunday) in [https://github.com/fastify/fastify-static/pull/395](https://togithub.com/fastify/fastify-static/pull/395) - build(deps-dev): bump [@​typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/eslint-plugin) from 2.34.0 to 6.2.1 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/fastify/fastify-static/pull/397](https://togithub.com/fastify/fastify-static/pull/397) - add url type by [@​gurgunday](https://togithub.com/gurgunday) in [https://github.com/fastify/fastify-static/pull/398](https://togithub.com/fastify/fastify-static/pull/398) #### New Contributors - [@​Ethan-Arrowood](https://togithub.com/Ethan-Arrowood) made their first contribution in [https://github.com/fastify/fastify-static/pull/390](https://togithub.com/fastify/fastify-static/pull/390) - [@​gurgunday](https://togithub.com/gurgunday) made their first contribution in [https://github.com/fastify/fastify-static/pull/391](https://togithub.com/fastify/fastify-static/pull/391) **Full Changelog**: fastify/fastify-static@v6.10.2...v6.11.0 </details> --- ### Configuration 📅 **Schedule**: Branch creation - "after 4pm every weekday" in timezone Europe/Paris, 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/specfy/specfy). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy41OS44IiwidXBkYXRlZEluVmVyIjoiMzcuODEuMyIsInRhcmdldEJyYW5jaCI6ImNob3JlL3Jlbm92YXRlQmFzZUJyYW5jaCJ9--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
See https://github.com/nodejs/node/pull/37246/files#r588397158 and https://nodejs.org/api/modules.html#core-modules
Checklist
npm run test
andnpm run benchmark
and the Code of conduct