query-registry
Version:
Query the npm registry for packuments, manifests, packages and download counts
54 lines (46 loc) • 1.15 kB
JavaScript
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