mirror of
https://github.com/docker/metadata-action.git
synced 2024-11-16 09:05:39 +01:00
43 lines
892 B
TypeScript
43 lines
892 B
TypeScript
|
export interface Flavor {
|
||
|
latest: string;
|
||
|
prefix: string;
|
||
|
suffix: string;
|
||
|
}
|
||
|
|
||
|
export function Transform(inputs: string[]): Flavor {
|
||
|
const flavor: Flavor = {
|
||
|
latest: 'auto',
|
||
|
prefix: '',
|
||
|
suffix: ''
|
||
|
};
|
||
|
|
||
|
for (const input of inputs) {
|
||
|
const parts = input.split('=', 2);
|
||
|
if (parts.length == 1) {
|
||
|
throw new Error(`Invalid entry: ${input}`);
|
||
|
}
|
||
|
switch (parts[0]) {
|
||
|
case 'latest': {
|
||
|
flavor.latest = parts[1];
|
||
|
if (!['auto', 'true', 'false'].includes(flavor.latest)) {
|
||
|
throw new Error(`Invalid latest flavor entry: ${input}`);
|
||
|
}
|
||
|
break;
|
||
|
}
|
||
|
case 'prefix': {
|
||
|
flavor.prefix = parts[1];
|
||
|
break;
|
||
|
}
|
||
|
case 'suffix': {
|
||
|
flavor.suffix = parts[1];
|
||
|
break;
|
||
|
}
|
||
|
default: {
|
||
|
throw new Error(`Unknown entry: ${input}`);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return flavor;
|
||
|
}
|