@spectacles/cache
v0.3.12
Published
Caching for Discord data.
Downloads
8
Readme
Spectacles cache
Cache Discord objects in a cool way. Currently only supports Redis.
How to use
const { Client } = require('@spectacles/cache');
const Redis = require('ioredis');
const redis = new Redis();
const cache = new Client(redis); // client accepts an ioredis instance
(async () => {
const role = await cache.guilds['some id'].roles.get('some other id');
await cache.actions.guilds.upsert({ id: 'meme' }); // etc.
})();
Data structure
The internal data structures closely follows the format of data as returned from Discord. Every structure with an ID that is returned as an array will be converted to an object keyed by ID.
guilds
members
roles
presence
roles
emojis
voice_states
- keyed by user IDchannels
channels
overwrites
users
const memberRoles = await cache.guilds['some id'].members['some id'].roles.get();
// memberRoles is an object { [roleID]: ...roleInfo }
Actions
All actions have 3 methods: set
, upsert
, and delete
which behave as named. They are exposed on Client#actions
.
guilds
channels
users
roles
members
emojis
voiceStates
cache.actions.guilds.upsert(guild);