@bedrockio/model 0.12.0 → 0.12.1
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/CHANGELOG.md +4 -0
- package/dist/cjs/search.js +4 -3
- package/dist/cjs/utils.js +4 -0
- package/dist/cjs/validation.js +1 -1
- package/package.json +2 -2
- package/src/search.js +9 -3
- package/src/utils.js +4 -0
- package/src/validation.js +1 -1
- package/types/search.d.ts.map +1 -1
- package/types/utils.d.ts +1 -0
- package/types/utils.d.ts.map +1 -1
- package/types/validation.d.ts.map +1 -1
package/CHANGELOG.md
CHANGED
package/dist/cjs/search.js
CHANGED
|
@@ -360,11 +360,12 @@ function isEmptyArrayQuery(schema, key, value) {
|
|
|
360
360
|
return !isMongoOperator(key) && (0, _utils.isArrayField)(schema, key) && value === null;
|
|
361
361
|
}
|
|
362
362
|
function isRangeQuery(schema, key, value) {
|
|
363
|
-
|
|
364
|
-
if (!(0, _utils.isDateField)(schema, key) && !(0, _utils.isNumberField)(schema, key)) {
|
|
363
|
+
if (!(0, _lodash.isPlainObject)(value)) {
|
|
365
364
|
return false;
|
|
366
365
|
}
|
|
367
|
-
|
|
366
|
+
|
|
367
|
+
// Range queries allowed on Date, Number, and String fields.
|
|
368
|
+
return (0, _utils.isDateField)(schema, key) || (0, _utils.isNumberField)(schema, key) || (0, _utils.isStringField)(schema, key);
|
|
368
369
|
}
|
|
369
370
|
function mapOperatorQuery(obj) {
|
|
370
371
|
const query = {};
|
package/dist/cjs/utils.js
CHANGED
|
@@ -12,6 +12,7 @@ exports.isMongooseSchema = isMongooseSchema;
|
|
|
12
12
|
exports.isNumberField = isNumberField;
|
|
13
13
|
exports.isReferenceField = isReferenceField;
|
|
14
14
|
exports.isSchemaTypedef = isSchemaTypedef;
|
|
15
|
+
exports.isStringField = isStringField;
|
|
15
16
|
exports.resolveRefPath = resolveRefPath;
|
|
16
17
|
var _mongoose = _interopRequireDefault(require("mongoose"));
|
|
17
18
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
@@ -50,6 +51,9 @@ function isDateField(obj, path) {
|
|
|
50
51
|
function isNumberField(obj, path) {
|
|
51
52
|
return isType(obj, path, 'Number');
|
|
52
53
|
}
|
|
54
|
+
function isStringField(obj, path) {
|
|
55
|
+
return isType(obj, path, 'String');
|
|
56
|
+
}
|
|
53
57
|
function isArrayField(obj, path) {
|
|
54
58
|
const field = getField(obj, path);
|
|
55
59
|
return Array.isArray(field?.type);
|
package/dist/cjs/validation.js
CHANGED
|
@@ -23,7 +23,7 @@ const DATE_TAGS = {
|
|
|
23
23
|
'x-schema': 'DateTime',
|
|
24
24
|
'x-description': 'A `string` in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format.'
|
|
25
25
|
};
|
|
26
|
-
const OBJECT_ID_SCHEMA = exports.OBJECT_ID_SCHEMA = _yada.default.string().mongo().message('Must be
|
|
26
|
+
const OBJECT_ID_SCHEMA = exports.OBJECT_ID_SCHEMA = _yada.default.string().mongo().message('Must be a valid object id.').tag({
|
|
27
27
|
'x-schema': 'ObjectId',
|
|
28
28
|
'x-description': 'A 24 character hexadecimal string representing a Mongo [ObjectId](https://bit.ly/3YPtGlU).'
|
|
29
29
|
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bedrockio/model",
|
|
3
|
-
"version": "0.12.
|
|
3
|
+
"version": "0.12.1",
|
|
4
4
|
"description": "Bedrock utilities for model creation.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"scripts": {
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
"@babel/preset-env": "^7.26.0",
|
|
40
40
|
"@bedrockio/eslint-plugin": "^1.1.7",
|
|
41
41
|
"@bedrockio/prettier-config": "^1.0.2",
|
|
42
|
-
"@bedrockio/yada": "^1.4.
|
|
42
|
+
"@bedrockio/yada": "^1.4.2",
|
|
43
43
|
"@shelf/jest-mongodb": "^5.1.0",
|
|
44
44
|
"eslint": "^9.19.0",
|
|
45
45
|
"jest": "^29.7.0",
|
package/src/search.js
CHANGED
|
@@ -8,6 +8,7 @@ import {
|
|
|
8
8
|
isArrayField,
|
|
9
9
|
isDateField,
|
|
10
10
|
isNumberField,
|
|
11
|
+
isStringField,
|
|
11
12
|
resolveRefPath,
|
|
12
13
|
} from './utils';
|
|
13
14
|
|
|
@@ -407,11 +408,16 @@ function isEmptyArrayQuery(schema, key, value) {
|
|
|
407
408
|
}
|
|
408
409
|
|
|
409
410
|
function isRangeQuery(schema, key, value) {
|
|
410
|
-
|
|
411
|
-
if (!isDateField(schema, key) && !isNumberField(schema, key)) {
|
|
411
|
+
if (!isPlainObject(value)) {
|
|
412
412
|
return false;
|
|
413
413
|
}
|
|
414
|
-
|
|
414
|
+
|
|
415
|
+
// Range queries allowed on Date, Number, and String fields.
|
|
416
|
+
return (
|
|
417
|
+
isDateField(schema, key) ||
|
|
418
|
+
isNumberField(schema, key) ||
|
|
419
|
+
isStringField(schema, key)
|
|
420
|
+
);
|
|
415
421
|
}
|
|
416
422
|
|
|
417
423
|
function mapOperatorQuery(obj) {
|
package/src/utils.js
CHANGED
|
@@ -38,6 +38,10 @@ export function isNumberField(obj, path) {
|
|
|
38
38
|
return isType(obj, path, 'Number');
|
|
39
39
|
}
|
|
40
40
|
|
|
41
|
+
export function isStringField(obj, path) {
|
|
42
|
+
return isType(obj, path, 'String');
|
|
43
|
+
}
|
|
44
|
+
|
|
41
45
|
export function isArrayField(obj, path) {
|
|
42
46
|
const field = getField(obj, path);
|
|
43
47
|
return Array.isArray(field?.type);
|
package/src/validation.js
CHANGED
package/types/search.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../src/search.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../src/search.js"],"names":[],"mappings":"AAuBA,gEAaC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;eA4CwC,CAAC;;;;;;;;;;;;;;;;;EAnBxC"}
|
package/types/utils.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ export function isMongooseSchema(obj: any): obj is mongoose.Schema<any, any, any
|
|
|
3
3
|
export function isReferenceField(obj: any, path: any): boolean;
|
|
4
4
|
export function isDateField(obj: any, path: any): boolean;
|
|
5
5
|
export function isNumberField(obj: any, path: any): boolean;
|
|
6
|
+
export function isStringField(obj: any, path: any): boolean;
|
|
6
7
|
export function isArrayField(obj: any, path: any): boolean;
|
|
7
8
|
export function isSchemaTypedef(arg: any): boolean;
|
|
8
9
|
export function getField(obj: any, path: any): any;
|
package/types/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.js"],"names":[],"mappings":"AAQA,iDAcC;AAED,gHAEC;AAED,+DAEC;AAED,0DAEC;AAED,4DAEC;AAED,2DAGC;AAOD,mDAGC;AAuBD,mDAYC;AAKD;;;;EAoBC;AAKD,wDAEC;
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.js"],"names":[],"mappings":"AAQA,iDAcC;AAED,gHAEC;AAED,+DAEC;AAED,0DAEC;AAED,4DAEC;AAED,4DAEC;AAED,2DAGC;AAOD,mDAGC;AAuBD,mDAYC;AAKD;;;;EAoBC;AAKD,wDAEC;qBA5HoB,UAAU"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../src/validation.js"],"names":[],"mappings":"AAoFA,kDAEC;AAED,oEAkFC;AAsBD,wEAoBC;AAgWD;;;EAEC;AAED;;;EAOC;AA7iBD;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../src/validation.js"],"names":[],"mappings":"AAoFA,kDAEC;AAED,oEAkFC;AAsBD,wEAoBC;AAgWD;;;EAEC;AAED;;;EAOC;AA7iBD;;;;;;;;;;;;;;;;eAwBQ,CAAC;;;;;;;;;;;;iBAcmC,CAAC;kBAC3B,CAAC;kBAEH,CAAC;oBACA,CAAC;oBACF,CAAC;;;wBAmBZ,CAAC;8BACe,CAAC;oBAGD,CAAC;oBACV,CAAC;oCAGG,CAAC;uBAAmC,CAAA;8BAE9B,CAAC;uBACO,CAAC;iBACrB,CAAC;;;mBAkBL,CAAL;yBAAoC,CAAC;0BACpB,CAAC;yBACT,CAAC;sBAEH,CAAN;yBACc,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;eA9CQ,CAAC;;;;;;;;;;;;;;;;;;EA3CrB"}
|