Trait deno_graph::source::NpmResolver

source ·
pub trait NpmResolver: Debug {
    // Required methods
    fn resolve_builtin_node_module(
        &self,
        specifier: &ModuleSpecifier,
    ) -> Result<Option<String>, UnknownBuiltInNodeModuleError>;
    fn on_resolve_bare_builtin_node_module(
        &self,
        module_name: &str,
        range: &Range,
    );
    fn load_and_cache_npm_package_info(&self, package_name: &str);
    fn resolve_pkg_reqs<'life0, 'life1, 'async_trait>(
        &'life0 self,
        package_req: &'life1 [PackageReq],
    ) -> Pin<Box<dyn Future<Output = NpmResolvePkgReqsResult> + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait;

    // Provided method
    fn enables_bare_builtin_node_module(&self) -> bool { ... }
}

Required Methods§

source

fn resolve_builtin_node_module( &self, specifier: &ModuleSpecifier, ) -> Result<Option<String>, UnknownBuiltInNodeModuleError>

Gets the builtin node module name from the specifier (ex. “node:fs” -> “fs”).

source

fn on_resolve_bare_builtin_node_module(&self, module_name: &str, range: &Range)

The callback when a bare specifier is resolved to a builtin node module. (Note: used for printing warnings to discourage that usage of bare specifiers)

source

fn load_and_cache_npm_package_info(&self, package_name: &str)

This is an optimization for the implementation to start loading and caching the npm registry package information ahead of time.

source

fn resolve_pkg_reqs<'life0, 'life1, 'async_trait>( &'life0 self, package_req: &'life1 [PackageReq], ) -> Pin<Box<dyn Future<Output = NpmResolvePkgReqsResult> + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Resolves a the package version requirements.

The implementation MUST return the same amount of resolutions back as version reqs provided or else a panic will occur.

Provided Methods§

source

fn enables_bare_builtin_node_module(&self) -> bool

Returns true when bare node specifier resoluion is enabled

Implementors§