@e22m4u/js-empty-values v0.0.1
@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
6 months ago