@@ -10,20 +10,20 @@ use rustc_hash::FxHashMap as HashMap;
10
10
use tracing:: instrument;
11
11
12
12
use crate :: {
13
- AdditionalChunkRuntimeRequirementsArgs , ApplyContext , AssetEmittedArgs , BoxLoader ,
14
- BoxedParserAndGeneratorBuilder , Chunk , ChunkAssetArgs , ChunkContentHash , ChunkHashArgs ,
15
- Compilation , CompilationArgs , CompilerOptions , Content , ContentHashArgs , DoneArgs , FactorizeArgs ,
16
- JsChunkHashArgs , Module , ModuleArgs , ModuleType , NormalModule , NormalModuleAfterResolveArgs ,
17
- NormalModuleBeforeResolveArgs , NormalModuleFactoryContext , OptimizeChunksArgs , Plugin ,
18
- PluginAdditionalChunkRuntimeRequirementsOutput , PluginBuildEndHookOutput ,
19
- PluginChunkHashHookOutput , PluginCompilationHookOutput , PluginContext , PluginFactorizeHookOutput ,
20
- PluginJsChunkHashHookOutput , PluginMakeHookOutput , PluginModuleHookOutput ,
21
- PluginNormalModuleFactoryAfterResolveOutput , PluginNormalModuleFactoryBeforeResolveOutput ,
22
- PluginProcessAssetsOutput , PluginRenderChunkHookOutput , PluginRenderHookOutput ,
23
- PluginRenderManifestHookOutput , PluginRenderModuleContentOutput , PluginRenderStartupHookOutput ,
24
- PluginThisCompilationHookOutput , ProcessAssetsArgs , RenderArgs , RenderChunkArgs ,
25
- RenderManifestArgs , RenderModuleContentArgs , RenderStartupArgs , Resolver , ResolverFactory , Stats ,
26
- ThisCompilationArgs ,
13
+ AdditionalChunkRuntimeRequirementsArgs , ApplyContext , AssetEmittedArgs , AssetInfo , AssetPathArgs ,
14
+ BoxLoader , BoxedParserAndGeneratorBuilder , Chunk , ChunkAssetArgs , ChunkContentHash ,
15
+ ChunkHashArgs , Compilation , CompilationArgs , CompilerOptions , Content , ContentHashArgs , DoneArgs ,
16
+ FactorizeArgs , JsChunkHashArgs , Module , ModuleArgs , ModuleType , NormalModule ,
17
+ NormalModuleAfterResolveArgs , NormalModuleBeforeResolveArgs , NormalModuleFactoryContext ,
18
+ OptimizeChunksArgs , PathData , Plugin , PluginAdditionalChunkRuntimeRequirementsOutput ,
19
+ PluginBuildEndHookOutput , PluginChunkHashHookOutput , PluginCompilationHookOutput , PluginContext ,
20
+ PluginFactorizeHookOutput , PluginJsChunkHashHookOutput , PluginMakeHookOutput ,
21
+ PluginModuleHookOutput , PluginNormalModuleFactoryAfterResolveOutput ,
22
+ PluginNormalModuleFactoryBeforeResolveOutput , PluginProcessAssetsOutput ,
23
+ PluginRenderChunkHookOutput , PluginRenderHookOutput , PluginRenderManifestHookOutput ,
24
+ PluginRenderModuleContentOutput , PluginRenderStartupHookOutput , PluginThisCompilationHookOutput ,
25
+ ProcessAssetsArgs , RenderArgs , RenderChunkArgs , RenderManifestArgs , RenderModuleContentArgs ,
26
+ RenderStartupArgs , Resolver , ResolverFactory , Stats , ThisCompilationArgs ,
27
27
} ;
28
28
29
29
pub struct PluginDriver {
@@ -160,6 +160,31 @@ impl PluginDriver {
160
160
Ok ( ( ) )
161
161
}
162
162
163
+ #[ instrument( name = "plugin:asset_path" , skip_all) ]
164
+ pub async fn asset_path (
165
+ & self ,
166
+ filename : String ,
167
+ data : & PathData < ' _ > ,
168
+ asset_info : Option < & AssetInfo > ,
169
+ ) -> Result < String > {
170
+ let mut updated_name = filename;
171
+ for plugin in & self . plugins {
172
+ let temp = & plugin
173
+ . asset_path ( & AssetPathArgs {
174
+ filename : & updated_name,
175
+ data : & data,
176
+ asset_info : asset_info,
177
+ } )
178
+ . await ?;
179
+
180
+ if let Some ( value) = temp. to_owned ( ) {
181
+ updated_name = value;
182
+ }
183
+ }
184
+
185
+ Ok ( updated_name)
186
+ }
187
+
163
188
pub async fn before_compile (
164
189
& self ,
165
190
// compilationParams: &mut CompilationParams<'_>,
0 commit comments