1.4.0 • Published 1 year ago

@ws-serenity/js-prototypes v1.4.0

Weekly downloads
-
License
ISC
Repository
gitlab
Last release
1 year ago

Расширение стандартных JS-прототипов

Repository

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';
1.4.0

1 year ago

1.3.0

1 year ago

1.1.10

1 year ago

1.1.9

1 year ago

1.1.8

1 year ago

1.1.7

1 year ago

0.0.1

1 year ago

1.2.0

1 year ago

1.1.5

2 years ago

1.1.4

2 years ago