Home / Function/ serveRawFsMiddleware() — vite Function Reference

serveRawFsMiddleware() — vite Function Reference

Architecture documentation for the serveRawFsMiddleware() function in static.ts from the vite codebase.

Entity Profile

Dependency Diagram

graph TD
  0c4b83a7_ea4d_51f2_a018_23a3dcc25c7b["serveRawFsMiddleware()"]
  d91d6c8f_e2c2_3b92_12c3_391c9ba06183["static.ts"]
  0c4b83a7_ea4d_51f2_a018_23a3dcc25c7b -->|defined in| d91d6c8f_e2c2_3b92_12c3_391c9ba06183
  24ecf2a1_3c09_d451_76f3_9485b4e993f8["_createServer()"]
  24ecf2a1_3c09_d451_76f3_9485b4e993f8 -->|calls| 0c4b83a7_ea4d_51f2_a018_23a3dcc25c7b
  449af0c1_44a5_1ad5_ce35_a183c1ef89e6["sirvOptions()"]
  0c4b83a7_ea4d_51f2_a018_23a3dcc25c7b -->|calls| 449af0c1_44a5_1ad5_ce35_a183c1ef89e6
  b785bb42_81b4_52a8_f27e_13aacc0eea06["decodeURIIfPossible()"]
  0c4b83a7_ea4d_51f2_a018_23a3dcc25c7b -->|calls| b785bb42_81b4_52a8_f27e_13aacc0eea06
  f06a4729_72a9_90d9_1358_3db737d66a6e["respondWithAccessDenied()"]
  0c4b83a7_ea4d_51f2_a018_23a3dcc25c7b -->|calls| f06a4729_72a9_90d9_1358_3db737d66a6e
  style 0c4b83a7_ea4d_51f2_a018_23a3dcc25c7b fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

packages/vite/src/node/server/middlewares/static.ts lines 201–243

export function serveRawFsMiddleware(
  server: ViteDevServer,
): Connect.NextHandleFunction {
  const serveFromRoot = sirv(
    '/',
    sirvOptions({
      config: server.config,
      getHeaders: () => server.config.server.headers,
    }),
  )

  // Keep the named function. The name is visible in debug logs via `DEBUG=connect:dispatcher ...`
  return function viteServeRawFsMiddleware(req, res, next) {
    // In some cases (e.g. linked monorepos) files outside of root will
    // reference assets that are also out of served root. In such cases
    // the paths are rewritten to `/@fs/` prefixed paths and must be served by
    // searching based from fs root.
    if (req.url!.startsWith(FS_PREFIX)) {
      const url = new URL(req.url!, 'http://example.com')
      const pathname = decodeURIIfPossible(url.pathname)
      if (pathname === undefined) {
        return next()
      }

      let newPathname = pathname.slice(FS_PREFIX.length)
      if (isWindows) newPathname = newPathname.replace(/^[A-Z]:/i, '')
      url.pathname = encodeURI(newPathname)
      req.url = url.href.slice(url.origin.length)

      try {
        serveFromRoot(req, res, next)
      } catch (e) {
        if (e && 'code' in e && e.code === ERR_DENIED_FILE) {
          respondWithAccessDenied(e.path, server, res)
          return
        }
        throw e
      }
    } else {
      next()
    }
  }
}

Domain

Subdomains

Called By

Frequently Asked Questions

What does serveRawFsMiddleware() do?
serveRawFsMiddleware() is a function in the vite codebase, defined in packages/vite/src/node/server/middlewares/static.ts.
Where is serveRawFsMiddleware() defined?
serveRawFsMiddleware() is defined in packages/vite/src/node/server/middlewares/static.ts at line 201.
What does serveRawFsMiddleware() call?
serveRawFsMiddleware() calls 3 function(s): decodeURIIfPossible, respondWithAccessDenied, sirvOptions.
What calls serveRawFsMiddleware()?
serveRawFsMiddleware() is called by 1 function(s): _createServer.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free