1.13.3 • Published 5 months ago

@astral/utils v1.13.3

Weekly downloads
-
License
MIT
Repository
-
Last release
5 months ago

@astral/utils

Утилиты и функции общего назначения.

Table of contents


Installation

npm i --save @astral/utils
yarn add @astral/utils

base

base utils - Общие утилиты и функции

zeroPad

Утилита для генерации строковых чисел с заданным количеством символов, если число символов числа меньше необходимого.

import { zeroPad } from '@astral/utils';

// 001
zeroPad(1,3);

// 007
zeroPad(7,3);

// 111
zeroPad(111,3);

debounce

import { debounce } from '@astral/utils';

// Функция будет вызываться по истечению 300мс с момент последнего вызова
const debouncedFunc = debounce(() => { ... }, 300);
debouncedFunc();

// isPending
const debouncedFunc = debounce(() => { ... }, 300);
debouncedFunc.isPending // false
debouncedFunc();
debouncedFunc.isPending // true

// Отмена запланированного выполнения
const debouncedFunc = debounce(() => { ... }, 300);
debouncedFunc();
debouncedFunc.clear(); // отмена выполнения

Подробнее


uniqBy

Функция возвращает массив, содержащий только одну копию каждого элемента исходного списка. Подробнее


prop

Функция получает значение указанного свойства Подробнее


mergeDeep

Функция для объединения исходного объекта с целевым Подробнее


isPlainObject

Утилита для проверки, является ли значение простым объектом Подробнее


date

Утилиты и функции работы с датами

addHours

Утилита добавляющая к дате указанное количество часов

import { addHours } from '@astral/utils';

// 2024-01-01T05:00:00 - функция добавит 5 часов
addHours(new Date('2024-01-01T00:00:00'), 5);

addDays

Утилита добавляющая к дате указанное количество дней

import { addDays } from '@astral/utils';

// 01.10.2024 - функция добавит 10 дней
addDays(new Date('01.01.2024'), 10);

addMonths

Утилита добавляющая к дате указанное количество месяцев

import { addMonths } from '@astral/utils';

// 04.01.2024 - функция добавит 4 месяца
addMonths(new Date('01.01.2024'), 4);

addYears

Утилита добавляющая к дате указанное количество лет

import { addYears } from '@astral/utils';

// 01.01.2024 - функция добавит 4 года
addYears(new Date('01.01.2020'), 4);

isDate

Утилита проверки значения на валидность даты

import { isDate } from '@astral/utils';

// true
isDate(new Date('01.01.2020'));

// true
isDate('01.01.2020');


// true
isDate(2024);


// false
isDate(undefined);

// false
isDate(null);

// false
isDate('some string');

declension

Утилиты и функции для работы со склонениями слов

declensionOfWords

Базовая утилита для работы со склонениями

import { declensionOfWords } from '@astral/utils';

// Возвращает функцию для склонения слова 'документ'
const declensionDocument = declensionOfWords(['документ', 'документа', 'документов']);

declensionDay

Утилита для склонения дней

import { declensionDay } from '@astral/utils';

// вернет 'день'
declensionDay(1); 

// вернет 'дня'
declensionDay(2); 

// вернет 'дней'
declensionDay(5); 

declensionMonth

Утилита для склонения месяцев

import { declensionMonth } from '@astral/utils';

// вернет 'месяц'
declensionMonth(1); 

// вернет 'месяца'
declensionMonth(2); 

// вернет 'месяцев'
declensionMonth(5); 

declensionYear

Утилита для склонения лет

import { declensionYear } from '@astral/utils';

// вернет 'год'
declensionYear(1); 

// вернет 'года'
declensionYear(2); 

// вернет 'лет'
declensionYear(5); 

file

Утилиты и функции для работы с файлами

formatFileSizeToView

Функция, которая возвращает размер файла с единицами измерения.

import { formatFileSizeToView } from '@astral/utils';

// 1.00 Б
formatFileSizeToView(1);


