@e22m4u/js-repository 0.1.16 → 0.1.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/.husky/pre-commit CHANGED
@@ -1,5 +1,6 @@
1
1
  npm run lint:fix
2
2
  npm run format
3
3
  npm run test
4
+ npm run build:cjs
4
5
 
5
6
  git add -A
package/.mocharc.json ADDED
@@ -0,0 +1,5 @@
1
+ {
2
+ "extension": ["js", "ts"],
3
+ "spec": "src/**/*.spec.{js,ts}",
4
+ "require": ["tsx"]
5
+ }
package/README.md CHANGED
@@ -1,8 +1,9 @@
1
1
  ## @e22m4u/js-repository
2
2
 
3
- Модуль для работы с базами данных для Node.js
3
+ ES-модуль для работы с базами данных для Node.js
4
4
 
5
5
  - [Установка](#Установка)
6
+ - [Импорт](#Импорт)
6
7
  - [Описание](#Описание)
7
8
  - [Пример](#Пример)
8
9
  - [Схема](#Схема)
@@ -33,6 +34,22 @@ npm install @e22m4u/js-repository
33
34
  | `memory` | виртуальная база в памяти процесса (не требует установки) |
34
35
  | `mongodb` | MongoDB - система управления NoSQL базами (*[установка](https://www.npmjs.com/package/@e22m4u/js-repository-mongodb-adapter))* |
35
36
 
37
+ ## Импорт
38
+
39
+ Модуль поддерживает ESM и CommonJS стандарты.
40
+
41
+ *ESM*
42
+
43
+ ```js
44
+ import {Schema} from '@e22m4u/js-repository';
45
+ ```
46
+
47
+ *CommonJS*
48
+
49
+ ```js
50
+ const {Schema} = require('@e22m4u/js-repository');
51
+ ```
52
+
36
53
  ## Описание
37
54
 
38
55
  Модуль позволяет абстрагироваться от различных интерфейсов баз данных,
@@ -87,7 +104,7 @@ flowchart TD
87
104
 
88
105
  ## Пример
89
106
 
90
- Определение источника данных, модели и добавление нового документа в коллекцию.
107
+ Объявление источника данных, модели и добавление нового документа в коллекцию.
91
108
 
92
109
  ```js
93
110
  import {Schema} from '@e22m4u/js-repository';
@@ -96,13 +113,13 @@ import {DataType} from '@e22m4u/js-repository';
96
113
  // создание экземпляра Schema
97
114
  const schema = new Schema();
98
115
 
99
- // определение источника "myMemory"
116
+ // объявление источника "myMemory"
100
117
  schema.defineDatasource({
101
118
  name: 'myMemory', // название нового источника
102
119
  adapter: 'memory', // выбранный адаптер
103
120
  });
104
121
 
105
- // определение модели "country"
122
+ // объявление модели "country"
106
123
  schema.defineModel({
107
124
  name: 'country', // название новой модели
108
125
  datasource: 'myMemory', // выбранный источник
@@ -180,8 +197,8 @@ const productRep = schema.getRepository('product');
180
197
 
181
198
  ## Источник данных
182
199
 
183
- Источник хранит название выбранного адаптера и его настройки. Определить
184
- новый источник можно методом `defineDatasource` экземпляра схемы.
200
+ Источник хранит название выбранного адаптера и его настройки. Определение
201
+ нового источника выполняется методом `defineDatasource` экземпляра схемы.
185
202
 
186
203
  **Параметры**
187
204
 
@@ -215,8 +232,8 @@ schema.defineDatasource({
215
232
 
216
233
  ## Модель
217
234
 
218
- Описывает структуру документа коллекции и связи к другим моделям. Определить
219
- новую модель можно методом `defineModel` экземпляра схемы.
235
+ Описывает структуру документа коллекции и связи к другим моделям. Определение
236
+ новой модели выполняется методом `defineModel` экземпляра схемы.
220
237
 
221
238
  **Параметры**
222
239
 
@@ -269,7 +286,7 @@ schema.defineModel({
269
286
  - `validate: string | array | object` см. [Валидаторы](#Валидаторы)
270
287
  - `unique: boolean | string` проверять значение на уникальность
271
288
 
272
- **unique**
289
+ **Параметр `unique`**
273
290
 
274
291
  Если значением параметра `unique` является `true` или `'strict'`, то выполняется
275
292
  строгая проверка на уникальность. В этом режиме [пустые значения](#Пустые-значения)
@@ -285,6 +302,13 @@ schema.defineModel({
285
302
  - `unique: 'sparse'` исключить из проверки [пустые значения](#Пустые-значения)
286
303
  - `unique: false | 'nonUnique'` не проверять на уникальность (по умолчанию)
287
304
 
305
+ В качестве значений параметра `unique` можно использовать предопределенные
306
+ константы как эквивалент строковых значений `strict`, `sparse` и `nonUnique`.
307
+
308
+ - `PropertyUniqueness.STRICT`
309
+ - `PropertyUniqueness.SPARSE`
310
+ - `PropertyUniqueness.NON_UNIQUE`
311
+
288
312
  **Примеры**
289
313
 
290
314
  Краткое определение свойств модели.
@@ -376,12 +400,12 @@ schema.defineModel({
376
400
 
377
401
  Валидатором является функция, в которую передается значение соответствующего
378
402
  поля перед записью в базу. Если во время проверки функция возвращает `false`,
379
- то выбрасывается стандартная ошибка. Когда ошибку нужно подменить, допускается
380
- ее выброс непосредственно внутри функции.
403
+ то выбрасывается стандартная ошибка. Подмена стандартной ошибки возможна
404
+ с помощью выброса пользовательской ошибки непосредственно внутри функции.
381
405
 
382
- Регистрация пользовательского валидатора происходит методом `addValidator`
383
- сервиса `PropertyValidatorRegistry`, который принимает название валидатора
384
- и саму функцию.
406
+ Регистрация пользовательского валидатора выполняется методом `addValidator`
407
+ сервиса `PropertyValidatorRegistry`, который принимает новое название
408
+ и функцию для проверки значения.
385
409
 
386
410
  **Пример**
387
411
 
package/build-cjs.js ADDED
@@ -0,0 +1,10 @@
1
+ import * as esbuild from 'esbuild';
2
+
3
+ await esbuild.build({
4
+ entryPoints: ['src/index.js'],
5
+ outfile: 'dist/cjs/index.cjs',
6
+ format: 'cjs',
7
+ platform: 'node',
8
+ target: ['node12'],
9
+ bundle: true,
10
+ });