nodejs-resolver 0.1.1

nodejs resolve
Documentation
use crate::{depth, Context, Info, Resolver, State};

pub struct ParsePlugin;

impl ParsePlugin {
    pub fn apply(resolver: &Resolver, info: Info, context: &mut Context) -> State {
        let request = info.request();
        let had_hash = !request.fragment().is_empty();
        let no_query = request.query().is_empty();
        let had_request = !info.request().target().is_empty();
        if no_query && had_hash && had_request {
            tracing::debug!("ParsePlugin works({})", depth(&context.depth));
            let target = format!(
                "{}{}{}",
                request.target(),
                if request.is_directory() { "/" } else { "" },
                request.fragment()
            );
            let info = Info::from(info.normalized_path().clone()).with_target(&target);
            let state = resolver._resolve(info, context);
            if state.is_finished() {
                return state;
            }
            tracing::debug!("Leaving ParsePlugin({})", depth(&context.depth));
        }
        State::Resolving(info)
    }
}