memoryFiles.ts — vite Source File
Architecture documentation for memoryFiles.ts, a typescript file in the vite codebase. 7 imports, 1 dependents.
Entity Profile
Dependency Diagram
graph LR d46a2918_0fad_3b8f_cba9_da7ff903ffa1["memoryFiles.ts"] abfc9e70_3c15_b3f0_a595_3cf27afb7e64["utils.ts"] d46a2918_0fad_3b8f_cba9_da7ff903ffa1 --> abfc9e70_3c15_b3f0_a595_3cf27afb7e64 10b9dea8_362c_1af2_93be_afa4dd9aed9e["cleanUrl"] d46a2918_0fad_3b8f_cba9_da7ff903ffa1 --> 10b9dea8_362c_1af2_93be_afa4dd9aed9e f070fb78_2f2a_ef11_0530_d34862fa95ca["fullBundleEnvironment.ts"] d46a2918_0fad_3b8f_cba9_da7ff903ffa1 --> f070fb78_2f2a_ef11_0530_d34862fa95ca 8fcd8920_61ef_93b8_499a_c18a48b852e5["FullBundleDevEnvironment"] d46a2918_0fad_3b8f_cba9_da7ff903ffa1 --> 8fcd8920_61ef_93b8_499a_c18a48b852e5 d7782cd0_20c0_9082_ede6_be7af4e1592b["mrmime"] d46a2918_0fad_3b8f_cba9_da7ff903ffa1 --> d7782cd0_20c0_9082_ede6_be7af4e1592b 9165291b_077b_bedb_8c23_36e44bc99390["connect"] d46a2918_0fad_3b8f_cba9_da7ff903ffa1 --> 9165291b_077b_bedb_8c23_36e44bc99390 2616bf8c_8895_7af5_fb6e_8424b9e71ea7[".."] d46a2918_0fad_3b8f_cba9_da7ff903ffa1 --> 2616bf8c_8895_7af5_fb6e_8424b9e71ea7 a423a1ed_f7d8_0eb5_9b8f_ddfa7fa8147e["index.ts"] a423a1ed_f7d8_0eb5_9b8f_ddfa7fa8147e --> d46a2918_0fad_3b8f_cba9_da7ff903ffa1 style d46a2918_0fad_3b8f_cba9_da7ff903ffa1 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
import * as mrmime from 'mrmime'
import type { Connect } from '#dep-types/connect'
import { cleanUrl } from '../../../shared/utils'
import type { ViteDevServer } from '..'
import { FullBundleDevEnvironment } from '../environments/fullBundleEnvironment'
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
Functions
Dependencies
Imported By
Source
Frequently Asked Questions
What does memoryFiles.ts do?
memoryFiles.ts is a source file in the vite codebase, written in typescript. It belongs to the ViteCore domain, ConfigEngine subdomain.
What functions are defined in memoryFiles.ts?
memoryFiles.ts defines 1 function(s): memoryFilesMiddleware.
What does memoryFiles.ts depend on?
memoryFiles.ts imports 7 module(s): .., FullBundleDevEnvironment, cleanUrl, connect, fullBundleEnvironment.ts, mrmime, utils.ts.
What files import memoryFiles.ts?
memoryFiles.ts is imported by 1 file(s): index.ts.
Where is memoryFiles.ts in the architecture?
memoryFiles.ts is located at packages/vite/src/node/server/middlewares/memoryFiles.ts (domain: ViteCore, subdomain: ConfigEngine, directory: packages/vite/src/node/server/middlewares).
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free