Сервис централизованного управления пустыми значениями для JavaScript
|
|
4 дней назад | |
|---|---|---|
| .husky | 7 месяцев назад | |
| dist | 1 неделя назад | |
| src | 4 дней назад | |
| .c8rc | 7 месяцев назад | |
| .commitlintrc | 7 месяцев назад | |
| .editorconfig | 7 месяцев назад | |
| .gitignore | 7 месяцев назад | |
| .mocharc.json | 4 дней назад | |
| .prettierrc | 7 месяцев назад | |
| LICENSE | 4 месяцев назад | |
| README.md | 7 месяцев назад | |
| build-cjs.js | 7 месяцев назад | |
| eslint.config.js | 4 дней назад | |
| jsconfig.json | 4 дней назад | |
| package.json | 4 дней назад |
Сервис проверки и централизованного управления пустыми значениями для 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