/
transformations.ts
74 lines (68 loc) · 2.17 KB
/
transformations.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
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT license.
import {
ArtifactTagOrderBy as ServiceTagOrderBy,
ArtifactManifestOrderBy as ServiceManifestOrderBy,
ManifestWriteableProperties as ServiceManifestWritableProperties,
ArtifactManifestProperties as ServiceArtifactManifestProperties
} from "./generated/models";
import { ArtifactManifestProperties, TagOrderBy, ManifestOrderBy } from "./models";
/** Changeable attributes. Filter out `quarantineState` and `quarantineDetails` returned by service */
interface ManifestWriteableProperties {
/** Delete enabled */
canDelete?: boolean;
/** Write enabled */
canWrite?: boolean;
/** List enabled */
canList?: boolean;
/** Read enabled */
canRead?: boolean;
}
export function toManifestWritableProperties(
from?: ServiceManifestWritableProperties
): ManifestWriteableProperties | undefined {
// don't return unwanted properties, namely `quarantineState` and `quarantineDetails`
return from
? {
canDelete: from.canDelete,
canList: from.canList,
canRead: from.canRead,
canWrite: from.canWrite
}
: undefined;
}
export function toArtifactManifestProperties(
from: ServiceArtifactManifestProperties,
repositoryName: string,
registryLoginServer: string
): ArtifactManifestProperties {
return {
registryLoginServer,
repositoryName,
digest: from.digest,
size: from.size,
createdOn: from.createdOn,
lastUpdatedOn: from.lastUpdatedOn,
architecture: from.architecture ?? undefined,
operatingSystem: from.operatingSystem ?? undefined,
relatedArtifacts: from.relatedArtifacts ?? [],
tags: from.tags ?? [],
...toManifestWritableProperties(from)
};
}
export function toServiceTagOrderBy(orderBy?: TagOrderBy): ServiceTagOrderBy | undefined {
return orderBy === "LastUpdatedOnAscending"
? "timeasc"
: orderBy === "LastUpdatedOnDescending"
? "timedesc"
: undefined;
}
export function toServiceManifestOrderBy(
orderBy?: ManifestOrderBy
): ServiceManifestOrderBy | undefined {
return orderBy === "LastUpdatedOnAscending"
? "timeasc"
: orderBy === "LastUpdatedOnDescending"
? "timedesc"
: undefined;
}