(moduleSpecifier: string)
| 171 | const { dependencies, resolveRelative } = options ?? {} |
| 172 | |
| 173 | const getHref = (moduleSpecifier: string): string | null => { |
| 174 | const cleanSpec = moduleSpecifier.replace(/^['"]|['"]$/g, '').trim() |
| 175 | |
| 176 | // Try relative import resolution first |
| 177 | if (cleanSpec.startsWith('.') && resolveRelative) { |
| 178 | return resolveRelative(moduleSpecifier) |
| 179 | } |
| 180 | |
| 181 | // Not a relative import - check if it's an npm package |
| 182 | if (!isNpmPackage(moduleSpecifier)) { |
| 183 | return null |
| 184 | } |
| 185 | |
| 186 | const packageName = getPackageName(moduleSpecifier) |
| 187 | const dep = dependencies?.[packageName] |
| 188 | if (dep) { |
| 189 | // Link to code browser with resolved version |
| 190 | return `/package-code/${packageName}/v/${dep.version}` |
| 191 | } |
| 192 | // Fall back to package page if not a known dependency |
| 193 | return `/package/${packageName}` |
| 194 | } |
| 195 | |
| 196 | // Match: from keyword span followed by string span containing module specifier |
| 197 | // Pattern: <span style="...">from</span><span style="..."> 'module'</span> |
no test coverage detected