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

Function fetchFileTree

server/utils/file-tree.ts:9–25  ·  view source on GitHub ↗
(
  packageName: string,
  version: string,
  signal?: AbortSignal,
)

Source from the content-addressed store, hash-verified

7 * Returns a nested tree structure of all files in the package.
8 */
9export async function fetchFileTree(
10 packageName: string,
11 version: string,
12 signal?: AbortSignal,
13): Promise<JsDelivrPackageResponse> {
14 const url = `https://data.jsdelivr.com/v1/packages/npm/${packageName}@${version}`
15 const response = await fetch(url, { signal })
16
17 if (!response.ok) {
18 if (response.status === 404) {
19 throw createError({ statusCode: 404, message: 'Package or version not found' })
20 }
21 throw createError({ statusCode: 502, message: 'Failed to fetch file list from jsDelivr' })
22 }
23
24 return response.json()
25}
26
27/**
28 * Convert jsDelivr nested structure to our PackageFileTree format

Callers 3

file-tree.spec.tsFile · 0.90
getPackageFileTreeFunction · 0.85
[...pkg].get.tsFile · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected