1.4.3 • Published 1 year ago

@pawika/utils v1.4.3

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

@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

ParamType
arrayArray<T>
sizenumber

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

ParamType
arrayArray<T>
iterateefunction

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

ParamType
arrayArray<T>

Example

compact([0, 1, false, 2, "", 3]);
// [1, 2, 3]

sum(array: Array<number>): number

Вычисляет сумму значений в массиве.

ParamType
arrayArray<number>

Example

sum([4, 2, 8, 6]);
// 20

randomBigInt(bits: number): bigint

Возвращает случайное целое число в формате BigInt

ParamTypeDefault
bitsnumber64

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

ParamTypeDefault
sizenumber21

Example

randomUID(100);
// iFA27Jf8Jtn7WpqN-S2mw1nrBt9j8cbtxkb1q672C5RZOGcI5UrlSJUmlswiuqYzZfC6TxVkonf0YwiOX-bMLTJXRTg0zokfhR_2

randomUID();
// Qt8kPUze4vD3akfa4NNHX

inspectFmt(data: unknown, compact?: boolean): string

Форматирует в строку через inspect из node:util данные принимаемые в data

ParamTypeDefaultDescription
dataunknownЛюбое значение
compactbooleanfalseЕсли установить для этого параметра значение «false», каждый ключ объекта будет отображаться в новой строке. По умолчанию false

Example

inspectFmt({ name: "ivan", age: 11 });
// {
//   name: 'ivan',
//   age: 11
// }

jsonFmt(data: unknown, space?: number): string

Форматирует в строку через JSON.stringify данные принимаемые в data

ParamTypeDescription
dataunknownЛюбое значение
spacenumberДобавляет отступы, пробелы и символы разрыва строки в текст JSON возвращаемого значения, чтобы его было легче читать. По умолчанию равен 2

Example

jsonFmt({ name: "ivan", age: 11 });
// {
//   "name": "ivan",
//   "age": 11
// }

shieldingSymbols(val?: string): string | undefined

Экранирование символов в строке для mongodb

Returns: string | null - Строка с экранированными символами

ParamTypeDescription
valstringИсходная строка

Example

shieldingSymbols("-[]{}()*+?.,\\^$|#");
// \-\[\]\{\}\(\)\*\+\?\.\,\\\^\$\|\#

toString(val: unknown): string

Преобразует любое примитивное значение в строку

ParamType
valunknown

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

ParamType
objT

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

ParamType
valueany

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

ParamType
valueany

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

ParamType
valueany

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

ParamType
valueany

Example

isNumber(3);
// true

isNumber(Number.MIN_VALUE);
// true

isNumber(Infinity);
// true

isNumber("3");
// false

isDate(value: any): boolean

Возвращает true, если value является датой (Date).

ParamType
valueany

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).

ParamType
valueany

Example

isRegExp(new RegExp(/aboba/gi));
// true

isRegExp(1);
// false

Timestamp

Класс для работы со временем

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
1.4.3

1 year ago

1.4.2

1 year ago

1.3.2

1 year ago

1.3.1

1 year ago

1.3.0

1 year ago

1.2.7

1 year ago

1.1.1

1 year ago

1.1.0

1 year ago

1.2.6

1 year ago

1.2.5

1 year ago

1.2.4

1 year ago

1.2.3

1 year ago

1.2.2

1 year ago

1.2.1

1 year ago

1.0.2

1 year ago

1.0.1

1 year ago

1.0.0

1 year ago