MCPcopy
hub / github.com/npmx-dev/npmx.dev / usePackage

Function usePackage

app/composables/npm/usePackage.ts:127–151  ·  view source on GitHub ↗
(
  name: MaybeRefOrGetter<string>,
  requestedVersion?: MaybeRefOrGetter<string | null>,
)

Source from the content-addressed store, hash-verified

125}
126
127export function usePackage(
128 name: MaybeRefOrGetter<string>,
129 requestedVersion?: MaybeRefOrGetter<string | null>,
130) {
131 const asyncData = useLazyAsyncData(
132 () => `package:${toValue(name)}:${toValue(requestedVersion) ?? ''}`,
133 async ({ $npmRegistry }, { signal }) => {
134 const encodedName = encodePackageName(toValue(name))
135 const { data: r, isStale } = await $npmRegistry<Packument>(`/${encodedName}`, {
136 signal,
137 })
138 const reqVer = toValue(requestedVersion)
139 const pkg = transformPackument(r, reqVer)
140 return { ...pkg, isStale }
141 },
142 )
143
144 if (import.meta.client && asyncData.data.value?.isStale) {
145 onMounted(() => {
146 asyncData.refresh()
147 })
148 }
149
150 return asyncData
151}

Callers

nothing calls this directly

Calls 2

transformPackumentFunction · 0.85
encodePackageNameFunction · 0.50

Tested by

no test coverage detected