Back to Explore

unjs/exsolve

GitHub
1 updates · last 90 days1 watchersOpen source

Last release:

exsolve is a JavaScript library that provides Node.js-style module resolution utilities similar to `import.meta.resolve`. It helps developers resolve module specifiers to a file URL or absolute file path, supports features like import maps and export maps, and offers options like custom conditions, extensions, suffixes, and a global resolve cache.

Project status

  • Actively maintained, evolving: The source has very recent activity, with an upstream push on 2026-06-24 and a package update on 2026-06-22 (v1.1.0) that explicitly tracks newer Node.js behavior, indicating ongoing maintenance rather than dormancy.
  • Update cadence: There was a longer gap from v1.0.8 (2025-11-10) to v1.1.0 (2026-06-22) (around 7 months). After that, updates appear to be happening near-real-time with upstream (latest update just days after the upstream push).

AI summary generated

AI-generated from public sources. May be inaccurate. Report

Recent updates

  • v1.1.0

    v1.1.0 synchronizes exsolve’s internal module resolution logic with newer Node.js upstream behavior and introduces resolver-cache lookup optimizations. The diff shows multiple semver-relevant behavior tweaks around package.json imports/exports resolution, plus a substantial rewrite of Node-style error construction/formatting.

    Breaking
  • v1.0.8

    v1.0.8 primarily changes resolution behavior in "try" mode, making it always swallow resolution errors. It also migrates the build pipeline to obuild/rolldown and simplifies the package.json exports map.

    Breaking
  • v1.0.7

    v1.0.7 is a small patch release focused on fixing module URL resolution when the specifier is `.` and the configured suffix is empty. The code change adjusts how the base name is constructed before attempting resolution, and new tests were added to cover the reported case.

  • v1.0.6

    v1.0.6 primarily adds support for URL polyfills so resolution continues to work when inputs are not native `URL` instances. The implementation changes runtime URL detection in the resolver internals and includes a new test for URL polyfill scenarios, along with dev dependency and tooling updates.

  • v1.0.5

    v1.0.5 primarily fixes module resolution for absolute paths that are symlinks, ensuring the resolver returns URLs pointing at the resolved real target paths. It also includes minor documentation formatting changes. Development tooling and dependency versions were bumped as part of the release.

  • v1.0.4

    v1.0.4 contains a small internal change to how Node.js builtin module specifiers are detected during resolution. The release notes describe switching to a bundled builtin list implementation, and the code diff confirms this replacement.

  • v1.0.3

    v1.0.3 introduces a fix related to resolving Node.js builtin module specifiers. Instead of relying on Node's runtime-provided builtin module list, it now uses an internal hardcoded list of builtin names and uses it during resolution to map bare names to node:<name>.

  • v1.0.2

    v1.0.2 ships a small fix to module resolution for Node and extended builtin module identifiers. The implementation change ensures only standard Node builtin module names get prefixed with node:, while entries that already contain a colon (for example bun:sqlite) are preserved as-is.

  • v1.0.1

    v1.0.1 is a small patch release focused on adjusting resolveModulePath behavior when the caller passes { try: true }. The release notes document that resolveModulePath will not throw when the resolved value is not a file:// URL.

  • v1.0.0

    The release notes only state a version bump to v1.0.0, with no feature, fix, or behavioral details. The provided code diff shows changes limited to repository metadata (CHANGELOG.md and package.json), with no application logic changes shown.

    Breaking
  • v0.4.4

    v0.4.4 makes a Windows-specific change to how resolveModulePath returns filesystem paths. It now normalizes the output by converting backslashes to forward slashes and normalizing the drive letter casing.