UNPKG

@vtex/fsp-cli

Version:

A VTEX CLI

55 lines (48 loc) 1.1 kB
/** * Fetches the npm registry and returns the latest version of a given package * @param packageName Name of the package * @returns As string with the latest version of the package */ export async function getPackageLatestVersion( packageName: string ): Promise<string> { try { const request = await fetch(`https://registry.npmjs.org/${packageName}`) const { 'dist-tags': distTags }: PackageMeta = await request.json() return distTags.latest } catch { // The fallback is the highest available 'latest' dist-tag return 'latest' } } interface PackageMeta { _id: string _rev: string name: string 'dist-tags': DistTags versions: Record<string, unknown> time: Time author: Author license: string keywords: string[] description: string maintainers: Maintainer[] readme: string readmeFilename: string } interface Time { created: string modified: string [key: string]: string } interface Author { name: string } interface Maintainer { name: string email: string } interface DistTags { latest: string [key: string]: string }