UNPKG

query-registry

Version:

Query the npm registry for packuments, manifests, packages and download counts

54 lines (46 loc) 1.15 kB
import { getRawPackageManifest } from '../endpoints/get-raw-package-manifest.esm.js'; async function getDefinitelyTypedName({ rawPackageManifest, registry, mirrors, cached }) { const { name, types, typings } = rawPackageManifest; const definitelyTypedName = toDefinitelyTypedName({ name }); const alreadyTyped = name === definitelyTypedName || !!types || !!typings; if (alreadyTyped) { return undefined; } let ok = false; try { const { deprecated } = await getRawPackageManifest({ name: definitelyTypedName, registry, mirrors, cached }); ok = deprecated === undefined; } catch {} return ok ? definitelyTypedName : undefined; } /** * `toDefinitelyTypedName` returns the name of the corresponding * DefinitelyTyped package (for example, * `foo` => `@types/foo`, * `@bar/baz` => `@types/bar__baz`). */ function toDefinitelyTypedName({ name }) { return name.startsWith('@types/') ? name : `@types/${name.replace('@', '').replace('/', '__')}`; } export { getDefinitelyTypedName }; //# sourceMappingURL=get-definitely-typed-name.esm.js.map