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" })