github remix-run/remix fetch-router@0.9.0
fetch-router v0.9.0

latest release: interaction@0.2.0
3 hours ago
  • Add session middleware for automatic management of context.session across requests

    import { createCookie } from '@remix-run/cookie'
    import { createFileStorage } from '@remix-run/session/file-storage'
    import { session } from '@remix-run/fetch-router/session-middleware'
    
    let cookie = createCookie('session', { secrets: ['s3cr3t'] })
    let storage = createFileStorage('/tmp/sessions')
    
    let router = createRouter({
      middleware: [session(cookie, storage)],
    })
    
    router.map('/', ({ session }) => {
      session.set('count', Number(session.get('count') ?? 0) + 1)
      return new Response(`Count: ${session.get('count')}`)
    })
  • Add asyncContext middleware for storing the request context in AsyncLocalStorage so it is available to all functions in the same async execution context

    import * as assert from 'node:assert/strict'
    import { asyncContext } from '@remix-run/fetch-router/async-context-middleware'
    
    let router = createRouter({
      middleware: [asyncContext()],
    })
    
    router.map('/', (context) => {
      assert.equal(context, getContext())
      return new Response('Home')
    })
  • Add file response helper for serving files

    import * as res from '@remix-run/fetch-router/response-helpers'
    import { findFile } from '@remix-run/lazy-file/fs'
    
    router.get('/assets/:filename', async ({ request, params }) => {
      let file = await findFile('./public/assets', params.filename)
      if (!file) {
        return new Response('Not Found', { status: 404 })
      }
      return res.file(file, request)
    })
  • Add staticFiles middleware for serving static files

    import { staticFiles } from '@remix-run/fetch-router/static-middleware'
    
    let router = createRouter({
      middleware: [staticFiles('./public')],
    })

Don't miss a new remix release

NewReleases is sending notifications on new releases.