Home / Function/ memoryFilesMiddleware() — vite Function Reference

memoryFilesMiddleware() — vite Function Reference

Architecture documentation for the memoryFilesMiddleware() function in memoryFiles.ts from the vite codebase.

Entity Profile

Dependency Diagram

graph TD
  1fadc87e_464c_941d_c8c8_dcd6d544b71e["memoryFilesMiddleware()"]
  d46a2918_0fad_3b8f_cba9_da7ff903ffa1["memoryFiles.ts"]
  1fadc87e_464c_941d_c8c8_dcd6d544b71e -->|defined in| d46a2918_0fad_3b8f_cba9_da7ff903ffa1
  24ecf2a1_3c09_d451_76f3_9485b4e993f8["_createServer()"]
  24ecf2a1_3c09_d451_76f3_9485b4e993f8 -->|calls| 1fadc87e_464c_941d_c8c8_dcd6d544b71e
  10b9dea8_362c_1af2_93be_afa4dd9aed9e["cleanUrl()"]
  1fadc87e_464c_941d_c8c8_dcd6d544b71e -->|calls| 10b9dea8_362c_1af2_93be_afa4dd9aed9e
  983c34fc_39a0_52cc_1c78_f5c74a361a26["get()"]
  1fadc87e_464c_941d_c8c8_dcd6d544b71e -->|calls| 983c34fc_39a0_52cc_1c78_f5c74a361a26
  style 1fadc87e_464c_941d_c8c8_dcd6d544b71e fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

packages/vite/src/node/server/middlewares/memoryFiles.ts lines 7–52

export function memoryFilesMiddleware(
  server: ViteDevServer,
): Connect.NextHandleFunction {
  const memoryFiles =
    server.environments.client instanceof FullBundleDevEnvironment
      ? server.environments.client.memoryFiles
      : undefined
  if (!memoryFiles) {
    throw new Error('memoryFilesMiddleware can only be used for fullBundleMode')
  }
  const headers = server.config.server.headers

  return function viteMemoryFilesMiddleware(req, res, next) {
    const cleanedUrl = cleanUrl(req.url!)
    if (cleanedUrl.endsWith('.html')) {
      return next()
    }

    const pathname = decodeURIComponent(cleanedUrl)
    const filePath = pathname.slice(1) // remove first /

    const file = memoryFiles.get(filePath)
    if (file) {
      if (file.etag) {
        if (req.headers['if-none-match'] === file.etag) {
          res.statusCode = 304
          res.end()
          return
        }
        res.setHeader('Etag', file.etag)
      }

      const mime = mrmime.lookup(filePath)
      if (mime) {
        res.setHeader('Content-Type', mime)
      }

      for (const name in headers) {
        res.setHeader(name, headers[name]!)
      }

      return res.end(file.source)
    }
    next()
  }
}

Domain

Subdomains

Called By

Frequently Asked Questions

What does memoryFilesMiddleware() do?
memoryFilesMiddleware() is a function in the vite codebase, defined in packages/vite/src/node/server/middlewares/memoryFiles.ts.
Where is memoryFilesMiddleware() defined?
memoryFilesMiddleware() is defined in packages/vite/src/node/server/middlewares/memoryFiles.ts at line 7.
What does memoryFilesMiddleware() call?
memoryFilesMiddleware() calls 2 function(s): cleanUrl, get.
What calls memoryFilesMiddleware()?
memoryFilesMiddleware() 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