interceptor.ts — vite Source File
Architecture documentation for interceptor.ts, a typescript file in the vite codebase. 11 imports, 2 dependents.
Entity Profile
Dependency Diagram
graph LR 95cae2f2_ad8c_91c1_5a74_93d939dbc47b["interceptor.ts"] 29e248d2_9983_1037_00e6_8bcd9ee87840["runner.ts"] 95cae2f2_ad8c_91c1_5a74_93d939dbc47b --> 29e248d2_9983_1037_00e6_8bcd9ee87840 1d3ff778_7ac6_0038_640f_997e968c3c8f["ModuleRunner"] 95cae2f2_ad8c_91c1_5a74_93d939dbc47b --> 1d3ff778_7ac6_0038_640f_997e968c3c8f 81939ddb_795d_a69b_d1ea_fb1af459ccc2["utils.ts"] 95cae2f2_ad8c_91c1_5a74_93d939dbc47b --> 81939ddb_795d_a69b_d1ea_fb1af459ccc2 9f67d7a4_f300_a592_a5b0_c8f97c2d3564["evaluatedModules.ts"] 95cae2f2_ad8c_91c1_5a74_93d939dbc47b --> 9f67d7a4_f300_a592_a5b0_c8f97c2d3564 d84d2810_d37a_ae7f_1268_3cbf7c3dad5f["EvaluatedModules"] 95cae2f2_ad8c_91c1_5a74_93d939dbc47b --> d84d2810_d37a_ae7f_1268_3cbf7c3dad5f abfc9e70_3c15_b3f0_a595_3cf27afb7e64["utils.ts"] 95cae2f2_ad8c_91c1_5a74_93d939dbc47b --> abfc9e70_3c15_b3f0_a595_3cf27afb7e64 f094d39d_cd97_2548_86c3_38902c2f3301["slash"] 95cae2f2_ad8c_91c1_5a74_93d939dbc47b --> f094d39d_cd97_2548_86c3_38902c2f3301 d4f6d186_baf8_38ee_e63e_b58f4d86f016["decoder.ts"] 95cae2f2_ad8c_91c1_5a74_93d939dbc47b --> d4f6d186_baf8_38ee_e63e_b58f4d86f016 d26160cf_98b0_224e_37f8_05fe0a3df273["DecodedMap"] 95cae2f2_ad8c_91c1_5a74_93d939dbc47b --> d26160cf_98b0_224e_37f8_05fe0a3df273 ce370f58_aa9b_2bcc_e6ca_6347a7feef3a["getOriginalPosition"] 95cae2f2_ad8c_91c1_5a74_93d939dbc47b --> ce370f58_aa9b_2bcc_e6ca_6347a7feef3a b84d7b55_2c14_7c59_01d9_b663416bfad1["trace-mapping"] 95cae2f2_ad8c_91c1_5a74_93d939dbc47b --> b84d7b55_2c14_7c59_01d9_b663416bfad1 bb968c6f_5ad4_dc29_bac1_0b2ebcedc26d["index.ts"] bb968c6f_5ad4_dc29_bac1_0b2ebcedc26d --> 95cae2f2_ad8c_91c1_5a74_93d939dbc47b bf48f7e9_65f6_54c3_7dce_f44769180bd7["types.ts"] bf48f7e9_65f6_54c3_7dce_f44769180bd7 --> 95cae2f2_ad8c_91c1_5a74_93d939dbc47b style 95cae2f2_ad8c_91c1_5a74_93d939dbc47b fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
import type { OriginalMapping } from '@jridgewell/trace-mapping'
import type { ModuleRunner } from '../runner'
import { posixDirname, posixResolve } from '../utils'
import type { EvaluatedModules } from '../evaluatedModules'
import { slash } from '../../shared/utils'
import { DecodedMap, getOriginalPosition } from './decoder'
interface RetrieveFileHandler {
(path: string): string | null | undefined | false
}
interface RetrieveSourceMapHandler {
(path: string): null | { url: string; map: any }
}
export interface InterceptorOptions {
retrieveFile?: RetrieveFileHandler
retrieveSourceMap?: RetrieveSourceMapHandler
}
const sourceMapCache: Record<string, CachedMapEntry> = {}
const fileContentsCache: Record<string, string> = {}
const evaluatedModulesCache = new Set<EvaluatedModules>()
const retrieveFileHandlers = new Set<RetrieveFileHandler>()
const retrieveSourceMapHandlers = new Set<RetrieveSourceMapHandler>()
const createExecHandlers = <T extends (...args: any) => any>(
handlers: Set<T>,
) => {
return ((...args: Parameters<T>) => {
for (const handler of handlers) {
const result = handler(...args)
if (result) return result
}
return null
}) as T
}
const retrieveFileFromHandlers = createExecHandlers(retrieveFileHandlers)
const retrieveSourceMapFromHandlers = createExecHandlers(
retrieveSourceMapHandlers,
)
let overridden = false
const originalPrepare = Error.prepareStackTrace
function resetInterceptor(runner: ModuleRunner, options: InterceptorOptions) {
evaluatedModulesCache.delete(runner.evaluatedModules)
if (options.retrieveFile) retrieveFileHandlers.delete(options.retrieveFile)
if (options.retrieveSourceMap)
retrieveSourceMapHandlers.delete(options.retrieveSourceMap)
if (evaluatedModulesCache.size === 0) {
Error.prepareStackTrace = originalPrepare
overridden = false
}
}
export function interceptStackTrace(
runner: ModuleRunner,
// ... (365 more lines)
Domain
Subdomains
Functions
Dependencies
Imported By
Source
Frequently Asked Questions
What does interceptor.ts do?
interceptor.ts is a source file in the vite codebase, written in typescript. It belongs to the ModuleRunner domain, SourcemapHandler subdomain.
What functions are defined in interceptor.ts?
interceptor.ts defines 14 function(s): CallSiteToString, cloneCallSite, createExecHandlers, getRunnerSourceMap, interceptStackTrace, mapEvalOrigin, mapSourcePosition, prepareStackTrace, resetInterceptor, retrieveFile, and 4 more.
What does interceptor.ts depend on?
interceptor.ts imports 11 module(s): DecodedMap, EvaluatedModules, ModuleRunner, decoder.ts, evaluatedModules.ts, getOriginalPosition, runner.ts, slash, and 3 more.
What files import interceptor.ts?
interceptor.ts is imported by 2 file(s): index.ts, types.ts.
Where is interceptor.ts in the architecture?
interceptor.ts is located at packages/vite/src/module-runner/sourcemap/interceptor.ts (domain: ModuleRunner, subdomain: SourcemapHandler, directory: packages/vite/src/module-runner/sourcemap).
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free