@pawika/utils v1.4.3
@pawika/utils
Разные утилиты которые мне нужны в той или иной степени
Методы
chunk compact sum uniq randomBigInt randomUID factory inspectFmt jsonFmt shieldingSymbols clone Timestamp isNaN isNil isNumber isObject toString isDate isRegExp
chunk(array: Array<T>
, size: number
): Array<Array<T>>
Создает массив элементов, разбитых на группы длиной size
.
Если массив не может быть разделен равномерно, последним фрагментом будут оставшиеся элементы.
Source: https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L6839
Source: https://github.com/DustFoundation/utils/blob/main/src/functions/chunk.ts
Param | Type |
---|---|
array | Array<T> |
size | number |
Example
chunk(["a", "b", "c", "d"], 2);
// [['a', 'b'], ['c', 'd']]
chunk(["a", "b", "c", "d"], 3);
// [['a', 'b', 'c'], ['d']]
uniq(array: Array<T>
, iteratee: function
): Array<T>
Создает версию массива без дубликатов, используя === для проверки равенства объектов. В частности, сохраняется только первое вхождение каждого значения. Если вы хотите вычислить уникальные элементы на основе преобразования, передайте итерируемую функцию.
Source: https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L8417
Source: https://github.com/jashkenas/underscore/blob/master/modules/uniq.js
Param | Type |
---|---|
array | Array<T> |
iteratee | function |
compact(array: Array<T>
): Array<T>
Возвращает копию списка с удаленными всеми ложными значениями.
В JavaScript значения false
, null
, 0
, ""
, undefined
и NaN
являются ложными.
Source: https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L6874
Source: https://github.com/jashkenas/underscore/blob/master/modules/compact.js
Param | Type |
---|---|
array | Array<T> |
Example
compact([0, 1, false, 2, "", 3]);
// [1, 2, 3]
sum(array: Array<number>
): number
Вычисляет сумму значений в массиве.
Param | Type |
---|---|
array | Array<number> |
Example
sum([4, 2, 8, 6]);
// 20
randomBigInt(bits: number
): bigint
Возвращает случайное целое число в формате BigInt
Param | Type | Default |
---|---|---|
bits | number | 64 |
Example
randomBigInt(64);
// 9409313759732697550n
randomBigInt(128);
// 40800982229429306396968830979296370940n
randomBigInt(8);
// 1
randomUID(size: number
): string
Генерация рандомной строки с символаи (A-Za-z0-9_-
)
Source: https://github.com/ai/nanoid/blob/main/index.js
Param | Type | Default |
---|---|---|
size | number | 21 |
Example
randomUID(100);
// iFA27Jf8Jtn7WpqN-S2mw1nrBt9j8cbtxkb1q672C5RZOGcI5UrlSJUmlswiuqYzZfC6TxVkonf0YwiOX-bMLTJXRTg0zokfhR_2
randomUID();
// Qt8kPUze4vD3akfa4NNHX
inspectFmt(data: unknown
, compact?: boolean
): string
Форматирует в строку через inspect
из node:util
данные принимаемые в data
Param | Type | Default | Description |
---|---|---|---|
data | unknown | Любое значение | |
compact | boolean | false | Если установить для этого параметра значение «false», каждый ключ объекта будет отображаться в новой строке. По умолчанию false |
Example
inspectFmt({ name: "ivan", age: 11 });
// {
// name: 'ivan',
// age: 11
// }
jsonFmt(data: unknown
, space?: number
): string
Форматирует в строку через JSON.stringify
данные принимаемые в data
Param | Type | Description |
---|---|---|
data | unknown | Любое значение |
space | number | Добавляет отступы, пробелы и символы разрыва строки в текст JSON возвращаемого значения, чтобы его было легче читать. По умолчанию равен 2 |
Example
jsonFmt({ name: "ivan", age: 11 });
// {
// "name": "ivan",
// "age": 11
// }
shieldingSymbols(val?: string
): string
| undefined
Экранирование символов в строке для mongodb
Returns: string
| null
- Строка с экранированными символами
Param | Type | Description |
---|---|---|
val | string | Исходная строка |
Example
shieldingSymbols("-[]{}()*+?.,\\^$|#");
// \-\[\]\{\}\(\)\*\+\?\.\,\\\^\$\|\#
toString(val: unknown
): string
Преобразует любое примитивное значение в строку
Param | Type |
---|---|
val | unknown |
Example
toString(new ObjectId("638ed3299f694dd457ed54ad"));
// 638ed3299f694dd457ed54ad
clone<T
>(obj: T
): T
Создайте глубокую копию предоставленного простого объекта. Любые вложенные объекты или массивы будут дублироваться, а не скопированы по ссылке.
Source: https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L11087
Source: https://github.com/jashkenas/underscore/blob/master/modules/clone.js
Source: https://github.com/ramda/ramda/blob/v0.28.0/source/internal/_clone.js
Param | Type |
---|---|
obj | T |
isObject(value: any
): boolean
Возвращает true, если value
является типом Object
.
Source: https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L11743
Source: https://github.com/jashkenas/underscore/blob/master/modules/isObject.js
Param | Type |
---|---|
value | any |
Example
isObject({});
// true
isObject([1, 2, 3]);
// true
isObject(null);
// false
isNil(value: any
): boolean
Проверка value
на null
и undefined
Source: https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L11973
Param | Type |
---|---|
value | any |
Example
isNil(null);
// true
isNil(void 0);
// true
isNil(NaN);
// false
isNaN(value: any
): boolean
Возвращает true, если value
является значением NaN
.
Source: https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L11892
Source: https://github.com/jashkenas/underscore/blob/master/modules/isNaN.js
Param | Type |
---|---|
value | any |
Example
isNaN(NaN);
// true
isNaN(new Number(NaN));
// true
isNaN(undefined);
// true
isNaN(undefined);
// false
isNumber(value: any
): boolean
Возвращает true, если value
является числом (включая NaN).
Source: https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L12003
Source: https://github.com/jashkenas/underscore/blob/master/modules/isNumber.js
Param | Type |
---|---|
value | any |
Example
isNumber(3);
// true
isNumber(Number.MIN_VALUE);
// true
isNumber(Infinity);
// true
isNumber("3");
// false
isDate(value: any
): boolean
Возвращает true, если value
является датой (Date).
Param | Type |
---|---|
value | any |
Example
isDate(new Date());
// true
isDate(new Date(Number.MIN_VALUE));
// true
isDate(new Date(Number.MAX_VALUE));
// false
isDate(new Date(""));
// false
isRegExp(value: any
): boolean
Возвращает true, если value
является регуляркой (RegExp).
Param | Type |
---|---|
value | any |
Example
isRegExp(new RegExp(/aboba/gi));
// true
isRegExp(1);
// false
Timestamp
Класс для работы со временем
- Timestamp
- .unixtime:
number
- .milliseconds:
number
- .date:
Date
- .unixtime:
Timestamp.unixtime: number
Отдает время в unixtime
Example
Timestamp.unixtime;
// 1668283743
Timestamp.milliseconds: number
Отдает unixtime в миллисекундах
Example
Timestamp.milliseconds;
// 1668283704485
Timestamp.date: Date
Отдает время UTC
Example
Timestamp.date;
// 2022-11-12T20:08:47.676Z