public async getItems()

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 }));
    }