0.0.1 • Published 6 months ago

@e22m4u/js-empty-values v0.0.1

Weekly downloads
-
License
MIT
Repository
github
Last release
6 months ago

@e22m4u/js-empty-values

Сервис определения пустых значений для JavaScript.

Установка

npm install @e22m4u/js-empty-values

Модуль поддерживает ESM и CommonJS стандарты.

ESM

import {EmptyValuesService} from '@e22m4u/js-empty-values';

CommonJS

const {EmptyValuesService} = require('@e22m4u/js-empty-values');

Описание

Модуль позволяет задать набор пустых значений для каждого типа данных, и проверять наличие значения в данном наборе. Ниже приводится список предустановленных пустых значений для каждого типа, которые можно при необходимости изменить.

константатиппустые значения
DataType.ANY'any'undefined, null
DataType.STRING'string'undefined, null, ''
DataType.NUMBER'number'undefined, null, 0
DataType.BOOLEAN'boolean'undefined, null
DataType.ARRAY'array'undefined, null, []
DataType.OBJECT'object'undefined, null, {}

В первой колонке указаны константы каждого типа, которые могут быть использованы вместо строки названия типа (вторая колонка).

Использование

Модуль экспортирует класс-сервис EmptyValuesService, и перед тем как использовать его интерфейс, требуется создать экземпляр данного класса.

import {EmptyValuesService} from '@e22m4u/js-empty-values';

const emptyValues = new EmptyValuesService();

Проверка отсутствия значения

Для проверки отсутствия полезной нагрузки используется метод isEmpty, принимающий проверяемое значение первым аргументом. Ниже приводится пример проверки значений разных типов используя стандартные параметры сервиса.

emptyValues.isEmpty('');           // true
emptyValues.isEmpty(0);            // true
emptyValues.isEmpty([]);           // true
emptyValues.isEmpty({});           // true
emptyValues.isEmpty(null);         // true
emptyValues.isEmpty(undefined);    // true

emptyValues.isEmpty('myString');   // false
emptyValues.isEmpty(10);           // false
emptyValues.isEmpty(true);         // false
emptyValues.isEmpty(false);        // false
emptyValues.isEmpty([1, 2, 3]);    // false
emptyValues.isEmpty({foo: 'bar'}); // false

Метод isEmpty автоматически определяет тип проверяемого значения и выполняет поиск в соответствующем наборе пустых значений. Стоит отметить, что undefined и null определяются как тип any, для которого есть собственный набор значений не имеющих полезной нагрузки (см. описание).

Проверка с указанием типа

Проверку отсутствия значения можно ограничить по набору определенного типа, указав нужный тип первым, а проверяемое значение вторым аргументом метода isEmptyByType.

emptyValues.isEmptyByType(DataType.STRING, '');        // true
emptyValues.isEmptyByType(DataType.STRING, 0);         // false
emptyValues.isEmptyByType(DataType.STRING, []);        // false
emptyValues.isEmptyByType(DataType.STRING, {});        // false
emptyValues.isEmptyByType(DataType.STRING, null);      // true
emptyValues.isEmptyByType(DataType.STRING, undefined); // true

Так как стандартный набор пустых значений для указанного типа DataType.STRING содержит только undefined, null и '', остальные значения не являются пустыми при данной проверке.

Изменение набора пустых значений

Метод setEmptyValuesOf позволяет задать набор пустых значений для определенного типа, передав первым аргументом сам тип, а вторым массив значений не имеющих полезной нагрузки.

emptyValues.setEmptyValuesOf(DataType.NUMBER, [-1, 0]);

// проверка значений
emptyValues.isEmpty(-1); // true
emptyValues.isEmpty(0);  // true
emptyValues.isEmpty(1);  // false

Как видно из примера выше, значение -1 теперь определяется пустым.

Тесты

npm run test

Лицензия

MIT