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')
})
}}
/>
// ...