Справочник API
Типы TypeScript
Все публичные типы экспортируются из корня пакета:
ts
import type {
// Цели хранилища
StorageTarget, // 'local' | 'session' | 'memory' | 'indexeddb'
// Базовые опции
StorageOptions,
CookieOptions,
EncryptOptions,
SignOptions,
CompressOptions,
SyncOptions,
// Миграции
Migration,
// Интерфейс сериализатора
Serializer,
// Внутренняя структура конверта
StorageEnvelope,
// Объединение ошибок
StorageError,
// { type: 'quota-exceeded'; key }
// { type: 'parse-error'; key; raw }
// { type: 'migration-failed'; from; to; error }
// { type: 'crypto-error'; operation; error }
// { type: 'write-failed'; key; error }
// { type: 'signature-invalid'; key }
// { type: 'read-failed'; key; error }
// Низкоуровневый интерфейс адаптера (все методы возвращают Promise)
StorageAdapter,
// Возвращаемые типы
UseStorageReturn,
UseIndexedDBReturn,
UseIDBRefReturn,
// Опции плагина
VueStoragePluginOptions,
} from 'vue-storage-kit'Дискриминированное объединение StorageError
ts
import type { StorageError } from 'vue-storage-kit'
function handleError(err: StorageError) {
switch (err.type) {
case 'quota-exceeded':
console.error('Storage full, key:', err.key)
break
case 'parse-error':
console.error('Could not parse', err.key, '— raw:', err.raw)
break
case 'migration-failed':
console.error(`Migration ${err.from} → ${err.to} failed:`, err.error)
break
case 'crypto-error':
console.error(`Crypto ${err.operation} failed:`, err.error)
break
case 'signature-invalid':
console.error('Tampered or corrupted signed value:', err.key)
break
case 'write-failed':
console.error('Non-quota write failure:', err.key, err.error)
break
case 'read-failed':
console.error('Could not read from storage:', err.key, err.error)
break
}
}Тип кастомного сериализатора
ts
import type { Serializer } from 'vue-storage-kit'
const msgpack: Serializer<unknown> = {
serialize: (v) => Buffer.from(encode(v)).toString('base64'),
deserialize: (s) => decode(Buffer.from(s, 'base64')),
}