query-registry
Version:
Query the npm registry for packuments, manifests, packages and download counts
38 lines (35 loc) • 1.3 kB
JavaScript
import * as z from "zod";
import { fetchData } from "./fetch-data.js";
import { npmRegistryUrl } from "./npm-registry.js";
export const RegistryMetadata = z.object({
/** Database name, usually `registry` */
db_name: z.string().optional(),
doc_count: z.number().optional(),
doc_del_count: z.number().optional(),
update_seq: z.number().optional(),
purge_seq: z.number().optional(),
compact_running: z.boolean().optional(),
disk_size: z.number().optional(),
data_size: z.number().optional(),
instance_start_time: z.string().optional(),
disk_format_version: z.number().optional(),
committed_update_seq: z.number().optional(),
compacted_seq: z.number().optional(),
uuid: z.string().optional(),
other: z.object({ data_size: z.number().optional() }).optional(),
sizes: z
.object({
file: z.number().optional(),
active: z.number().optional(),
external: z.number().optional(),
})
.optional(),
});
/**
`getRegistryMetadata` returns the metadata describing the registry itself.
@param registry - URL of the registry (default: npm registry)
@see {@link RegistryMetadata}
*/
export async function getRegistryMetadata(registry = npmRegistryUrl) {
return await fetchData(RegistryMetadata, registry);
}