in src/model/ServiceManager.ts [20:50]
public async getItems<T extends Identifiable>(serviceUrl: string, type: MatadataType): Promise<Array<IHandlerItem<T>>> {
const metadata = await this.ensureMetadata(serviceUrl);
if (!metadata) {
throw new Error("Failed to fetch metadata.");
}
let defaultLabel: string;
let values: any[];
switch (type) {
case MatadataType.BOOTVERSION:
defaultLabel = metadata.bootVersion.default;
values = metadata.bootVersion.values;
break;
case MatadataType.JAVAVERSION:
defaultLabel = metadata.javaVersion.default;
values = metadata.javaVersion.values;
break;
case MatadataType.LANGUAGE:
defaultLabel = metadata.language.default;
values = metadata.language.values;
break;
case MatadataType.PACKAGING:
defaultLabel = metadata.packaging.default;
values = metadata.packaging.values;
break;
default:
throw new Error("Invalid metadata type.");
}
const sortedValues = values.filter(x => x.id === defaultLabel).concat(values.filter(x => x.id !== defaultLabel));
return (type === MatadataType.BOOTVERSION) ? sortedValues.map(v => ({ value: v, label: v.name })) : sortedValues.map(v => ({ label: v.name }));
}