UNPKG

724 BPlain TextView Raw
1import { GitRepository } from 'query-registry';
2import { TaggedGitRepository } from '../types/tagged-git-repository';
3
4export function getTaggedGitRepository({
5 id,
6 gitRepository,
7 gitHead,
8 version,
9}: {
10 id: string;
11 gitRepository?: GitRepository;
12 gitHead?: string;
13 version: string;
14}): TaggedGitRepository | undefined {
15 if (!gitRepository) {
16 return undefined;
17 }
18
19 const { url, directory: dir } = gitRepository;
20
21 if (isDefinitelyTypedPackage({ id })) {
22 return { url, dir };
23 }
24
25 const tag = gitHead ?? `v${version}`;
26 return { url, tag, dir };
27}
28
29function isDefinitelyTypedPackage({ id }: { id: string }): boolean {
30 return id.startsWith('@types/');
31}