decord/source/modules/app_database/modules/ReadStates.tsx
github-actions e510164e6b chore: update source for alpha 346.2
Skipped 1 file(s) >100MB (GitHub limit): source/__polyfill/04xxx/module_4759.js (118.4 MB)
2026-09-10 05:38:07 +00:00

150 lines
5.1 KiB
TypeScript

// Module ID: 7504
// Function ID: 7505
// Name: ReadStates
// Dependencies: [5, 1957, 4589, 3, 1986, 12, 11, 2]
// Module 7504 (ReadStates)
import LoggerDefault from "Logger" /* 3 */;
import SnowflakeUtilsDefault from "SnowflakeUtils" /* 11 */;
import _modDef12 from "module_12" /* 12 */;
import DatabaseDaosDefault from "DatabaseDaos" /* 1986 */;
import asyncGeneratorStep from "asyncGeneratorStep" /* 5 */;
import ChannelStore from "ChannelStore" /* 1957 */;
import ReadStateStore from "ReadStateStore" /* 4589 */;
const logger = new LoggerDefault("ReadStates");
class ReadStates {
constructor() {
obj = Object.create(new.target.prototype);
closure_0 = obj;
obj.readStateVersion = null;
obj.actions = {
CONNECTION_OPEN(arg0) {
return obj.handleConnectionOpen(arg0);
},
CHANNEL_PINS_ACK(version) {
return obj.handleReadStateAction(version);
},
MESSAGE_ACK(version) {
return obj.handleReadStateAction(version);
},
BACKGROUND_SYNC_FINISHED(messagesOnly, arg1) {
if (!messagesOnly.messagesOnly) {
obj.handleWriteCaches(arg1, false);
}
},
WRITE_CACHES(arg0, arg1) {
return obj.handleWriteCaches(arg1, true);
}
};
return obj;
}
}
const prototype = ReadStates.prototype;
prototype["getAll"] = function getAll(arg0) {
closure_0 = arg0;
return (async () => {
const _performance2 = performance;
closure_128_0 = performance.now();
const states = tmp2(tmp5[4]).readStates(tmp2);
closure_128_1 = await states.getMany();
const _performance = performance;
closure_128_2 = performance.now();
const _HermesInternal = HermesInternal;
logger.log("asynchronously loaded in " + closure_128_2 - closure_128_0 + "ms (readStates: " + closure_128_1.length + ")");
return closure_128_1;
})();
};
prototype["resetInMemoryState"] = function resetInMemoryState() {
this.readStateVersion = null;
};
prototype["handleConnectionOpen"] = function handleConnectionOpen(readState) {
this.readStateVersion = readState.readState.version;
};
prototype["handleReadStateAction"] = function handleReadStateAction(version) {
if (null != this.readStateVersion) {
if (null != version.version) {
tmp.readStateVersion = version.version;
} else {
logger.log("Received null read states version", version);
}
}
};
prototype["handleWriteCaches"] = function handleWriteCaches(database, arg1) {
const allReadStates = ReadStateStore.getAllReadStates(false);
if (arg1) {
if (null != this.readStateVersion) {
let str2 = "0";
const _Object = Object;
const keys = Object.keys(ChannelStore.getMutablePrivateChannels());
const _Set = Set;
const set = new Set(keys);
const sorted = _modDef12(keys).sort(SnowflakeUtilsDefault.compare);
const obj10 = _modDef12(keys);
let str = sorted.reverse().value()[0];
if (str == null) {
str = "0";
}
let _lastMessageId = str;
const iter = allReadStates[Symbol.iterator]();
const nextResult = iter.next();
while (iter !== undefined) {
let tmp7 = nextResult;
if (null != nextResult._lastMessageId) {
let tmp35 = importDefault;
let obj12 = SnowflakeUtilsDefault;
if (1 === obj12.compare(tmp7._lastMessageId, str2)) {
str2 = tmp7._lastMessageId;
}
let hasItem = set.has(tmp7.channelId);
if (hasItem) {
let tmp35Result = tmp35(11);
hasItem = 1 === tmp35Result.compare(tmp7._lastMessageId, _lastMessageId);
}
if (hasItem) {
_lastMessageId = tmp7._lastMessageId;
}
}
continue;
}
const iter2 = sorted.reverse();
const result = DatabaseDaosDefault.nonGuildVersionsTransaction(database);
const obj = { id: "highest_last_message_id", versionString: str2 };
const items = [obj, , ];
const obj3 = { id: "private_channels_version", versionString: _lastMessageId };
items[1] = obj3;
const obj4 = { id: "read_state_version", version: tmp.readStateVersion };
items[2] = obj4;
result.putAll(items);
}
}
const statesTransaction = DatabaseDaosDefault.readStatesTransaction(database);
statesTransaction.delete();
const item = allReadStates.forEach((type) => statesTransaction.put("" + type.type + "-" + type.channelId, type));
};
let obj2 = Object.create(ReadStates.prototype);
let closure_129_0 = obj2;
obj2.readStateVersion = null;
obj2.actions = {
CONNECTION_OPEN(arg0) {
return obj.handleConnectionOpen(arg0);
},
CHANNEL_PINS_ACK(version) {
return obj.handleReadStateAction(version);
},
MESSAGE_ACK(version) {
return obj.handleReadStateAction(version);
},
BACKGROUND_SYNC_FINISHED(messagesOnly, arg1) {
if (!messagesOnly.messagesOnly) {
obj.handleWriteCaches(arg1, false);
}
},
WRITE_CACHES(arg0, arg1) {
return obj.handleWriteCaches(arg1, true);
}
};
const size = fn(2);
let result = size.fileFinishedImporting("modules/app_database/modules/ReadStates.tsx");
export default obj2;