Перейти к содержанию

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>