@@ -37,6 +37,8 @@ class Validator {
3737 : _origin = path.normalize (origin),
3838 _hrefs = _packageGraph.allHrefs;
3939
40+ static path.Context get _urlPath => path.url;
41+
4042 /// Don't call this method more than once, and only after you've
4143 /// generated all docs for the Package.
4244 void validateLinks () {
@@ -51,7 +53,7 @@ class Validator {
5153 }
5254
5355 void _collectLinks (String pathToCheck, [String ? source, String ? fullPath]) {
54- fullPath ?? = path .join (_origin, pathToCheck);
56+ fullPath ?? = _urlPath .join (_origin, pathToCheck);
5557
5658 final pageLinks = _getLinksAndBaseHref (fullPath);
5759 if (pageLinks == null ) {
@@ -75,14 +77,14 @@ class Validator {
7577 // the stack without this.
7678 final toVisit = < (String newPathToCheck, String newFullPath)> {};
7779 final pathDirectory = baseHref == null
78- ? path .dirname (pathToCheck)
79- : '${path .dirname (pathToCheck )}/$baseHref ' ;
80+ ? _urlPath .dirname (pathToCheck)
81+ : '${_urlPath .dirname (pathToCheck )}/$baseHref ' ;
8082
8183 for (final href in links) {
8284 final uri = Uri .tryParse (href);
8385 if (uri == null || ! uri.hasAuthority && ! uri.hasFragment) {
84- var linkPath = path .normalize (path.url .join (pathDirectory, href));
85- var newFullPath = path .join (_origin, linkPath);
86+ var linkPath = _urlPath .normalize (_urlPath .join (pathDirectory, href));
87+ var newFullPath = _urlPath .join (_origin, linkPath);
8688 if (! _visited.contains (newFullPath)) {
8789 toVisit.add ((linkPath, newFullPath));
8890 _visited.add (newFullPath);
@@ -97,13 +99,13 @@ class Validator {
9799 }
98100
99101 void _checkForOrphans () {
100- final staticAssets = path .join (_origin, 'static-assets' , '' );
101- final indexJson = path .join (_origin, 'index.json' );
102+ final staticAssets = _urlPath .join (_origin, 'static-assets' , '' );
103+ final indexJson = _urlPath .join (_origin, 'index.json' );
102104 var foundIndexJson = false ;
103105
104106 void checkDirectory (Folder dir) {
105107 for (final child in dir.getChildren ()) {
106- final fullPath = path .normalize (child.path);
108+ final fullPath = _urlPath .normalize (child.path);
107109 if (_visited.contains (fullPath)) {
108110 continue ;
109111 }
@@ -114,12 +116,12 @@ class Validator {
114116 if (fullPath.startsWith (staticAssets)) {
115117 continue ;
116118 }
117- if (path .equals (fullPath, indexJson)) {
119+ if (_urlPath .equals (fullPath, indexJson)) {
118120 foundIndexJson = true ;
119121 _onCheckProgress.add (fullPath);
120122 continue ;
121123 }
122- final relativeFullPath = path .relative (fullPath, from: _origin);
124+ final relativeFullPath = _urlPath .relative (fullPath, from: _origin);
123125 if (! _writtenFiles.contains (relativeFullPath)) {
124126 // This isn't a file we wrote (this time); don't claim we did.
125127 _warn (PackageWarning .unknownFile, fullPath, _origin);
@@ -144,8 +146,8 @@ class Validator {
144146 }
145147
146148 void _checkSearchIndex () {
147- final fullPath = path .join (_origin, 'index.json' );
148- final indexPath = path .join (_origin, 'index.html' );
149+ final fullPath = _urlPath .join (_origin, 'index.json' );
150+ final indexPath = _urlPath .join (_origin, 'index.html' );
149151 final file = _config.resourceProvider.getFile (fullPath);
150152 if (! file.exists) {
151153 return ;
@@ -160,11 +162,11 @@ class Validator {
160162 found.add (indexPath);
161163 for (var entry in jsonData.cast <Map <String , dynamic >>()) {
162164 if (entry.containsKey ('href' )) {
163- var href =
164- path .joinAll ([_origin, ...path.url .split (entry['href' ] as String )]);
165+ var href = _urlPath
166+ .joinAll ([_origin, ..._urlPath .split (entry['href' ] as String )]);
165167 if (path.extension (href).isEmpty) {
166168 // An aliased link to an `index.html` file.
167- href = path.url .join (href, 'index.html' );
169+ href = _urlPath .join (href, 'index.html' );
168170 }
169171 if (! _visited.contains (href)) {
170172 _warn (PackageWarning .brokenLink, href, _origin,
@@ -212,8 +214,8 @@ class Validator {
212214 ! uri.startsWith ('ftp:' ))
213215 .map ((uri) =>
214216 // An aliased link to an `index.html` file.
215- path .extension (uri).isEmpty
216- ? path.url .join (uri, 'index.html' )
217+ _urlPath .extension (uri).isEmpty
218+ ? _urlPath .join (uri, 'index.html' )
217219 : uri)
218220 .toSet ();
219221 var refreshTag = doc
@@ -239,12 +241,12 @@ class Validator {
239241 final referredFromElements = < Locatable > {};
240242
241243 // Make all paths relative to origin.
242- if (path .isWithin (origin, warnOn)) {
243- warnOn = path .relative (warnOn, from: origin);
244+ if (_urlPath .isWithin (origin, warnOn)) {
245+ warnOn = _urlPath .relative (warnOn, from: origin);
244246 }
245247 if (referredFrom != null ) {
246- if (path .isWithin (origin, referredFrom)) {
247- referredFrom = path .relative (referredFrom, from: origin);
248+ if (_urlPath .isWithin (origin, referredFrom)) {
249+ referredFrom = _urlPath .relative (referredFrom, from: origin);
248250 }
249251 final hrefReferredFrom = _hrefs[referredFrom];
250252 // Source paths are always relative.
0 commit comments