// Metro module 5050 (f5051). import _slicedToArray from "../../_bundle/_slicedToArray"; import { TypeTag } from "../../_bundle/Module1413"; import { LibdiscoreStore } from "../libdiscore/stores/LibdiscoreStore"; import { EmojiTypes } from "./EmojiTypes"; import { LibdiscoreBatchStoreRefactorExperiment } from "../libdiscore/libdiscoreExperiments"; let syncEmojis; const fromServer = function fromServer(a0, a1) { const r0 = {}; for (const item of a1) { const id = item.id; const r24 = {}; r24[TypeTag] = "RawGuildEmoji"; r24.guildId = a0; r24.id = item.id; r24.animated = item.animated; r24.name = item.name; r24.require_colons = item.require_colons; r24.available = item.available; r24.roles = item.roles; r24.managed = item.managed; r24.version = item.version; r24.type = EmojiTypes.GUILD; r0[id] = r24; } return r0; }; syncEmojis = function syncEmojis(id, emojis, a2) { L15: { if (emojis.op === "full_sync") { a2.setPartition(id, fromServer(id, emojis.items)); } else { const nullablePartition = a2.getNullablePartition(id); if (nullablePartition == null) { a2.setPartition(id, fromServer(id, emojis.writes)); } else { if (!(emojis.writes.length > 0) && !(emojis.deletes.length > 0)) { break L15; } const r35 = { ...nullablePartition }; for (const delete2 of emojis.deletes) { delete r35[delete2]; } for (const write of emojis.writes) { Object.assign(r35, fromServer(id, [write])); } a2.setPartition(id, r35); } } } }; class RawGuildEmojiStore extends LibdiscoreStore { static displayName = "RawGuildEmojiStore"; database = this.addKKVDatabase("guild_emojis"); stateWrapper() { return this.database; } getGuildEmojis(a0) { return this.database.getNullablePartition(a0); } } const rawGuildEmojiStore = new RawGuildEmojiStore({ LOGOUT: (a0, a1) => a1.clear(), BACKGROUND_SYNC: (a0, a1) => a1.clear(), RESET_SOCKET: (a0, a1) => a1.clear(), CONNECTION_OPEN: ({ guilds, unavailableGuilds }, a1) => { let r22; const set = new Set(guilds.map((guild) => guild.id)); let r31 = unavailableGuilds[Symbol.iterator](); const next = r31.next; while (true) { const r8 = r31 === void 0 ? void 0 : (r22 = next.call(r31)).done ? r31 = void 0 : r22.value; if (r31 === void 0) { for (const item of a1.getPartitionKeys()) { if (!set.has(item)) { a1.removePartition(item); } } for (const item2 of guilds) { syncEmojis(item2.id, item2.emojis, a1); } return void 0; } else { try { set.add(r8); } catch (r37) { if (r31 !== void 0 && typeof r31.return === "function") { try { r31.return(); } catch {} } throw r37; } } } }, OVERLAY_INITIALIZE: (a0, a1) => { a1.clear(); Object.entries(a0.emojis).forEach((item) => { const [r24, r8] = item; a1.setPartition(r24, fromServer(r24, r8)); }); }, CACHED_EMOJIS_LOADED: (a0, a1) => { for (const emoji of a0.emojis) { const r28 = _slicedToArray(emoji, 2); const r9 = r28[0]; a1.setPartition(r9, fromServer(r9, r28[1])); } }, GUILD_CREATE: (a0, a1) => { syncEmojis(a0.guild.id, a0.guild.emojis, a1); }, GUILD_UPDATE: (a0, a1) => { a1.setPartition(a0.guild.id, fromServer(a0.guild.id, a0.guild.emojis)); }, GUILD_EMOJIS_UPDATE: (a0, a1) => { a1.setPartition(a0.guildId, fromServer(a0.guildId, a0.emojis)); }, GUILD_DELETE: (a0, a1) => { a1.removePartition(a0.guild.id); } }, LibdiscoreBatchStoreRefactorExperiment.getCachedBridgedStoreMode()); export default rawGuildEmojiStore;