@ws-serenity/js-prototypes
v1.4.0
Published
Extended JS prototypes to make your life easier!
Downloads
252
Keywords
Readme
Расширение стандартных JS-прототипов
Usages
Добавляет новые функции к стандартным "типам"
new Date().withoutTime();
'someString'.equals('SoMeString', 'ignoreCase');
[ 1, 2, 3 ].firstOrDefault();
Important
Пакет не имеет дополнительных зависимостей.
Для использования Date.format
необходимо установить date-fns
. Это peerDependency!
Date
// форматирует дату, используя date-fns
new Date().format('yyyy-MM-dd');
// создает копию
new Date().clone();
// возвращает дату без времени, не мутирует исходных объект
new Date().withoutTime();
String
// возвращает, содержит ли строка указанную.
// Вторым параметром передаются настройки строгости сравнения
'some string'.contains('some', 'strict'); // true
// возвращает, являются ли строки равными
// вторым параметром передаются настройки строгости сравнения
'some string'.equals('some String', 'ignoreCase'); // true
// переводит первую букву в заглавную. Остальная часть остается неизменной
'someString'.capitalize() // SomeString
// переводит первую букву в строчную. Остальная часть остается неизменной
'SomeString'.capitalize() // someString
// форматирует строку
'Some%s'.format(['String']) // SomeString
Array
// возвращает первый элемент, соответствующий предикату
// если предикат не указан, возвращается просто первый элемент
[ 1, 2, 3 ].firstOrDefault(it => it <= 2); // 2: number | null
[ 1, 2, 3 ].firstOrDefault(); // 1: number | null
[ 1, 2, 3 ].firstOrDefault(it => it > 10); // null
[].firstOrDefault(); // null
// работает аналогично с firstOrDefault, но выбрасывает ошибку, в случае, если совпадение не обнаружено
[ 1, 2, 3 ].firstOrThrow(it => it > 10);
// аналогично с firstOrDefault (firstOrThrow), но возвращает последний элемент
[ 1, 2, 3 ].lastOrDefault();
[ 1, 2, 3 ].lastOrThrow();
// поверхностная копия
[ 1, 2, 3 ].copy(); // [1,2,3]
// удаляет элементы, соответствующие условию, мутирует исходный массив,
// возвращает массив оставшихся объектов, если returnThis true, иначе - массив удаленных объектов
[ 1, 2, 3, 4, 5 ].remove(it => it > 3); // 4, 5
[ 1, 2, 3, 4, 5 ].remove(it => it > 3, true); // 1, 2, 3
// проверяет, содержит ли подмассив
[ 1, 2, 3 ].hasSubArray([ 1, 2 ]); // true
// возвращает пересечение двух массивов
[ 1, 2, 3 ].getIntersection([ 0, 1, 2 ]); // [1,2]
// удаляет дупликаты (distinct)
[ 1, 2, 2, '3', '3', 4 ].removeDuplicates(); // 1, 2, '3', 4
// есть также возможность указать компаратор для сравнения ссылочных типов
[ foo, bar, baz ].removeDuplicates((x, y) => x.foo === y.foo);
Использование в проекте
// in index.ts
// все прототипы
import '@ws-serenity/js-prototypes';
// конкретный
import '@ws-serenity/js-prototypes/lib/datePrototype';