Skip to content

GlobalRuniumStorage ​

Управление хранилищем данных (чтение/запись файлов).

TIP

При работе с хранилищем плагина рекомендуется хранить данные в отдельной директории с именем плагина.

Методы ​

НаименованиеОписание
readПрочитать данные из файла
writeЗаписать данные в файл
readJsonПрочитать JSON данные из файла
writeJsonЗаписать JSON данные в файл
isExistsПроверить существование файла или директории
removeУдалить файл или директорию рекурсивно
ensureDirExistsСоздать директорию рекурсивно, если не существует
getPathПолучить абсолютный путь для пути хранилища
createAtomicWriterСоздать атомарный писатель файлов

Типы ​

StoragePath ​

typescript
type StoragePath = string | string[]

Путь к файлу или директории в хранилище. Может быть строкой или массивом строк.

Описание методов ​

read ​

typescript
read(path: StoragePath): Promise<string>

Читает данные из файла.

Параметры:

  • path (StoragePath) - путь к файлу

Возвращает: Promise<string> - содержимое файла

Пример:

typescript
const content = await runium.storage.read([
  "some-plugin",
  "config",
  "settings.txt",
])
runium.output.info("File content:", content)

write ​

typescript
write(path: StoragePath, data: string): Promise<void>

Записывает данные в файл.

Параметры:

  • path (StoragePath) - путь к файлу
  • data (string) - данные для записи

Пример:

typescript
await runium.storage.write(
  ["some-plugin", "config", "settings.txt"],
  "Hello World"
)

readJson ​

typescript
readJson<T = JSONObject>(path: StoragePath): Promise<T>

Читает JSON данные из файла.

Параметры:

  • path (StoragePath) - путь к файлу

Возвращает: Promise<T> - распарсенные JSON данные

Пример:

typescript
interface Config {
  name: string
  version: string
}

const config = await runium.storage.readJson<Config>([
  "some-plugin",
  "config",
  "app.json",
])
runium.output.info("Config:", config)

writeJson ​

typescript
writeJson<T = JSONObject>(path: StoragePath, data: T): Promise<void>

Записывает JSON данные в файл.

Параметры:

  • path (StoragePath) - путь к файлу
  • data (T) - данные для записи

Пример:

typescript
await runium.storage.writeJson(["some-plugin", "config", "app.json"], {
  name: "my-app",
  version: "1.0.0",
})

isExists ​

typescript
isExists(path: StoragePath): Promise<boolean>

Проверяет существование файла или директории.

Параметры:

  • path (StoragePath) - путь к файлу или директории

Возвращает: Promise<boolean> - true, если файл или директория существует

Пример:

typescript
const exists = await runium.storage.isExists([
  "some-plugin",
  "config",
  "app.json",
])
if (exists) {
  runium.output.info("File exists")
}

remove ​

typescript
remove(path: StoragePath): Promise<void>

Удаляет файл или директорию рекурсивно.

Параметры:

  • path (StoragePath) - путь к файлу или директории

Пример:

typescript
await runium.storage.remove(["some-plugin", "temp", "cache"])

ensureDirExists ​

typescript
ensureDirExists(path: StoragePath): Promise<void>

Создает директорию рекурсивно, если она не существует.

Параметры:

  • path (StoragePath) - путь к директории

Пример:

typescript
await runium.storage.ensureDirExists(["some-plugin", "config", "cache"])

getPath ​

typescript
getPath(path: StoragePath): string

Получает абсолютный путь для пути хранилища.

Параметры:

  • path (StoragePath) - путь к файлу или директории

Возвращает: string - абсолютный путь

Пример:

typescript
const absolutePath = runium.storage.getPath([
  "some-plugin",
  "config",
  "app.json",
])
runium.output.info("Absolute path:", absolutePath)

createAtomicWriter ​

typescript
createAtomicWriter(path: StoragePath): StorageAtomicWriter

Создает атомарный писатель файлов. Атомарная запись гарантирует, что файл будет записан полностью или не будет записан вообще.

TIP

Рекомендуется применять атомарную запись при частых операциях записи в один и тот же файл.

Параметры:

  • path (StoragePath) - путь к файлу

Возвращает: StorageAtomicWriter - атомарный писатель

Пример:

typescript
const writer = runium.storage.createAtomicWriter([
  "some-plugin",
  "config",
  "app.json",
])
await writer.writeJson({ name: "my-app", version: "1.0.0" })