-
Notifications
You must be signed in to change notification settings - Fork 71
Expand file tree
/
Copy pathtypeGuards.ts
More file actions
75 lines (64 loc) · 1.78 KB
/
typeGuards.ts
File metadata and controls
75 lines (64 loc) · 1.78 KB
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
import {
Awss3UploadStatus,
AwsUploadRequestOptions,
AzureUploadRequestOptions,
AzureUploadStatus,
ComposesResponseItem,
GcpUploadRequestOptions,
GcpUploadStatus,
ImageTypes,
OciUploadStatus,
UploadRequest,
UploadStatus,
} from './api/backend/hosted';
// import from ./api/backend/onprem to break circular dependency
import { Bootc } from './api/backend/onprem';
import { targetOptions } from '../constants';
export const isGcpUploadRequestOptions = (
_options: UploadRequest['options'],
): _options is GcpUploadRequestOptions => {
return true;
};
export const isAwsUploadRequestOptions = (
_options: UploadRequest['options'],
): _options is AwsUploadRequestOptions => {
return true;
};
export const isAzureUploadRequestOptions = (
options: UploadRequest['options'],
): options is AzureUploadRequestOptions => {
return 'resource_group' in options;
};
export const isGcpUploadStatus = (
status: UploadStatus['options'],
): status is GcpUploadStatus => {
return 'project_id' in status;
};
export const isOciUploadStatus = (
status: UploadStatus['options'],
): status is OciUploadStatus => {
return 'url' in status;
};
export const isAwss3UploadStatus = (
status: UploadStatus['options'],
): status is Awss3UploadStatus => {
return 'url' in status;
};
export const isAzureUploadStatus = (
status: UploadStatus['options'],
): status is AzureUploadStatus => {
return 'image_name' in status;
};
export type ComposeWithBootc = ComposesResponseItem & {
request: ComposesResponseItem['request'] & {
bootc?: Bootc;
};
};
export const hasBootcRequest = (
compose: ComposesResponseItem,
): compose is ComposeWithBootc => {
return 'bootc' in compose.request;
};
export const isImageType = (key: string): key is ImageTypes => {
return key in targetOptions;
};