42
src/flavor.ts
Normal file
42
src/flavor.ts
Normal file
@@ -0,0 +1,42 @@
|
||||
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;
|
||||
}
|
Reference in New Issue
Block a user