Skip to content

Commit 5831f54

Browse files
committed
fix: check resolvedProtocol instead of isSupportedProtocol
1 parent 570d838 commit 5831f54

4 files changed

Lines changed: 35 additions & 44 deletions

File tree

src/providers/completion-item/version.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { PRERELEASE_PATTERN } from '#constants'
33
import { config } from '#state'
44
import { getPackageInfo } from '#utils/api/package'
55
import { offsetRangeToRange } from '#utils/ast'
6-
import { formatUpgradeVersion, isSupportedProtocol } from '#utils/version'
6+
import { formatUpgradeVersion } from '#utils/version'
77
import { getResolvedDependencyByOffset } from '#utils/workspace'
88
import { CompletionItem, CompletionItemKind } from 'vscode'
99

@@ -14,7 +14,7 @@ export class VersionCompletionItemProvider implements CompletionItemProvider {
1414
if (!info)
1515
return
1616

17-
if (!isSupportedProtocol(info.protocol))
17+
if (info.resolvedProtocol !== 'npm')
1818
return
1919

2020
const pkg = await getPackageInfo(info.resolvedName)

src/providers/document-link/npmx.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ import type { DocumentLink, DocumentLinkProvider, TextDocument } from 'vscode'
22
import { config } from '#state'
33
import { offsetRangeToRange } from '#utils/ast'
44
import { npmxPackageUrl } from '#utils/links'
5-
import { isSupportedProtocol } from '#utils/version'
65
import { getResolvedDependencies } from '#utils/workspace'
76
import { Uri, DocumentLink as VscodeDocumentLink } from 'vscode'
87

@@ -14,9 +13,11 @@ export class NpmxDocumentLinkProvider implements DocumentLinkProvider {
1413

1514
const links: DocumentLink[] = []
1615
const linkMode = config.packageLinks
17-
const supportedDeps = dependencies.filter((dep) => isSupportedProtocol(dep.protocol))
1816

19-
for (const dep of supportedDeps) {
17+
for (const dep of dependencies) {
18+
if (dep.resolvedProtocol !== 'npm')
19+
continue
20+
2021
const { resolvedName, resolvedSpec, nameRange } = dep
2122

2223
let targetVersion: string | undefined

src/providers/hover/npmx.ts

Lines changed: 28 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
11
import type { HoverProvider, Position, TextDocument } from 'vscode'
22
import { SPACER } from '#constants'
3-
import { getPackageInfo } from '#utils/api/package'
43
import { jsrPackageUrl, npmxDocsUrl, npmxPackageUrl } from '#utils/links'
5-
import { isJsrNpmPackage, jsrNpmToJsrName } from '#utils/package'
6-
import { isSupportedProtocol } from '#utils/version'
74
import { getResolvedDependencyByOffset } from '#utils/workspace'
85
import { Hover, MarkdownString } from 'vscode'
96

@@ -14,43 +11,42 @@ export class NpmxHoverProvider implements HoverProvider {
1411
if (!dep)
1512
return
1613

17-
const { protocol, resolvedName, resolvedSpec } = dep
14+
const { resolvedName, resolvedSpec, resolvedProtocol, packageInfo } = dep
1815

19-
if (protocol === 'jsr' || isJsrNpmPackage(resolvedName)) {
20-
const jsrMd = new MarkdownString('', true)
21-
jsrMd.isTrusted = true
16+
switch (resolvedProtocol) {
17+
case 'jsr': {
18+
const jsrMd = new MarkdownString('', true)
19+
jsrMd.isTrusted = true
2220

23-
const jsrName = jsrNpmToJsrName(resolvedName)
24-
const jsrPackageLink = `[$(package)${SPACER}View on jsr.io](${jsrPackageUrl(jsrName)})`
25-
jsrMd.appendMarkdown(`${jsrPackageLink} | $(warning) Not on npmx`)
26-
return new Hover(jsrMd)
27-
}
28-
29-
if (!isSupportedProtocol(protocol))
30-
return
21+
const jsrPackageLink = `[$(package)${SPACER}View on jsr.io](${jsrPackageUrl(resolvedName)})`
22+
jsrMd.appendMarkdown(`${jsrPackageLink} | $(warning) Not on npmx`)
23+
return new Hover(jsrMd)
24+
}
25+
case 'npm': {
26+
const pkg = await packageInfo()
27+
if (!pkg) {
28+
const errorMd = new MarkdownString('', true)
3129

32-
const pkg = await getPackageInfo(resolvedName)
33-
if (!pkg) {
34-
const errorMd = new MarkdownString('', true)
30+
errorMd.isTrusted = true
31+
errorMd.appendMarkdown('$(warning) Unable to fetch package information')
3532

36-
errorMd.isTrusted = true
37-
errorMd.appendMarkdown('$(warning) Unable to fetch package information')
33+
return new Hover(errorMd)
34+
}
3835

39-
return new Hover(errorMd)
40-
}
41-
42-
const md = new MarkdownString('', true)
43-
md.isTrusted = true
36+
const md = new MarkdownString('', true)
37+
md.isTrusted = true
4438

45-
const exactVersion = await dep.resolvedVersion()
46-
if (exactVersion && pkg.versionsMeta[exactVersion]?.provenance)
47-
md.appendMarkdown(`[$(verified)${SPACER}Verified provenance](${npmxPackageUrl(resolvedName, resolvedSpec)}#provenance)\n\n`)
39+
const exactVersion = await dep.resolvedVersion()
40+
if (exactVersion && pkg.versionsMeta[exactVersion]?.provenance)
41+
md.appendMarkdown(`[$(verified)${SPACER}Verified provenance](${npmxPackageUrl(resolvedName, resolvedSpec)}#provenance)\n\n`)
4842

49-
const packageLink = `[$(package)${SPACER}View on npmx.dev](${npmxPackageUrl(resolvedName)})`
50-
const docsLink = `[$(book)${SPACER}View docs on npmx.dev](${npmxDocsUrl(resolvedName, resolvedSpec)})`
43+
const packageLink = `[$(package)${SPACER}View on npmx.dev](${npmxPackageUrl(resolvedName)})`
44+
const docsLink = `[$(book)${SPACER}View docs on npmx.dev](${npmxDocsUrl(resolvedName, resolvedSpec)})`
5145

52-
md.appendMarkdown(`${packageLink} | ${docsLink}`)
46+
md.appendMarkdown(`${packageLink} | ${docsLink}`)
5347

54-
return new Hover(md)
48+
return new Hover(md)
49+
}
50+
}
5551
}
5652
}

src/utils/version.ts

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,6 @@
1-
import type { DependencyProtocol, ResolvedDependencyInfo } from '#types/context'
1+
import type { ResolvedDependencyInfo } from '#types/context'
22
import { formatPackageId } from './package'
33

4-
const UNSUPPORTED_PROTOCOLS = new Set<DependencyProtocol>(['workspace', 'catalog', 'jsr'])
5-
6-
export function isSupportedProtocol(protocol: DependencyProtocol | null): boolean {
7-
return !protocol || !UNSUPPORTED_PROTOCOLS.has(protocol)
8-
}
9-
104
const RANGE_PREFIXES = ['>=', '<=', '=', '>', '<']
115

126
function getVersionRangePrefix(v: string): string {

0 commit comments

Comments
 (0)