tinyhttp v1.0.0 Release Notes

Release Date: 2020-11-24 // 11 months 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 own req / 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 and ServerResponse 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

    ๐Ÿ†• 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's recursive prop works properly now