Класс Kodzero
Главный класс SDK для инициализации и работы с платформой Kodzero.
Импорт
typescript
import Kodzero from 'kodzero-front-sdk-alfa'Конструктор
typescript
new Kodzero(options: Options)Параметры
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
options.host | string | ✅ | URL бэкенда Kodzero |
options.authCollection | string | ✅ | Название коллекции для аутентификации |
Пример
typescript
const kodzero = new Kodzero({
host: 'https://api.example.com',
authCollection: 'auth'
})Свойства
host
Тип: string
URL бэкенда, указанный при инициализации.
typescript
console.log(kodzero.host) // 'https://api.example.com'authCollection
Тип: string
Название коллекции для аутентификации.
typescript
console.log(kodzero.authCollection) // 'auth'auth
Тип: KodzeroAuth
Модуль аутентификации. См. API: Аутентификация.
typescript
await kodzero.auth.login({ email, password })tokensManager
Тип: TokensManagerClass
Менеджер токенов для ручного управления access и refresh токенами.
typescript
console.log(kodzero.tokensManager.access) // текущий access token
console.log(kodzero.tokensManager.refresh) // текущий refresh tokenapi
Тип: FluidFetch
HTTP-клиент для выполнения запросов. Автоматически добавляет токен авторизации.
Методы
createModel<T, M>(options)
Создаёт модель для работы с коллекцией данных.
Сигнатура
typescript
createModel<T extends { _id: string | null }, M = {}>(
options: Omit<ModelOptions, 'host'>
): Model<T, M>Типовые параметры
| Параметр | Описание |
|---|---|
T | Интерфейс данных модели. Должен содержать _id: string | null |
M | Интерфейс кастомных методов (опционально) |
Параметры options
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
collection | string | ✅ | Название коллекции в базе данных |
schema | object | ❌ | Схема для валидации данных |
Возвращаемое значение
Класс модели с методами для работы с данными. См. API: Модели.
Пример
typescript
interface User {
_id: string | null
name: string
email: string
}
const User = kodzero.createModel<User>({
collection: 'users',
schema: {
_id: { type: String },
name: { type: String, required: true },
email: { type: String, required: true }
}
})Пример с кастомными методами
typescript
interface User {
_id: string | null
firstName: string
lastName: string
}
interface UserMethods {
getFullName: () => string
}
const User = kodzero.createModel<User, UserMethods>({
collection: 'users'
})
User.registerMethod('getFullName', function() {
const { firstName, lastName } = this.data()
return `${firstName} ${lastName}`
})TypeScript типы
Options
typescript
interface Options {
host: string
authCollection: string
}ModelOptions
typescript
interface ModelOptions {
host: string
collection: string
schema?: Record<string, any>
}Полный пример
typescript
import Kodzero from 'kodzero-front-sdk-alfa'
// Инициализация
const kodzero = new Kodzero({
host: 'https://api.example.com',
authCollection: 'auth'
})
// Авторизация
await kodzero.auth.login({
email: 'user@example.com',
password: 'password123'
})
// Создание модели
interface Task {
_id: string | null
title: string
completed: boolean
}
const Task = kodzero.createModel<Task>({
collection: 'tasks',
schema: {
_id: { type: String },
title: { type: String, required: true },
completed: { type: Boolean }
}
})
// Работа с данными
const tasks = await Task.findMany()
console.log(tasks)