// 5.00 Кб
formatFileSizeToView(5 * 1024);


// 5.00 Мб
formatFileSizeToView(5 * 1024 * 1024);

// 0 Б
formatFileSizeToView(0);

formatFileTypeToView

Функция, которая возвращает расширение файла

import { formatFileTypeToView } from '@astral/utils';

// jpeg
formatFileTypeToView('.jpeg');


// pdf
formatFileTypeToView('application/pdf');

getAllFileExtensions

Функция, которая возвращает массив расширений файлов для указанного MIME-типа

import { getAllFileExtensions } from '@astral/utils';

// ['jpg', 'jpeg', 'jpe']
getAllFileExtensions('image/jpeg') 


// ['pdf']
getAllFileExtensions('application/pdf');

getFileExtension

Функция, которая возвращает расширение файла на основе переданного типа

import { getFileExtension } from '@astral/utils';


// jpg
getFileExtension('image/jpeg');


// pdf
getFileExtension('application/pdf');

getFileType

Определяет MIME-тип файла по его расширению

import { getFileType } from '@astral/utils';

// application/pdf
getFileType('pdf');

phone

Утилиты и функции работы с номерами телефона

formatPhoneToView

Форматирование номера телефона по маске

import { formatPhoneToView } from '@astral/utils';

// +7 (999) 999-99-99
formatPhoneToView('79999999999');


// 8 (999) 999-99-99
formatPhoneToView('79999999999',{
    isStartWithPlus: false,
});


// undefined
formatPhoneToView();

normalizePhone

Нормализует мобильный номер телефона:

  • Удаляет все нецифровые символы
  • Заменяет первую цифру 8 на 7
import { normalizePhone } from '@astral/utils';

// 79999999999
normalizePhone('+7 (999) 999-99-99');

// 79999999999
normalizePhone('8/999/999-99-99');

// ''
normalizePhone('');

checkPhone

Возвращает true, если строка является мобильным телефоном. Необходимо передавать нормализованное значение (без маски)

import { checkPhone } from '@astral/utils';

// true
checkPhone('79001234567');


// false
checkPhone('79999999999@phone.ru');

email

Утилиты и функции работы с email

checkProbablyEmail

Возвращает true, если в строке есть буквы (кириллица или латиница) или символ @

import { checkProbablyEmail } from '@astral/utils';

// true
checkProbablyEmail('привет');
checkProbablyEmail('hello');
checkProbablyEmail('привет@hello');
checkProbablyEmail('@');


// false
checkProbablyEmail('1234567890');

number

Утилиты и функции для работы с числами

formatNumberToCurrency

Форматирование чисел или строк в формат валюты

import { formatNumberToCurrency } from '@astral/utils';

// "10 000 ₽"
formatNumberToCurrency({ amount: '10000' });

// "100 ₽"
formatNumberToCurrency({ amount: 100 });

// "0 ₽"
formatNumberToCurrency({ amount: 0 });

// "Бесплатно"
formatNumberToCurrency({
  amount: 0,
  isTextInsteadOfZeroFormat: true,
});

// "Даром"
formatNumberToCurrency({
  amount: 0,
  isTextInsteadOfZeroFormat: true,
  zeroSumPlaceholder: "Даром",
});
1.13.2

5 months ago

1.13.1

6 months ago

1.13.0

6 months ago

1.12.0

7 months ago

1.13.3

5 months ago

1.9.0

7 months ago

1.8.1

8 months ago

1.7.2

9 months ago

1.8.0

8 months ago

1.7.1

9 months ago

1.7.0

9 months ago

1.6.1

11 months ago

1.5.2

11 months ago

1.6.0

11 months ago

1.5.1

11 months ago

1.5.0

11 months ago

1.4.1

11 months ago

1.4.0

11 months ago

1.3.0

11 months ago

1.11.0

7 months ago

1.10.0

7 months ago

1.2.0

1 year ago

1.1.0

1 year ago

1.0.0

1 year ago

0.1.0

1 year ago