|
|
@@ -19,6 +19,7 @@
|
|
|
- [Регистрация глобальных трансформеров](#регистрация-глобальных-трансформеров)
|
|
|
- [Локальные трансформеры](#локальные-трансформеры)
|
|
|
- [Пустые значения](#пустые-значения)
|
|
|
+ - [Переопределение пустых значений](#переопределение-пустых-значений)
|
|
|
- [Репозиторий](#репозиторий)
|
|
|
- [Фильтрация](#фильтрация)
|
|
|
- [Связи](#связи)
|
|
|
@@ -907,6 +908,62 @@ dbs.defineModel({
|
|
|
| `'array'` | `undefined`, `null`, `[]` |
|
|
|
| `'object'` | `undefined`, `null`, `{}` |
|
|
|
|
|
|
+### Переопределение пустых значений
|
|
|
+
|
|
|
+Набор пустых значений для любого типа данных можно переопределить. Управление
|
|
|
+этими наборами осуществляется через специальный сервис, который предоставляет
|
|
|
+модуль
|
|
|
+[@e22m4u/js-empty-values](https://www.npmjs.com/package/@e22m4u/js-empty-values)
|
|
|
+(не требует установки).
|
|
|
+
|
|
|
+**EmptyValuesService**
|
|
|
+
|
|
|
+Для переопределения пустых значений необходимо получить экземпляр данного
|
|
|
+сервиса из контейнера схемы и вызвать метод, который принимает тип данных
|
|
|
+и массив новых значений.
|
|
|
+
|
|
|
+Интерфейс:
|
|
|
+
|
|
|
+```ts
|
|
|
+class EmptyValuesService {
|
|
|
+ /**
|
|
|
+ * Установить пустые значения
|
|
|
+ * для определенного типа данных.
|
|
|
+ *
|
|
|
+ * @param dataType Тип данных.
|
|
|
+ * @param emptyValues Массив новых пустых значений.
|
|
|
+ */
|
|
|
+ setEmptyValuesOf(
|
|
|
+ dataType: DataType,
|
|
|
+ emptyValues: unknown[],
|
|
|
+ ): this;
|
|
|
+}
|
|
|
+```
|
|
|
+
|
|
|
+**Пример**
|
|
|
+
|
|
|
+По умолчанию, для числовых свойств значение `0` считается пустым. Следующий
|
|
|
+пример демонстрирует, как изменить это поведение, оставив в качестве пустых
|
|
|
+значений только `undefined` и `null`.
|
|
|
+
|
|
|
+```js
|
|
|
+import {DataType} from '@e22m4u/js-repository';
|
|
|
+import {DatabaseSchema} from '@e22m4u/js-repository';
|
|
|
+import {EmptyValuesService} from '@e22m4u/js-empty-values';
|
|
|
+
|
|
|
+const dbs = new DatabaseSchema();
|
|
|
+
|
|
|
+// получение сервиса для работы с пустыми значениями
|
|
|
+const emptyValuesService = dbs.getService(EmptyValuesService);
|
|
|
+
|
|
|
+// переопределение пустых значений для типа DataType.NUMBER
|
|
|
+emptyValuesService.setEmptyValuesOf(DataType.NUMBER, [undefined, null]);
|
|
|
+```
|
|
|
+
|
|
|
+После этого, значение `0` для свойств типа `DataType.NUMBER` больше не будет
|
|
|
+считаться пустым и будет проходить проверки валидаторами, а также не будет
|
|
|
+заменяться значением по умолчанию.
|
|
|
+
|
|
|
## Репозиторий
|
|
|
|
|
|
Выполняет операции чтения и записи документов определенной модели.
|