forked from
npmx.dev/npmx.dev
[READ-ONLY]
a fast, modern browser for the npm registry
1import type { ModuleFormat, TypesStatus, CreatePackageInfo } from '#shared/utils/package-analysis'
2import type { DevDependencySuggestion } from '#shared/utils/dev-dependency'
3
4export interface PackageAnalysisResponse {
5 package: string
6 version: string
7 moduleFormat: ModuleFormat
8 types: TypesStatus
9 devDependencySuggestion: DevDependencySuggestion
10 engines?: {
11 node?: string
12 npm?: string
13 }
14 createPackage?: CreatePackageInfo
15}
16
17/**
18 * Composable for fetching package analysis data (module format, types info, etc.)
19 */
20export function usePackageAnalysis(
21 packageName: MaybeRefOrGetter<string>,
22 version?: MaybeRefOrGetter<string | null | undefined>,
23) {
24 return useLazyFetch<PackageAnalysisResponse>(() => {
25 const name = toValue(packageName)
26 const ver = toValue(version)
27 const base = `/api/registry/analysis/${name}`
28 return ver ? `${base}/v/${ver}` : base
29 })
30}