Тема
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" })