axept-utils
TypeScript icon, indicating that this package has built-in type declarations

1.0.0 • Public • Published

JS Utils 🛠

Небольшой набор полезных функций, которые используются в большинстве проектов Axept.

Содержание

Установка

npm install js-utils

# или yarn

yarn add js-utils

API Reference

downloadFile

downloadFile(url, name, type, [options])

Скачивание файла с сервера.

Аргументы:

  • url (string): URL, по которому доступно скачивание файла
  • name (string): имя файла (так будет называться файл после скачивания)
  • type (string): тип скачиваемого файла (например, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet для XLS файла)
  • options (Object): содержит следующие поля
    • headers (Object): Заголовки http-запроса
    • options (Object): Опции http-запроса

Возвращает:

  • (Promise): файл, который будет скачан с сервера, либо ошибку

Пример:

import { downloadFile } from 'js-utils'

export function download(url, name) {
  return async dispatch => {
    dispatch({
      type: DOWNLOAD_REQUEST,
    })
    try {
      const response = await downloadFile(
        url,
        name,
        'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
        {
          headers: {
            'X-Token': '123123jdgk-1231-123knknks'
          },
          credentials: 'same-origin',
        },
      )
      dispatch({
        type: DOWNLOAD_SUCCESS,
        payload: response,
      })
      return Promise.resolve({
        ...response,
        reason: 'download',
      })
    } catch (response) {
      dispatch({
        type: DOWNLOAD_ERROR,
        payload: response,
        error: true,
      })
      return Promise.reject({
        ...response,
        reason: 'download',
      })
    }
  }
}

fetchJSON

fetchJSON(...args)

Возвращает:

  • (Promise): ответ, пришедший с сервера, либо ошибку

Усовершенствованный fetch. Включает в себя парсинг JSON, пришедшего с сервера и выброс ошибки в случае, если JSON не валидный. Также проверяет статус ответа с сервера.

Пример:

import { fetchJSON } from 'js-utils'

async function getBranches() {
  const response = await fetchJSON('/api/references/branches')
}

Аргументы:

  • ...args (Object): объект, который содержит параметры http-запроса

findPhoneMask

findPhoneMask(phone)

Автоматически определяет маску номера телефона по мере его ввода. Если маска не определится, то функция вернёт undefined.

Аргументы:

  • phone (string): номер телефона

Возвращает:

  • (string | undefined): маска введенного номера телефона, либо undefined, если маску не удасться определить

Пример:

findPhoneMask('123')
// => '+1 (###) ###-####'

findPhoneMask('0123')
// => undefined

uploadFile

uploadFile(url, file, [onProgress])

Загрузка файла на сервер.

Аргументы:

  • url (string): URL сервера, на который будет загружаться файл
  • file (File): файл, который будет загружаться на сервер
  • onProgress (Function): функция, которая обрабатывает прогресс загрузки файла на сервер

Возвращает:

  • (Promise): ответ с сервера

Пример:

import { uploadFile } from 'js-utils'

// ...
<input
  type="file"
  name="file"
  onChange={event => {
    uploadFile('/api/v1/file-server', event.target.files[0], () => {
      console.log('progress')
    })
  }}
/>
// ...

Readme

Keywords

Package Sidebar

Install

npm i axept-utils

Weekly Downloads

0

Version

1.0.0

License

MIT

Unpacked Size

179 kB

Total Files

19

Last publish

Collaborators

  • denisaxept