| import * as imr from 'import-meta-resolve'; | |
| import { pathToFileURL } from 'node:url'; | |
| /** | |
| * Resolve a dependency relative to the current working directory, | |
| * rather than relative to this package | |
| * @param {string} dependency | |
| */ | |
| export function resolve_peer_dependency(dependency) { | |
| try { | |
| // @ts-expect-error the types are wrong | |
| const resolved = imr.resolve(dependency, pathToFileURL(process.cwd() + '/dummy.js')); | |
| return import(resolved); | |
| } catch { | |
| throw new Error( | |
| `Could not resolve peer dependency "${dependency}" relative to your project — please install it and try again.` | |
| ); | |
| } | |
| } | |