127 lines
3.8 KiB
TypeScript
127 lines
3.8 KiB
TypeScript
// 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;
|