resolve.ts — vite Source File
Architecture documentation for resolve.ts, a typescript file in the vite codebase. 16 imports, 1 dependents.
Entity Profile
Dependency Diagram
graph LR f5dd930e_f496_d00c_dda8_8cf9daf4b473["resolve.ts"] 7da774f9_eca5_d54e_6e01_6bee7d460a2b["config.ts"] f5dd930e_f496_d00c_dda8_8cf9daf4b473 --> 7da774f9_eca5_d54e_6e01_6bee7d460a2b eb5604c2_58e1_1c00_5a1a_5d97ea5236ad["ResolvedConfig"] f5dd930e_f496_d00c_dda8_8cf9daf4b473 --> eb5604c2_58e1_1c00_5a1a_5d97ea5236ad 031bc221_67a8_c579_f2bf_bb30a08beeb2["utils.ts"] f5dd930e_f496_d00c_dda8_8cf9daf4b473 --> 031bc221_67a8_c579_f2bf_bb30a08beeb2 5e378bd7_4558_94a6_54bf_d9742f54d2e9["escapeRegex"] f5dd930e_f496_d00c_dda8_8cf9daf4b473 --> 5e378bd7_4558_94a6_54bf_d9742f54d2e9 cb293321_1174_554d_b5ce_f153b06a2fb4["getNpmPackageName"] f5dd930e_f496_d00c_dda8_8cf9daf4b473 --> cb293321_1174_554d_b5ce_f153b06a2fb4 dff9cadb_1e8c_7fc9_4119_a173f1f21cbd["packages.ts"] f5dd930e_f496_d00c_dda8_8cf9daf4b473 --> dff9cadb_1e8c_7fc9_4119_a173f1f21cbd 170ceb82_4bf1_2290_1f2e_bbdec11e5184["resolvePackageData"] f5dd930e_f496_d00c_dda8_8cf9daf4b473 --> 170ceb82_4bf1_2290_1f2e_bbdec11e5184 abfc9e70_3c15_b3f0_a595_3cf27afb7e64["utils.ts"] f5dd930e_f496_d00c_dda8_8cf9daf4b473 --> abfc9e70_3c15_b3f0_a595_3cf27afb7e64 f094d39d_cd97_2548_86c3_38902c2f3301["slash"] f5dd930e_f496_d00c_dda8_8cf9daf4b473 --> f094d39d_cd97_2548_86c3_38902c2f3301 0c33ff62_54e9_5c90_902b_b26728e71fca["environment.ts"] f5dd930e_f496_d00c_dda8_8cf9daf4b473 --> 0c33ff62_54e9_5c90_902b_b26728e71fca 7e6f7c83_3515_4e0d_5362_4eb9515b4a86["Environment"] f5dd930e_f496_d00c_dda8_8cf9daf4b473 --> 7e6f7c83_3515_4e0d_5362_4eb9515b4a86 55b2a3d2_8787_d760_1a76_1d2854a39807["idResolver.ts"] f5dd930e_f496_d00c_dda8_8cf9daf4b473 --> 55b2a3d2_8787_d760_1a76_1d2854a39807 7ee86c21_2650_c869_2f5d_720909757e00["createBackCompatIdResolver"] f5dd930e_f496_d00c_dda8_8cf9daf4b473 --> 7ee86c21_2650_c869_2f5d_720909757e00 51e96894_3556_ed5c_1ede_97d449867adf["node:path"] f5dd930e_f496_d00c_dda8_8cf9daf4b473 --> 51e96894_3556_ed5c_1ede_97d449867adf style f5dd930e_f496_d00c_dda8_8cf9daf4b473 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
import path from 'node:path'
import picomatch from 'picomatch'
import { globSync } from 'tinyglobby'
import type { ResolvedConfig } from '../config'
import { escapeRegex, getNpmPackageName } from '../utils'
import { resolvePackageData } from '../packages'
import { slash } from '../../shared/utils'
import type { Environment } from '../environment'
import { createBackCompatIdResolver } from '../idResolver'
export function createOptimizeDepsIncludeResolver(
environment: Environment,
): (id: string) => Promise<string | undefined> {
const topLevelConfig = environment.getTopLevelConfig()
const resolve = createBackCompatIdResolver(topLevelConfig, {
asSrc: false,
scan: true,
packageCache: new Map(),
})
return async (id: string) => {
const lastArrowIndex = id.lastIndexOf('>')
if (lastArrowIndex === -1) {
return await resolve(environment, id, undefined)
}
// split nested selected id by last '>', for example:
// 'foo > bar > baz' => 'foo > bar' & 'baz'
const nestedRoot = id.substring(0, lastArrowIndex).trim()
const nestedPath = id.substring(lastArrowIndex + 1).trim()
const basedir = nestedResolveBasedir(
nestedRoot,
topLevelConfig.root,
topLevelConfig.resolve.preserveSymlinks,
)
return await resolve(
environment,
nestedPath,
path.resolve(basedir, 'package.json'),
)
}
}
/**
* Expand the glob syntax in `optimizeDeps.include` to proper import paths
*/
export function expandGlobIds(id: string, config: ResolvedConfig): string[] {
const pkgName = getNpmPackageName(id)
if (!pkgName) return []
const pkgData = resolvePackageData(
pkgName,
config.root,
config.resolve.preserveSymlinks,
config.packageCache,
)
if (!pkgData) return []
const pattern = '.' + id.slice(pkgName.length)
const exports = pkgData.data.exports
// ... (125 more lines)
Domain
Subdomains
Functions
Dependencies
Imported By
Source
Frequently Asked Questions
What does resolve.ts do?
resolve.ts is a source file in the vite codebase, written in typescript. It belongs to the DependencyOptimizer domain, PreBundler subdomain.
What functions are defined in resolve.ts?
resolve.ts defines 4 function(s): createOptimizeDepsIncludeResolver, expandGlobIds, getFirstExportStringValue, nestedResolveBasedir.
What does resolve.ts depend on?
resolve.ts imports 16 module(s): Environment, ResolvedConfig, config.ts, createBackCompatIdResolver, environment.ts, escapeRegex, getNpmPackageName, idResolver.ts, and 8 more.
What files import resolve.ts?
resolve.ts is imported by 1 file(s): index.ts.
Where is resolve.ts in the architecture?
resolve.ts is located at packages/vite/src/node/optimizer/resolve.ts (domain: DependencyOptimizer, subdomain: PreBundler, directory: packages/vite/src/node/optimizer).
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free