UNPKG

ui5plugin-parser

Version:
39 lines (38 loc) 1.47 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SAPIcons = void 0; const URLBuilder_1 = require("../http/URLBuilder"); const IFileReader_1 = require("../parsing/util/filereader/IFileReader"); class SAPIcons { constructor(parser) { this.icons = []; this.parser = parser; } async preloadIcons() { this.icons = this.parser.fileReader.getCache(IFileReader_1.IFileReader.CacheType.Icons); if (!this.icons) { this.icons = await this._loadIcons(); this.parser.fileReader.setCache(IFileReader_1.IFileReader.CacheType.Icons, JSON.stringify(this.icons)); } } async _loadIcons() { const uris = new URLBuilder_1.URLBuilder(this.parser.configHandler).getIconURIs(); let icons = []; const aIconResponses = await Promise.all(uris.map(uri => this._requestJSONData(uri))); aIconResponses.forEach((iconResponse) => { let uniqueIcons = []; iconResponse.groups.forEach((group) => { uniqueIcons = uniqueIcons.concat(group.icons); }); uniqueIcons = uniqueIcons.map(icon => `sap-icon://${icon.name}`); icons = icons.concat(uniqueIcons); }); icons = [...new Set(icons)]; return icons; } async _requestJSONData(uri) { const data = await this.parser.httpHandler.get(uri); return data; } } exports.SAPIcons = SAPIcons;