@@ -108,46 +108,42 @@ impl<Fs: FileSystem> Cache<Fs> {
108108 ctx : & mut Ctx ,
109109 ) -> Result < Option < Arc < PackageJson > > , ResolveError > {
110110 // Change to `std::sync::OnceLock::get_or_try_init` when it is stable.
111- let index_result = path
112- . package_json
113- . get_or_try_init ( || {
114- let package_json_path = path. path . join ( "package.json" ) ;
115- let Ok ( package_json_bytes) = self . fs . read ( & package_json_path) else {
116- return Ok ( None ) ;
117- } ;
111+ let index_result = path. package_json . get_or_try_init ( || {
112+ let package_json_path = path. path . join ( "package.json" ) ;
113+ let Ok ( package_json_bytes) = self . fs . read ( & package_json_path) else {
114+ return Ok ( None ) ;
115+ } ;
118116
119- let real_path = if options. symlinks {
120- self . canonicalize ( path) ?. join ( "package.json" )
121- } else {
122- package_json_path. clone ( )
123- } ;
124- PackageJson :: parse ( & self . fs , package_json_path, real_path, package_json_bytes)
125- . map ( |package_json| {
126- let arc = Arc :: new ( package_json) ;
127- // Acquire write lock to push to arena
128- let mut arena = self . package_json_arena . write ( ) ;
129- let index = arena. len ( ) ;
130- arena. push ( arc) ;
131- Some ( index)
132- } )
133- . map_err ( ResolveError :: Json )
134- } ) ;
117+ let real_path = if options. symlinks {
118+ self . canonicalize ( path) ?. join ( "package.json" )
119+ } else {
120+ package_json_path. clone ( )
121+ } ;
122+ PackageJson :: parse ( & self . fs , package_json_path, real_path, package_json_bytes)
123+ . map ( |package_json| {
124+ let arc = Arc :: new ( package_json) ;
125+ // Acquire write lock to push to arena
126+ let mut arena = self . package_json_arena . write ( ) ;
127+ let index = arena. len ( ) ;
128+ arena. push ( arc) ;
129+ Some ( index)
130+ } )
131+ . map_err ( ResolveError :: Json )
132+ } ) ;
135133
136134 // Lookup the Arc from the arena using the stored index
137135 let result = index_result. and_then ( |index_opt| {
138136 match index_opt {
139137 Some ( index) => {
140138 // Get the Arc from the arena
141139 let arena = self . package_json_arena . read ( ) ;
142- arena. get ( * index)
143- . map ( |arc| Ok ( Some ( Arc :: clone ( arc) ) ) )
144- . unwrap_or_else ( || {
145- // Index out of bounds (e.g., after cache clear)
146- // Return None to indicate package.json not found
147- Ok ( None )
148- } )
140+ arena. get ( * index) . map ( |arc| Ok ( Some ( Arc :: clone ( arc) ) ) ) . unwrap_or_else ( || {
141+ // Index out of bounds (e.g., after cache clear)
142+ // Return None to indicate package.json not found
143+ Ok ( None )
144+ } )
149145 }
150- None => Ok ( None )
146+ None => Ok ( None ) ,
151147 }
152148 } ) ;
153149
0 commit comments