UNPKG

seyfert

Version:

The most advanced framework for discord bots

65 lines (64 loc) 2.76 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Members = void 0; const transformers_1 = require("../../client/transformers"); const common_1 = require("../../common"); const guild_based_1 = require("./default/guild-based"); class Members extends guild_based_1.GuildBasedResource { namespace = 'member'; //@ts-expect-error filter(data, id, guild_id, from) { return true; } parse(data, key, guild_id) { const { user, ...rest } = super.parse(data, data.user?.id ?? key, guild_id); return rest; } get(id, guild) { return (0, common_1.fakePromise)(super.get(id, guild)).then(rawMember => (0, common_1.fakePromise)(this.client.cache.users?.raw(id)).then(user => rawMember && user ? transformers_1.Transformers.GuildMember(this.client, rawMember, user, guild) : undefined)); } raw(id, guild) { return (0, common_1.fakePromise)(super.get(id, guild)).then(rawMember => { return (0, common_1.fakePromise)(this.client.cache.users?.raw(id)).then(user => rawMember && user ? { ...rawMember, user, } : undefined); }); } bulk(ids, guild) { return (0, common_1.fakePromise)(super.bulk(ids, guild)).then(members => (0, common_1.fakePromise)(this.client.cache.users?.bulkRaw(ids)).then(users => members .map(rawMember => { const user = users?.find(x => x.id === rawMember.id); return user ? transformers_1.Transformers.GuildMember(this.client, rawMember, user, guild) : undefined; }) .filter(x => x !== undefined))); } bulkRaw(ids, guild) { return super.bulk(ids, guild); } values(guild) { return (0, common_1.fakePromise)(super.values(guild)).then(members => (0, common_1.fakePromise)(this.client.cache.users?.valuesRaw()).then(users => members .map(rawMember => { const user = users?.find(x => x.id === rawMember.id); return user ? transformers_1.Transformers.GuildMember(this.client, rawMember, user, rawMember.guild_id) : undefined; }) .filter(x => x !== undefined))); } valuesRaw(guild) { return super.values(guild); } async set(from, __keys, guild, data) { const keys = Array.isArray(__keys) ? __keys : [[__keys, data]]; const bulkData = []; for (const [id, value] of keys) { if (value.user) { bulkData.push([from, 'members', value, id, guild]); bulkData.push([from, 'users', value.user, id]); } } await this.cache.bulkSet(bulkData); } } exports.Members = Members;