UNPKG

@sentry/wizard

Version:

Sentry wizard helping you to configure your project

46 lines (41 loc) 1.25 kB
export type PackageDotJson = { scripts?: Record<string, string | undefined>; dependencies?: Record<string, string>; devDependencies?: Record<string, string>; }; type NpmPackage = { name: string; version: string; }; /** * Checks if @param packageJson has any of the @param packageNamesList package names * listed as a dependency or devDependency. * If so, it returns the first package name that is found, including the * version (range) specified in the package.json. */ export function findInstalledPackageFromList( packageNamesList: string[], packageJson: PackageDotJson, ): NpmPackage | undefined { return packageNamesList .map((packageName) => ({ name: packageName, version: getPackageVersion(packageName, packageJson), })) .find((sdkPackage): sdkPackage is NpmPackage => !!sdkPackage.version); } export function hasPackageInstalled( packageName: string, packageJson: PackageDotJson, ): boolean { return getPackageVersion(packageName, packageJson) !== undefined; } export function getPackageVersion( packageName: string, packageJson: PackageDotJson, ): string | undefined { return ( packageJson?.dependencies?.[packageName] || packageJson?.devDependencies?.[packageName] ); }