tinyhttp v1.0.0 Release Notes
Release Date: 2020-11-24 // over 4 years ago-
๐ Finally, after months of hard work, different implementation decisions, collaborations with contributors I'm thrilled to announce the first stable release of tinyhttp!
Express API implementation
๐ 100% ready. The only method that isn't implemented is
app.param
, which was deprecated in Express 4.11.Core
Catching errors in async handlers
errors thrown in async handlers are now catched and passed to
next
, e.g. if an error is throwed in a handler it won't crash and will keep working.Example:
import { App } from '@tinyhttp/app'const app = new App()app.use(async (\_req, \_res) =\> {throw `error`})app.listen(3000)
The app will return the error and send 500 status:
$ curl localhost:3000 error
Custom middleware extensions
๐ WIth the new
applyExtensions
parameter you can define your ownreq
/res
extensions, or disable all tinyhttp's extensions to achieve the best performance.import { App } from '@tinyhttp/app'import { send } from '@tinyhttp/send'const app = new App({applyExtensions: (req, res, next) =\> {// now tinyhttp only has a `res.send` extensionres.send = send(req, res)}})
Other changes
- โ Test coverage is increased to 92%
- ๐ฆ The majority of tinyhttp's modules have more flexible types now which don't require the full implementation of
IncomingMessage
andServerResponse
objects but only the properties which are used inside the module. This will let developers use these packages inside their own projects and not only in Node.js runtime. - ๐ Docs are updated with the current status of the project.
Previous changes from v0.5.0
-
โ During hacktoberfest, lots of folks helped the project by submitting examples, writing tests and creating new middlewares. Thanks to everyone who contributed to the project!
๐ Release details
Express API implementation progress
~96% of API is ready. Only a few methods left.
res.append
req.path
๐ New middleware
- unless by @shzmr
- rate-limit by @Luiginator
๐ New examples
- Prisma REST API
- Prisma GraphQL
- PostgreSQL
- Sapper (Svelte SSR)
- React SSR
- rate limiting
- auth (session)
- search engine
Other minor changes
Coverage increase from 60% to 71%
@tinyhttp/markdown
'srecursive
prop works properly now