Skip to content

Класс Kodzero

Главный класс SDK для инициализации и работы с платформой Kodzero.

Импорт

typescript
import Kodzero from 'kodzero-front-sdk-alfa'

Конструктор

typescript
new Kodzero(options: Options)

Параметры

ПараметрТипОбязательныйОписание
options.hoststringURL бэкенда Kodzero
options.authCollectionstringНазвание коллекции для аутентификации

Пример

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 token

api

Тип: 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

ПараметрТипОбязательныйОписание
collectionstringНазвание коллекции в базе данных
schemaobjectСхема для валидации данных

Возвращаемое значение

Класс модели с методами для работы с данными. См. 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)

Опубликовано под лицензией ISC.