Interface: StorageDriver
Абстрактный Storage Driver API
Описывает одновременно стратегию и постоянного хранилища (база данных, файловая система), и временного (кэш, память). SDK активно использует обе стратегии под именами:
- storage - постоянное хранилище
- cache - временное хранилище
Пример
async (storage: StorageDriver) => {
await write(storage, { room: '323', topic: 'dinner' }, { foo: 'woo' });
expect(await read(storage, { room: '323', topic: 'dinner' })).toEqual({ foo: 'woo' });
expect(await read(storage, { room: '323', topic: 'dinner' })).toEqual({ foo: 'woo' });
expect(await take(storage, { room: '323', topic: 'dinner' })).toEqual({ foo: 'woo' });
expect(await take(storage, { room: '323', topic: 'dinner' })).toEqual(null);
};
Имплементировано
Методы
read
▸ read(meta
): Promise
<unknown
>
Чтение данных, хранящихся в предоставленной мете
Этот метод обычно используется в стратегии постоянного хранилища
Параметры
Имя | Тип | Описание |
---|---|---|
meta |
StorageMeta |
составной идентификатор |
Возвращает
Promise
<unknown
>
хранящиеся данные или null
, если такие не найдены
take
▸ take(meta
): Promise
<unknown
>
Принимает данные, хранящиеся внутри предоставленной меты и удаляет оригинал
Этот метод обычно применяется при использовании стратегии с временным хранилищем как способ удаления сохраненных записей.
Параметры
Имя | Тип | Описание |
---|---|---|
meta |
StorageMeta |
составной идентификатор |
Возвращает
Promise
<unknown
>
хранящиеся данные или null
, если такие не найдены
write
▸ write(meta
, data
): Promise
<void
>
Записывает блок данных в хранилище, уникально идентифицируется метой
Если такой блок уже существует, метод его переписывает
Параметры
Имя | Тип | Описание |
---|---|---|
meta |
StorageMeta |
составной идентификатор |
data |
unknown |
блок данных |
Возвращает
Promise
<void
>