UNPKG

enka-network-api

Version:

Enka-network API wrapper for Genshin Impact.

50 lines (49 loc) 1.72 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.TextAssets = void 0; const AssetsNotFoundError_1 = require("../../errors/AssetsNotFoundError"); class TextAssets { constructor(id, enka, convertToHtmlFormat = false, directory) { this.id = id; this.enka = enka; this.convertToHtmlFormat = convertToHtmlFormat; this.directory = directory !== null && directory !== void 0 ? directory : null; } /** * @throws {AssetsNotFoundError} */ get(lang) { var _a; lang !== null && lang !== void 0 ? lang : (lang = this.enka.options.defaultLanguage); let text = this.enka.cachedAssetsManager.getLanguageData(lang, (_a = this.directory) !== null && _a !== void 0 ? _a : undefined)[this.id]; if (!text) throw new AssetsNotFoundError_1.AssetsNotFoundError("Text Assets", this.id); if (this.convertToHtmlFormat) { text = text .replace(/<color=([^>]+)>/g, "<span style=\"color:$1\">") .replace(/<\/color>/g, "</span>") .replace(/\r\n|\n|\\n|\r/gm, "<br>"); } return text; } /** * @returns null instead of throwing AssetsNotFoundError. */ getNullable(lang) { try { return this.get(lang); } catch (_a) { return null; } } setConvertToHtmlFormat(convertToHtmlFormat) { this.convertToHtmlFormat = convertToHtmlFormat; return this; } toString() { var _a; return (_a = this.getNullable()) !== null && _a !== void 0 ? _a : `Unknown TextAssets(${this.id})`; } } exports.TextAssets = TextAssets;