1.13.3 • Published 7 months ago

@astral/utils v1.13.3

Weekly downloads
-
License
MIT
Repository
-
Last release
7 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

7 months ago

1.13.1

8 months ago

1.13.0

8 months ago

1.12.0

9 months ago

1.13.3

7 months ago

1.9.0

9 months ago

1.8.1

10 months ago

1.7.2

11 months ago

1.8.0

10 months ago

1.7.1

11 months ago

1.7.0

11 months ago

1.6.1

1 year ago

1.5.2

1 year ago

1.6.0

1 year ago

1.5.1

1 year ago

1.5.0

1 year ago

1.4.1

1 year ago

1.4.0

1 year ago

1.3.0

1 year ago

1.11.0

9 months ago

1.10.0

9 months ago

1.2.0

1 year ago

1.1.0

1 year ago

1.0.0

2 years ago

0.1.0

2 years ago