MCPcopy
hub / github.com/vitejs/vite / createDepsOptimizer

Function createDepsOptimizer

packages/vite/src/node/optimizer/optimizer.ts:40–747  ·  view source on GitHub ↗
(
  environment: DevEnvironment,
)

Source from the content-addressed store, hash-verified

38const debounceMs = 100
39
40export function createDepsOptimizer(
41 environment: DevEnvironment,
42): DepsOptimizer {
43 const { logger } = environment
44 const sessionTimestamp = Date.now().toString()
45
46 let debounceProcessingHandle: NodeJS.Timeout | undefined
47
48 let closed = false
49
50 const options = environment.config.optimizeDeps
51
52 const { noDiscovery, holdUntilCrawlEnd } = options
53
54 let metadata: DepOptimizationMetadata = initDepsOptimizerMetadata(
55 environment,
56 sessionTimestamp,
57 )
58
59 const depsOptimizer: DepsOptimizer = {
60 init,
61 metadata,
62 registerMissingImport,
63 run: () => debouncedProcessing(0),
64 isOptimizedDepFile: createIsOptimizedDepFile(environment),
65 isOptimizedDepUrl: createIsOptimizedDepUrl(environment),
66 getOptimizedDepId: (depInfo: OptimizedDepInfo) =>
67 `${depInfo.file}?v=${depInfo.browserHash}`,
68 close,
69 options,
70 }
71
72 let newDepsDiscovered = false
73
74 let newDepsToLog: string[] = []
75 let newDepsToLogHandle: NodeJS.Timeout | undefined
76 const logNewlyDiscoveredDeps = () => {
77 if (newDepsToLog.length) {
78 const dependencyLabel =
79 newDepsToLog.length === 1 ? 'dependency' : 'dependencies'
80 logger.info(
81 colors.green(
82 `${dependencyLabel} optimized: ${depsLogString(newDepsToLog)}`,
83 ),
84 {
85 timestamp: true,
86 },
87 )
88 newDepsToLog = []
89 }
90 }
91
92 let discoveredDepsWhileScanning: string[] = []
93 const logOptimizeDepsIncludeSuggestion = (reason: string) => {
94 if (discoveredDepsWhileScanning.length) {
95 logger.info(
96 colors.magenta(
97 `tip: consider adding ${depsLogString(

Callers

nothing calls this directly

Calls 5

createIsOptimizedDepFileFunction · 0.90
createIsOptimizedDepUrlFunction · 0.90
promiseWithResolversFunction · 0.90
debouncedProcessingFunction · 0.85

Tested by

no test coverage detected