@@ -3,7 +3,6 @@ import path from 'node:path';
33
44import { normalizePath } from '@rollup/pluginutils' ;
55import consola from 'consola' ;
6- import mem from 'mem' ;
76import pMemoize from 'p-memoize' ;
87import c from 'picocolors' ;
98import { gt } from 'semver' ;
@@ -13,16 +12,20 @@ import { workspaceRoot } from 'workspace-root';
1312
1413export interface Options { }
1514
16- let workspaceRootFolder = await workspaceRoot ( ) ;
17- if ( workspaceRootFolder ) {
18- workspaceRootFolder = normalizePath ( workspaceRootFolder ) ;
19- }
15+ const getWorkspaceRootFolder = pMemoize ( async ( ) => {
16+ let workspaceRootFolder = await workspaceRoot ( ) ;
17+ if ( workspaceRootFolder ) {
18+ workspaceRootFolder = normalizePath ( workspaceRootFolder ) ;
19+ }
20+ return workspaceRootFolder ;
21+ } ) ;
2022
21- const parsePackageNameFromModulePath = mem ( ( id : string ) => {
23+ const parsePackageNameFromModulePath = pMemoize ( async ( id : string ) => {
2224 id = normalizePath ( id ) ;
2325 const packageNameRegex = / .* \/ n o d e _ m o d u l e s \/ ( (?: @ [ ^ / ] + \/ ) ? [ ^ / ] + ) / ;
2426 const match = id . match ( packageNameRegex ) ;
2527 const packageName = match ? match [ 1 ] : id ;
28+ const workspaceRootFolder = await getWorkspaceRootFolder ( ) ;
2629 if ( workspaceRootFolder && packageName . startsWith ( workspaceRootFolder ) ) {
2730 return packageName . slice ( workspaceRootFolder . length + 1 ) ;
2831 }
@@ -75,19 +78,17 @@ export default createUnplugin<Options | undefined>(() => {
7578 if ( packageInfo ) {
7679 const { name, version } = packageInfo ;
7780 const existedVersionsMap = packageToVersionsMap . get ( name ) ;
81+ const importerPackage = await parsePackageNameFromModulePath ( importer ) ;
7882 if ( existedVersionsMap ) {
7983 const existedImporters = existedVersionsMap . get ( version ) ;
8084 if ( existedImporters ) {
81- existedImporters . add ( parsePackageNameFromModulePath ( importer ) ) ;
85+ existedImporters . add ( importerPackage ) ;
8286 } else {
83- existedVersionsMap . set (
84- version ,
85- new Set ( [ parsePackageNameFromModulePath ( importer ) ] ) ,
86- ) ;
87+ existedVersionsMap . set ( version , new Set ( [ importerPackage ] ) ) ;
8788 }
8889 } else {
8990 const versionMap = new Map < string , Set < string > > ( [
90- [ version , new Set ( [ parsePackageNameFromModulePath ( importer ) ] ) ] ,
91+ [ version , new Set ( [ importerPackage ] ) ] ,
9192 ] ) ;
9293 packageToVersionsMap . set ( name , versionMap ) ;
9394 }
0 commit comments