@@ -153,7 +153,7 @@ const getReferencesFromDependencies = (
153153 . reduce ( ( referenceArray , dependency ) => {
154154 if ( packagesMap . has ( dependency ) ) {
155155 const { packageDir : dependencyDir } = packagesMap . get ( dependency ) ;
156- const relativePath = path . relative ( packageDir , dependencyDir ) ;
156+ const relativePath = ensureLeadingDotSlash ( path . relative ( packageDir , dependencyDir ) ) ;
157157 const detectedConfig = detectTSConfig ( dependencyDir , configName )
158158 if ( detectedConfig !== null ) {
159159 return [
@@ -183,6 +183,13 @@ const getReferencesFromDependencies = (
183183 . sort ( ( refA , refB ) => ( refA . path > refB . path ? 1 : - 1 ) ) ;
184184} ;
185185
186+ const ensureLeadingDotSlash = ( p ) => {
187+ if ( p == null || path . isAbsolute ( p ) || p . startsWith ( '.' + path . sep ) || p . startsWith ( '..' + path . sep ) ) {
188+ return p ;
189+ }
190+ return p . length === 0 ? '.' : '.' + path . sep + p ;
191+ }
192+
186193const ensurePosixPathStyle = ( reference ) => ( {
187194 ...reference ,
188195 path : reference . path . split ( path . sep ) . join ( path . posix . sep ) ,
@@ -381,8 +388,8 @@ const execute = async ({
381388 if ( detectedConfig ) {
382389 rootReferenceCandidates . push ( ensurePosixPathStyle ( {
383390 name : packageName ,
384- path : path . join ( path . relative ( cwd , packageEntry . packageDir ) , detectedConfig !== TSCONFIG_JSON ? detectedConfig : '' ) ,
385- folder : path . relative ( cwd , packageEntry . packageDir ) ,
391+ path : path . join ( ensureLeadingDotSlash ( path . relative ( cwd , packageEntry . packageDir ) ) , detectedConfig !== TSCONFIG_JSON ? detectedConfig : '' ) ,
392+ folder : ensureLeadingDotSlash ( path . relative ( cwd , packageEntry . packageDir ) ) ,
386393 } ) ) ;
387394 const references = ( getReferencesFromDependencies (
388395 configName ,
@@ -442,4 +449,4 @@ const execute = async ({
442449 return changesCount ;
443450} ;
444451
445- module . exports = { execute, defaultOptions } ;
452+ module . exports = { execute, defaultOptions, ensureLeadingDotSlash } ;
0 commit comments