/
common.ts
80 lines (71 loc) · 1.8 KB
/
common.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
export interface Config {
datasource?: string;
depName?: string;
lookupName?: string;
registryUrls?: string[];
}
export interface DigestConfig extends Config {
registryUrl?: string;
}
interface ReleasesConfigBase {
compatibility?: Record<string, string>;
npmrc?: string;
registryUrls?: string[];
}
export interface GetReleasesConfig extends ReleasesConfigBase {
lookupName: string;
registryUrl?: string;
}
export interface GetPkgReleasesConfig extends ReleasesConfigBase {
datasource: string;
depName: string;
lookupName?: string;
versioning?: string;
}
export function isGetPkgReleasesConfig(
input: any
): input is GetPkgReleasesConfig {
return (
(input as GetPkgReleasesConfig).datasource !== undefined &&
(input as GetPkgReleasesConfig).depName !== undefined
);
}
export interface Release {
canBeUnpublished?: boolean;
changelogUrl?: string;
checksumUrl?: string;
downloadUrl?: string;
gitRef?: string;
isDeprecated?: boolean;
releaseTimestamp?: any;
version: string;
newDigest?: string;
}
export interface ReleaseResult {
sourceDirectory?: string;
latestVersion?: string;
changelogUrl?: string;
dependencyUrl?: string;
deprecationMessage?: string;
display?: string;
dockerRegistry?: string;
dockerRepository?: string;
group?: string;
homepage?: string;
name?: string;
pkgName?: string;
releases: Release[];
sourceUrl?: string;
tags?: Record<string, string>;
versions?: any;
registryUrl?: string;
}
export interface Datasource {
id: string;
getDigest?(config: DigestConfig, newValue?: string): Promise<string | null>;
getReleases(config: GetReleasesConfig): Promise<ReleaseResult | null>;
defaultRegistryUrls?: string[];
appendRegistryUrls?: string[];
defaultConfig?: object;
registryStrategy?: 'first' | 'hunt' | 'merge';
}