Skip to content

Commit cba3fdf

Browse files
committed
feat: refactor dependencies updater
1 parent eff52ed commit cba3fdf

1 file changed

Lines changed: 28 additions & 13 deletions

File tree

lib/package.js

Lines changed: 28 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -719,16 +719,19 @@ export default class Package {
719719
if ( linked ) {
720720
const linkedDependencies = await this.#getLinkedDependencies();
721721

722-
for ( const name of linkedDependencies.keys() ) {
723-
if ( !outdatedDependencies[ name ] ) {
724-
outdatedDependencies[ name ] = [];
722+
for ( const dependency of linkedDependencies.value() ) {
723+
if ( !outdatedDependencies[ dependency.name ] ) {
724+
outdatedDependencies[ dependency.name ] = [];
725725
}
726-
else if ( !Array.isArray( outdatedDependencies[ name ] ) ) {
727-
outdatedDependencies[ name ] = [ outdatedDependencies[ name ] ];
726+
else if ( !Array.isArray( outdatedDependencies[ dependency.name ] ) ) {
727+
outdatedDependencies[ name ] = [ outdatedDependencies[ dependency.name ] ];
728728
}
729729

730-
outdatedDependencies[ name ].push( {
731-
"linked": linkedDependencies.get( name ),
730+
outdatedDependencies[ dependency.name ].push( {
731+
732+
// XXX
733+
// "location": dependency.location,
734+
"linked": dependency.link || true,
732735
} );
733736
}
734737
}
@@ -1499,22 +1502,34 @@ export default class Package {
14991502
"directories": true,
15001503
} ) ),
15011504
] ),
1502-
].map( name =>
1503-
fs.promises
1504-
.readlink( `${ this.root }/node_modules/${ name }` )
1505-
.then( link => dependencies.set( name, link ) )
1505+
].map( name => {
1506+
const location = path.join( this.root, "node_modules", name );
1507+
1508+
return fs.promises
1509+
.readlink( location )
1510+
.then( link =>
1511+
dependencies.set( name, {
1512+
name,
1513+
location,
1514+
link,
1515+
} ) )
15061516
.catch( e => {
15071517

15081518
// not exists
15091519
if ( e.code === "ENOENT" ) {
1510-
dependencies.set( name, true );
1520+
dependencies.set( name, {
1521+
name,
1522+
location,
1523+
"link": null,
1524+
} );
15111525
}
15121526

15131527
// other error
15141528
else if ( e.code !== "EINVAL" ) {
15151529
console.log( e );
15161530
}
1517-
} ) ) );
1531+
} );
1532+
} ) );
15181533

15191534
return dependencies;
15201535
}

0 commit comments

Comments
 (0)