Szymon Łągiewka
41113599af
fix(refactor): prefix built-in node module imports
...
Since v5 relies on node >= 18, this is now possible (since v16, v14.18.0
[^1][^2]).
It's functionally irrelevant:
1. It's not required for CJS nor ESM (with a few exceptions [^3])
2. It has no performance promises
However, there are upsides to this approach:
1. It brings clear boundaries to what's a built-in and what's an
external dependency
2. It reduces the risk of importing unwanted deps where a built-in is
expected
3. It's slightly more interoperable with other JS runtimes that provide
node compatibility[^4], albeit only during development. Once imported
from npm, built-ins are assumed.
[^1]:https://nodejs.org/docs/latest-v22.x/api/modules.html#built-in-modules
[^2]:https://github.com/nodejs/node/pull/37246
[^3]:https://nodejs.org/api/modules.html#built-in-modules-with-mandatory-node-prefix
[^4]:https://docs.deno.com/runtime/fundamentals/node/#using-node's-built-in-modules
2025-01-10 11:53:44 -06:00
Evan Hahn
14439731f9
Use object with null prototype for various app properties
...
`app.cache`, `app.engines`, and `app.settings` are now created with
`Object.create(null)` instead of `{}`.
This also updates a test to ensure that `app.locals` is created the same
way.
2024-04-29 09:43:25 -05:00
Douglas Christopher Wilson
7df0c840e0
tests: fix up app.locals tests
2022-02-21 19:07:26 -05:00
Douglas Christopher Wilson
a65913776d
tests: use strict mode
2022-02-09 01:07:08 -05:00
Douglas Christopher Wilson
bd4fdfe5f7
tests: remove global dependency on should
...
fixes #4797
2022-02-02 01:55:16 -05:00
Douglas Christopher Wilson
e0066227f7
lint: remove all unused varaibles
2017-08-06 00:19:32 -04:00
Jonathan Ong
643397ed21
remove unnecessary test/support/http
2014-03-05 22:06:14 -08:00
Roman Shtylman
4983c38298
change res.locals to a plain js object.
...
Anyone who wants something fancier should use modules.
- fixes annoyance with not being able to set 'name' property on locals
2014-01-27 19:17:29 -05:00
TJ Holowaychuk
4f7c4d1051
remove app.locals.use and res.locals.use
...
there are a few reasons for this:
a) less API, simpler implementation ...
b) difficult to inherit cleanly from subapps
c) effectively the same as parallelized middleware (use connect-parallel for example)
lastly this api in a sense promotes some obscure uses since
they may be scattered throughout rather than explicitly
given to specific routes or used globally as middleware etc
2012-07-05 18:46:19 -07:00
Tj Holowaychuk
87b991c076
removed "root" setting
...
screw it, no one will understand anyway
2011-11-24 14:27:28 -08:00
Tj Holowaychuk
429e48d873
Added app.locals.settings test
2011-11-10 08:36:18 -08:00
Tj Holowaychuk
4a5776b513
more res.locals tests
2011-11-09 17:02:55 -08:00
Tj Holowaychuk
c9b04b8be7
Added app.locals(obj) test
2011-11-08 19:54:46 -08:00