( name: MaybeRefOrGetter<string>, requestedVersion?: MaybeRefOrGetter<string | null>, )
| 125 | } |
| 126 | |
| 127 | export 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 | } |
nothing calls this directly
no test coverage detected