Skip to content

Commit 72b1e8b

Browse files
committed
resolver: move IsExternal into PathPair
1 parent b0eddea commit 72b1e8b

3 files changed

Lines changed: 18 additions & 25 deletions

File tree

internal/bundler/bundler.go

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -457,7 +457,7 @@ func parseFile(args parseArgs) {
457457
// All "require.resolve()" imports should be external because we don't
458458
// want to waste effort traversing into them
459459
if record.Kind == ast.ImportRequireResolve {
460-
if resolveResult != nil && resolveResult.IsExternal {
460+
if resolveResult != nil && resolveResult.PathPair.IsExternal {
461461
// Allow path substitution as long as the result is external
462462
result.resolveResults[importRecordIndex] = resolveResult
463463
} else if !record.Flags.Has(ast.HandlesImportErrors) {
@@ -926,8 +926,7 @@ func RunOnResolvePlugins(
926926
}
927927

928928
return &resolver.ResolveResult{
929-
PathPair: resolver.PathPair{Primary: result.Path},
930-
IsExternal: result.External,
929+
PathPair: resolver.PathPair{Primary: result.Path, IsExternal: result.External},
931930
PluginData: result.PluginData,
932931
PrimarySideEffectsData: sideEffectsData,
933932
}, false, resolver.DebugMeta{}
@@ -1580,7 +1579,7 @@ func (s *scanner) preprocessInjectedFiles() {
15801579
nil,
15811580
)
15821581
if resolveResult != nil {
1583-
if resolveResult.IsExternal {
1582+
if resolveResult.PathPair.IsExternal {
15841583
s.log.AddError(nil, logger.Range{}, fmt.Sprintf("The injected path %q cannot be marked as external", importPath))
15851584
} else {
15861585
injectResolveResults[i] = resolveResult
@@ -1759,7 +1758,7 @@ func (s *scanner) addEntryPoints(entryPoints []EntryPoint) []graph.EntryPoint {
17591758
nil,
17601759
)
17611760
if resolveResult != nil {
1762-
if resolveResult.IsExternal {
1761+
if resolveResult.PathPair.IsExternal {
17631762
s.log.AddError(nil, logger.Range{}, fmt.Sprintf("The entry point %q cannot be marked as external", entryPoint.InputPath))
17641763
} else {
17651764
entryPointInfos[i] = entryPointInfo{results: []resolver.ResolveResult{*resolveResult}}
@@ -1975,7 +1974,7 @@ func (s *scanner) scanAllDependencies() {
19751974
}
19761975

19771976
path := resolveResult.PathPair.Primary
1978-
if !resolveResult.IsExternal {
1977+
if !resolveResult.PathPair.IsExternal {
19791978
// Handle a path within the bundle
19801979
sourceIndex := s.maybeParseFile(*resolveResult, resolver.PrettyPath(s.fs, path),
19811980
&result.file.inputFile.Source, record.Range, inputKindNormal, nil)
@@ -2036,7 +2035,7 @@ func (s *scanner) generateResultForGlobResolve(
20362035
importRecordIndex := uint32(len(importRecords))
20372036
var sourceIndex ast.Index32
20382037

2039-
if !resolveResult.IsExternal {
2038+
if !resolveResult.PathPair.IsExternal {
20402039
sourceIndex = ast.MakeIndex32(s.maybeParseFile(
20412040
resolveResult,
20422041
resolver.PrettyPath(s.fs, resolveResult.PathPair.Primary),

internal/resolver/resolver.go

Lines changed: 11 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,8 @@ type PathPair struct {
6969
// will be "main"
7070
Primary logger.Path
7171
Secondary logger.Path
72+
73+
IsExternal bool
7274
}
7375

7476
func (pp *PathPair) iter() []*logger.Path {
@@ -114,8 +116,6 @@ type ResolveResult struct {
114116

115117
// This is the "type" field from "package.json"
116118
ModuleTypeData js_ast.ModuleTypeData
117-
118-
IsExternal bool
119119
}
120120

121121
type suggestionRange uint8
@@ -431,8 +431,7 @@ func (res *Resolver) Resolve(sourceDir string, importPath string, kind ast.Impor
431431

432432
r.flushDebugLogs(flushDueToSuccess)
433433
return &ResolveResult{
434-
PathPair: PathPair{Primary: logger.Path{Text: importPath}},
435-
IsExternal: true,
434+
PathPair: PathPair{Primary: logger.Path{Text: importPath}, IsExternal: true},
436435
}, debugMeta
437436
}
438437

@@ -444,8 +443,7 @@ func (res *Resolver) Resolve(sourceDir string, importPath string, kind ast.Impor
444443

445444
r.flushDebugLogs(flushDueToSuccess)
446445
return &ResolveResult{
447-
PathPair: PathPair{Primary: logger.Path{Text: importPath}},
448-
IsExternal: true,
446+
PathPair: PathPair{Primary: logger.Path{Text: importPath}, IsExternal: true},
449447
PrimarySideEffectsData: &SideEffectsData{}, // Mark this with "sideEffects: false"
450448
}, debugMeta
451449
}
@@ -491,8 +489,7 @@ func (res *Resolver) Resolve(sourceDir string, importPath string, kind ast.Impor
491489

492490
r.flushDebugLogs(flushDueToSuccess)
493491
return &ResolveResult{
494-
PathPair: PathPair{Primary: logger.Path{Text: importPath}},
495-
IsExternal: true,
492+
PathPair: PathPair{Primary: logger.Path{Text: importPath}, IsExternal: true},
496493
PrimarySideEffectsData: sideEffects,
497494
}, debugMeta
498495
}
@@ -516,8 +513,7 @@ func (res *Resolver) Resolve(sourceDir string, importPath string, kind ast.Impor
516513
}
517514
r.flushDebugLogs(flushDueToSuccess)
518515
return &ResolveResult{
519-
PathPair: PathPair{Primary: logger.Path{Text: importPath}},
520-
IsExternal: true,
516+
PathPair: PathPair{Primary: logger.Path{Text: importPath}, IsExternal: true},
521517
}, debugMeta
522518
}
523519

@@ -730,8 +726,7 @@ func (res *Resolver) ResolveGlob(sourceDir string, importPathPattern []helpers.G
730726
var result ResolveResult
731727

732728
if r.isExternal(r.options.ExternalSettings.PreResolve, relPath, kind) {
733-
result.PathPair = PathPair{Primary: logger.Path{Text: relPath}}
734-
result.IsExternal = true
729+
result.PathPair = PathPair{Primary: logger.Path{Text: relPath}, IsExternal: true}
735730

736731
if r.debugLogs != nil {
737732
r.debugLogs.addNote(fmt.Sprintf("The path %q was marked as external by the user", result.PathPair.Primary.Text))
@@ -847,11 +842,11 @@ func (r resolverQuery) flushDebugLogs(mode flushMode) {
847842
}
848843

849844
func (r resolverQuery) finalizeResolve(result *ResolveResult) {
850-
if !result.IsExternal && r.isExternal(r.options.ExternalSettings.PostResolve, result.PathPair.Primary.Text, r.kind) {
845+
if !result.PathPair.IsExternal && r.isExternal(r.options.ExternalSettings.PostResolve, result.PathPair.Primary.Text, r.kind) {
851846
if r.debugLogs != nil {
852847
r.debugLogs.addNote(fmt.Sprintf("The path %q was marked as external by the user", result.PathPair.Primary.Text))
853848
}
854-
result.IsExternal = true
849+
result.PathPair.IsExternal = true
855850
} else {
856851
for i, path := range result.PathPair.iter() {
857852
if path.Namespace != "file" {
@@ -1024,8 +1019,7 @@ func (r resolverQuery) resolveWithoutSymlinks(sourceDir string, sourceDirInfo *d
10241019

10251020
r.flushDebugLogs(flushDueToSuccess)
10261021
return &ResolveResult{
1027-
PathPair: PathPair{Primary: logger.Path{Text: importPath}},
1028-
IsExternal: true,
1022+
PathPair: PathPair{Primary: logger.Path{Text: importPath}, IsExternal: true},
10291023
}
10301024
}
10311025

@@ -1037,7 +1031,7 @@ func (r resolverQuery) resolveWithoutSymlinks(sourceDir string, sourceDirInfo *d
10371031
if r.debugLogs != nil {
10381032
r.debugLogs.addNote(fmt.Sprintf("The path %q was marked as external by the user", absPath))
10391033
}
1040-
return &ResolveResult{PathPair: PathPair{Primary: logger.Path{Text: absPath, Namespace: "file"}}, IsExternal: true}
1034+
return &ResolveResult{PathPair: PathPair{Primary: logger.Path{Text: absPath, Namespace: "file"}, IsExternal: true}}
10411035
}
10421036

10431037
// Check the "browser" map

pkg/api/api_impl.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2099,7 +2099,7 @@ func loadPlugins(initialOptions *BuildOptions, fs fs.FS, log logger.Log, caches
20992099
result.Warnings = convertMessagesToPublic(logger.Warning, msgs)
21002100
if resolveResult != nil {
21012101
result.Path = resolveResult.PathPair.Primary.Text
2102-
result.External = resolveResult.IsExternal
2102+
result.External = resolveResult.PathPair.IsExternal
21032103
result.SideEffects = resolveResult.PrimarySideEffectsData == nil
21042104
result.Namespace = resolveResult.PathPair.Primary.Namespace
21052105
result.Suffix = resolveResult.PathPair.Primary.IgnoredSuffix

0 commit comments

Comments
 (0)