@bedrockio/model 0.1.31 → 0.1.32

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.
@@ -85,6 +85,7 @@ function applyValidation(schema, definition) {
85
85
  allowInclude,
86
86
  stripDeleted: true,
87
87
  stripTimestamps: true,
88
+ allowDefaultTags: true,
88
89
  allowExpandedRefs: true,
89
90
  requireWriteAccess: true,
90
91
  ...(hasUnique && {
@@ -267,12 +268,15 @@ function getSchemaForTypedef(typedef, options = {}) {
267
268
  if (isRequired(typedef, options)) {
268
269
  schema = schema.required();
269
270
  }
270
- if (typedef.default) {
271
- // Note that adding a default in the validation is
272
- // technically unnecessary as this will be handled
273
- // at the model level, however passing this on will
274
- // enrich OpenAPI documentation.
275
- schema = schema.default(typedef.default);
271
+ if (typedef.default && options.allowDefaultTags) {
272
+ // Tag the default value to allow OpenAPI description
273
+ // of the field but do not actually set the default as it will
274
+ // be handled on the schema level. The tags are being appended
275
+ // for the create validation only as a convenience to describe
276
+ // the default value on creation in OpenApi.
277
+ schema = schema.tag({
278
+ default: typedef.default
279
+ });
276
280
  }
277
281
  if (typedef.validate?.schema) {
278
282
  schema = schema.append(typedef.validate.schema);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bedrockio/model",
3
- "version": "0.1.31",
3
+ "version": "0.1.32",
4
4
  "description": "Bedrock utilities for model creation.",
5
5
  "type": "module",
6
6
  "scripts": {
@@ -29,7 +29,7 @@
29
29
  "lodash": "^4.17.21"
30
30
  },
31
31
  "peerDependencies": {
32
- "@bedrockio/yada": "^1.0.32",
32
+ "@bedrockio/yada": "^1.0.33",
33
33
  "mongoose": ">=6.9.0"
34
34
  },
35
35
  "devDependencies": {
@@ -37,7 +37,7 @@
37
37
  "@babel/core": "^7.20.12",
38
38
  "@babel/preset-env": "^7.20.2",
39
39
  "@bedrockio/prettier-config": "^1.0.2",
40
- "@bedrockio/yada": "^1.0.32",
40
+ "@bedrockio/yada": "^1.0.33",
41
41
  "@shelf/jest-mongodb": "^4.1.6",
42
42
  "babel-plugin-import-replacement": "^1.0.1",
43
43
  "eslint": "^8.33.0",
package/src/validation.js CHANGED
@@ -96,6 +96,7 @@ export function applyValidation(schema, definition) {
96
96
  allowInclude,
97
97
  stripDeleted: true,
98
98
  stripTimestamps: true,
99
+ allowDefaultTags: true,
99
100
  allowExpandedRefs: true,
100
101
  requireWriteAccess: true,
101
102
  ...(hasUnique && {
@@ -279,13 +280,18 @@ function getSchemaForTypedef(typedef, options = {}) {
279
280
  if (isRequired(typedef, options)) {
280
281
  schema = schema.required();
281
282
  }
282
- if (typedef.default) {
283
- // Note that adding a default in the validation is
284
- // technically unnecessary as this will be handled
285
- // at the model level, however passing this on will
286
- // enrich OpenAPI documentation.
287
- schema = schema.default(typedef.default);
283
+
284
+ if (typedef.default && options.allowDefaultTags) {
285
+ // Tag the default value to allow OpenAPI description
286
+ // of the field but do not actually set the default as it will
287
+ // be handled on the schema level. The tags are being appended
288
+ // for the create validation only as a convenience to describe
289
+ // the default value on creation in OpenApi.
290
+ schema = schema.tag({
291
+ default: typedef.default,
292
+ });
288
293
  }
294
+
289
295
  if (typedef.validate?.schema) {
290
296
  schema = schema.append(typedef.validate.schema);
291
297
  } else if (typeof typedef.validate === 'function') {
@@ -304,6 +310,7 @@ function getSchemaForTypedef(typedef, options = {}) {
304
310
  if (typedef.max != null || typedef.maxLength != null) {
305
311
  schema = schema.max(typedef.max ?? typedef.maxLength);
306
312
  }
313
+
307
314
  if (options.allowSearch) {
308
315
  schema = getSearchSchema(schema, type);
309
316
  }
@@ -1 +1 @@
1
- {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../src/validation.js"],"names":[],"mappings":"AAiFA,kDAEC;AAED,oEAiFC;AAsBD,wEAkBC;AAiRD;;;EAEC;AAED;;;EAOC;AAxdD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQK"}
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../src/validation.js"],"names":[],"mappings":"AAiFA,kDAEC;AAED,oEAkFC;AAsBD,wEAkBC;AAuRD;;;EAEC;AAED;;;EAOC;AA/dD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQK"}