231 lines
7.7 KiB
TypeScript
231 lines
7.7 KiB
TypeScript
// Module ID: 1234
|
|
// Function ID: 1235
|
|
// Name: user_settings/UserSettingsUtils
|
|
// Dependencies: [32, 1096, 1086, 1198, 1233, 1235, 1227, 12, 2]
|
|
// Exports: b64ToPreloadedUserSettingsProto, b64ToProtoWithType, mergeTopLevelFields, mutateUserChannelSettings, mutateUserChannelSettingsInternal, mutateUserGuildSettings, mutateUserGuildSettingsInternal, protoToB64, protoToB64WithType, runMigrations, serializeUsageHistory
|
|
|
|
// Module 1234 (user_settings/UserSettingsUtils)
|
|
import _modDef12 from "module_12" /* 12 */;
|
|
import Constants from "Constants" /* 1086 */;
|
|
import UserSettingsConstants from "UserSettingsConstants" /* 1096 */;
|
|
import preloaded_user_settings from "preloaded_user_settings" /* 1198 */;
|
|
import user_settings_shared from "user_settings_shared" /* 1227 */;
|
|
import frecency_user_settings from "frecency_user_settings" /* 1233 */;
|
|
import ProtoUtils from "ProtoUtils" /* 1235 */;
|
|
import _slicedToArray from "_slicedToArray" /* 32 */;
|
|
import size from "module_2" /* 2 */;
|
|
|
|
let FRECENCY_AND_FAVORITES_SETTINGS;
|
|
let PRELOADED_USER_SETTINGS;
|
|
function b64ToProto(arg0, arg1) {
|
|
if (null == arg1) {
|
|
return null;
|
|
} else {
|
|
try {
|
|
obj = ProtoUtils;
|
|
return obj.b64ToProto(arg0, arg1);
|
|
} catch (tmp4) {
|
|
const _Error = Error;
|
|
const _HermesInternal = HermesInternal;
|
|
const self = this;
|
|
const self2 = this;
|
|
const error = new Error("Settings proto failed to deserialize (potentially corrupt): " + tmp4);
|
|
throw error;
|
|
}
|
|
}
|
|
}
|
|
const UserSettingsTypes = UserSettingsConstants.UserSettingsTypes;
|
|
const ZERO_STRING_GUILD_ID = Constants.ZERO_STRING_GUILD_ID;
|
|
let obj = { [PRELOADED_USER_SETTINGS]: preloaded_user_settings.PreloadedUserSettings, [FRECENCY_AND_FAVORITES_SETTINGS]: frecency_user_settings.FrecencyUserSettings };
|
|
({ PRELOADED_USER_SETTINGS, FRECENCY_AND_FAVORITES_SETTINGS } = UserSettingsTypes);
|
|
const result = size.fileFinishedImporting("modules/user_settings/UserSettingsUtils.tsx");
|
|
|
|
export const b64ToProtoWithType = function b64ToProtoWithType(type, proto) {
|
|
let tmp = null;
|
|
if (null != proto) {
|
|
let tmp4 = null;
|
|
if (type in obj) {
|
|
tmp4 = b64ToProto(tmp3[type], proto);
|
|
}
|
|
tmp = tmp4;
|
|
}
|
|
return tmp;
|
|
};
|
|
export { b64ToProto };
|
|
export const b64ToPreloadedUserSettingsProto = function b64ToPreloadedUserSettingsProto(settings) {
|
|
return b64ToProto(preloaded_user_settings.PreloadedUserSettings, settings);
|
|
};
|
|
export const protoToB64WithType = function protoToB64WithType(arg0, arg1) {
|
|
const tmp = obj[arg0];
|
|
obj = ProtoUtils;
|
|
return obj.protoToB64(tmp, arg1);
|
|
};
|
|
export const protoToB64 = function protoToB64(arg0, arg1) {
|
|
obj = ProtoUtils;
|
|
return obj.protoToB64(arg0, arg1);
|
|
};
|
|
export const mergeTopLevelFields = function mergeTopLevelFields(ProtoClass, proto, proto2) {
|
|
obj = {};
|
|
const merged = Object.assign(proto);
|
|
for (const key10007 in proto2) {
|
|
delete obj[key10007];
|
|
continue;
|
|
}
|
|
ProtoClass.mergePartial(obj, proto2);
|
|
return obj;
|
|
};
|
|
export const mutateUserGuildSettings = function mutateUserGuildSettings(guilds, arg1, fn) {
|
|
if (null == guilds.guilds) {
|
|
const AllGuildSettings = preloaded_user_settings.AllGuildSettings;
|
|
guilds.guilds = AllGuildSettings.create();
|
|
}
|
|
let tmp3 = arg1;
|
|
guilds = guilds.guilds;
|
|
const tmp4 = null != arg1 && "null" !== tmp3;
|
|
if (!tmp4) {
|
|
tmp3 = ZERO_STRING_GUILD_ID;
|
|
}
|
|
if (!(tmp3 in guilds.guilds)) {
|
|
const guilds2 = guilds.guilds;
|
|
const GuildSettings = preloaded_user_settings.GuildSettings;
|
|
guilds2[tmp3] = GuildSettings.create();
|
|
}
|
|
return fn(guilds.guilds[tmp3]);
|
|
};
|
|
export const mutateUserGuildSettingsInternal = function mutateUserGuildSettingsInternal(guilds, arg1, f84599) {
|
|
let tmp = arg1;
|
|
const tmp2 = null != arg1 && "null" !== tmp;
|
|
if (!tmp2) {
|
|
tmp = ZERO_STRING_GUILD_ID;
|
|
}
|
|
if (!(tmp in guilds.guilds)) {
|
|
guilds = guilds.guilds;
|
|
const GuildSettings = preloaded_user_settings.GuildSettings;
|
|
guilds[tmp] = GuildSettings.create();
|
|
}
|
|
return f84599(guilds.guilds[tmp]);
|
|
};
|
|
export const mutateUserChannelSettings = function mutateUserChannelSettings(guilds, arg1, id, fn) {
|
|
if (null == guilds.guilds) {
|
|
const AllGuildSettings = preloaded_user_settings.AllGuildSettings;
|
|
guilds.guilds = AllGuildSettings.create();
|
|
}
|
|
let tmp3 = arg1;
|
|
guilds = guilds.guilds;
|
|
const tmp4 = null != arg1 && "null" !== tmp3;
|
|
if (!tmp4) {
|
|
tmp3 = ZERO_STRING_GUILD_ID;
|
|
}
|
|
if (!(tmp3 in guilds.guilds)) {
|
|
const guilds2 = guilds.guilds;
|
|
const GuildSettings = preloaded_user_settings.GuildSettings;
|
|
guilds2[tmp3] = GuildSettings.create();
|
|
}
|
|
if (!(id in guilds.guilds[tmp3].channels)) {
|
|
const channels = tmp7.channels;
|
|
const ChannelSettings = preloaded_user_settings.ChannelSettings;
|
|
channels[id] = ChannelSettings.create();
|
|
}
|
|
return fn(guilds.guilds[tmp3].channels[id]);
|
|
};
|
|
export const mutateUserChannelSettingsInternal = function mutateUserChannelSettingsInternal(channels, arg1, f84599) {
|
|
if (!(arg1 in channels.channels)) {
|
|
channels = channels.channels;
|
|
const ChannelSettings = preloaded_user_settings.ChannelSettings;
|
|
channels[arg1] = ChannelSettings.create();
|
|
}
|
|
return f84599(channels.channels[arg1]);
|
|
};
|
|
export const runMigrations = function runMigrations(proto, arg1) {
|
|
if (null == proto.versions) {
|
|
const Versions = user_settings_shared.Versions;
|
|
proto.versions = Versions.create();
|
|
}
|
|
let num = 0;
|
|
const iter = arg1[Symbol.iterator]();
|
|
const nextResult = iter.next();
|
|
while (iter !== undefined) {
|
|
if (nextResult.version <= num) {
|
|
let tmp7 = globalThis;
|
|
let _Error = Error;
|
|
let str = "Migrations are out of order or there is a duplicate version";
|
|
throw Error("Migrations are out of order or there is a duplicate version");
|
|
} else {
|
|
num = tmp4.version;
|
|
continue;
|
|
}
|
|
}
|
|
let flag = false;
|
|
const items = [];
|
|
const tmp8 = Math.random() < 0.1;
|
|
const iter2 = arg1[Symbol.iterator]();
|
|
const nextResult1 = iter2.next();
|
|
while (iter2 !== undefined) {
|
|
obj = nextResult1;
|
|
if (nextResult1.version <= proto.versions.clientVersion) {
|
|
if (tmp8) {
|
|
let cleanup2 = obj.cleanup;
|
|
if (cleanup2 != null) {
|
|
let cleanup2Result = cleanup2();
|
|
}
|
|
}
|
|
} else {
|
|
proto.versions.clientVersion = obj.version;
|
|
if (false !== obj.run(proto)) {
|
|
flag = true;
|
|
if (null != obj.cleanup) {
|
|
let arr = items.push(obj.cleanup);
|
|
}
|
|
} else {
|
|
let cleanup = obj.cleanup;
|
|
if (cleanup != null) {
|
|
let cleanupResult = cleanup();
|
|
}
|
|
}
|
|
}
|
|
continue;
|
|
}
|
|
return { proto, isDirty: flag, cleanupFuncs: items };
|
|
};
|
|
export const serializeUsageHistory = function serializeUsageHistory(usageHistory, arg1) {
|
|
let first;
|
|
let length;
|
|
let recentUses;
|
|
let tmp10;
|
|
const entries = Object.entries(usageHistory);
|
|
let tmp = entries;
|
|
if (entries.length > arg1) {
|
|
obj = _modDef12;
|
|
const sortByResult = obj.sortBy(entries, (arg0) => {
|
|
let tmp;
|
|
[, tmp] = arg0;
|
|
return tmp.recentUses[tmp.recentUses.length - 1];
|
|
});
|
|
const reversed = sortByResult.reverse();
|
|
tmp = reversed;
|
|
if (reversed.length > arg1) {
|
|
do {
|
|
let arr = reversed.pop();
|
|
tmp = reversed;
|
|
length = reversed.length;
|
|
} while (length > arg1);
|
|
}
|
|
}
|
|
const obj2 = {};
|
|
const tmp5 = tmp[Symbol.iterator]();
|
|
while (tmp5 !== undefined) {
|
|
[first, tmp10] = tmp6;
|
|
let FrecencyItem = frecency_user_settings.FrecencyItem;
|
|
let obj3 = FrecencyItem.create();
|
|
({ frecency: tmp13.frecency, recentUses } = tmp10);
|
|
let found = recentUses.filter((item) => null != item && item > 0);
|
|
let _String = String;
|
|
obj3.recentUses = found.map(String);
|
|
let _Math = Math;
|
|
obj3.score = Math.round(tmp10.score);
|
|
obj3.totalUses = tmp10.totalUses;
|
|
obj2[first] = obj3;
|
|
continue;
|
|
}
|
|
return obj2;
|
|
};
|