nodejs_resolver/plugin/
prefer_relative.rs1use crate::{kind::PathKind, log::depth, Context, Info, Resolver, State};
2
3#[derive(Default)]
4pub struct PreferRelativePlugin;
5
6impl PreferRelativePlugin {
7 pub fn apply(resolver: &Resolver, info: Info, context: &mut Context) -> State {
8 if matches!(info.request().kind(), PathKind::Relative) {
9 return State::Resolving(info);
10 }
11
12 if resolver.options.prefer_relative {
13 tracing::debug!("AliasPlugin works({})", depth(&context.depth));
14 let target = format!("./{}", info.request().target());
15 let info = info.clone().with_target(&target);
16 let stats = resolver._resolve(info, context);
17 if stats.is_finished() {
18 return stats;
19 }
20 tracing::debug!("Leaving AliasPlugin({})", depth(&context.depth));
21 }
22 State::Resolving(info)
23 }
24}