Skip to content

Начало работы

Настройка доступа к реестру

Пакет размещён в приватном npm-реестре GitLab. Для установки необходимо настроить доступ.

Глобальный .npmrc (рекомендуется)

Добавьте в ~/.npmrc:

@diealltagsfeen:registry=https://gitlab.com/api/v4/projects/80348419/packages/npm/
//gitlab.com/api/v4/projects/80348419/packages/npm/:_authToken=<YOUR_TOKEN>

Замените <YOUR_TOKEN> на персональный GitLab-токен с правом read_api.

ОСПуть к .npmrc
Linux~/.npmrc
macOS~/.npmrc
Windows%USERPROFILE%\.npmrc

Локальный .npmrc в проекте

Создайте .npmrc в корне проекта-потребителя с тем же содержимым. Обязательно добавьте .npmrc в .gitignore, чтобы токен не попал в репозиторий.

Установка

bash
npm install @diealltagsfeen/frontend-api-client

Инициализация

Перед использованием сервисов вызовите init():

js
import { init } from '@diealltagsfeen/frontend-api-client'

init({
  axios: axiosInstance,
  hosts: {
    business: 'https://...',
    contacts: 'https://...',
    user: 'https://...',
    history: 'https://...',
    file: 'https://...',
    task: 'https://...',
    notifications: 'https://...',
    documents: 'https://...',
    chat: 'https://...',
    learning: 'https://...',
    managerTimeTracker: 'https://...',
    monday: 'https://...',
  },
  onNotify: (message, color) => { /* UI уведомление */ },
  onError: (error, context) => { /* логирование ошибки */ },
})

Использование

После инициализации импортируйте нужные сервисы и типы DTO:

ts
import {
  clientService,
  type CreateClientRequestDto,
} from '@diealltagsfeen/frontend-api-client'

// Получить список клиентов (query-string строит вызывающий код)
const params = new URLSearchParams()
params.append('Pagination.CurrentPage', '1')
params.append('Pagination.RowsPerPage', '25')
params.append('ClientStatusFilters', '400')

const result = await clientService.GetTable(params.toString())
if (result) {
  // result: { successfully: true, ...payload }
  console.log(result)
}

// Создать клиента с типизированным телом запроса
const body: CreateClientRequestDto = { /* ... */ }
const created = await clientService.Create(body)

При ошибке HTTP-запроса или неуспешном ответе бэкенда HTTP-обёртка бросает ApiError или ProblemDetailsError (и вызывает onError). Оборачивайте вызовы в try/catch, если нужно обработать ошибку:

ts
import { ApiError } from '@diealltagsfeen/frontend-api-client'

try {
  const result = await clientService.GetById(123)
} catch (e) {
  if (e instanceof ApiError) {
    // e.status, e.title, e.data
  }
}

Подробнее о паттерне сервисов и обработке ответа — в разделе Сервисы.