@bedrockio/yada 1.4.2 → 1.4.3

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 CHANGED
@@ -1,3 +1,7 @@
1
+ ## 1.4.3
2
+
3
+ - Fixed date not allowing calendar date format without time.
4
+
1
5
  ## 1.4.2
2
6
 
3
7
  - Improved enum type assertion errors.
package/dist/cjs/date.js CHANGED
@@ -100,6 +100,9 @@ class DateSchema extends _Schema.default {
100
100
  * @param {"date" | "date-time"} format
101
101
  */
102
102
  iso(format = 'date-time') {
103
+ if (format !== 'date' && format !== 'date-time') {
104
+ throw new Error(`Invalid format ${JSON.stringify(format)}.`);
105
+ }
103
106
  return this.clone({
104
107
  format
105
108
  }).assert('format', (val, options) => {
@@ -110,8 +113,10 @@ class DateSchema extends _Schema.default {
110
113
  if (!options.default) {
111
114
  throw new _errors.LocalizedError('Must be a string.');
112
115
  }
113
- } else if (!_validator.default.isISO8601(original)) {
114
- throw new _errors.LocalizedError('Must be in ISO 8601 format.');
116
+ } else if (format === 'date' && !_validator.default.isDate(original)) {
117
+ throw new _errors.LocalizedError('Must be an ISO-8601 calendar date.');
118
+ } else if (format === 'date-time' && !_validator.default.isISO8601(original)) {
119
+ throw new _errors.LocalizedError('Must be in ISO-8601 format.');
115
120
  }
116
121
  });
117
122
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bedrockio/yada",
3
- "version": "1.4.2",
3
+ "version": "1.4.3",
4
4
  "description": "Validation library inspired by Joi.",
5
5
  "scripts": {
6
6
  "test": "jest",
package/src/date.js CHANGED
@@ -94,14 +94,19 @@ class DateSchema extends Schema {
94
94
  * @param {"date" | "date-time"} format
95
95
  */
96
96
  iso(format = 'date-time') {
97
+ if (format !== 'date' && format !== 'date-time') {
98
+ throw new Error(`Invalid format ${JSON.stringify(format)}.`);
99
+ }
97
100
  return this.clone({ format }).assert('format', (val, options) => {
98
101
  const { original } = options;
99
102
  if (typeof original !== 'string') {
100
103
  if (!options.default) {
101
104
  throw new LocalizedError('Must be a string.');
102
105
  }
103
- } else if (!validator.isISO8601(original)) {
104
- throw new LocalizedError('Must be in ISO 8601 format.');
106
+ } else if (format === 'date' && !validator.isDate(original)) {
107
+ throw new LocalizedError('Must be an ISO-8601 calendar date.');
108
+ } else if (format === 'date-time' && !validator.isISO8601(original)) {
109
+ throw new LocalizedError('Must be in ISO-8601 format.');
105
110
  }
106
111
  });
107
112
  }
@@ -1 +1 @@
1
- {"version":3,"file":"date.d.ts","sourceRoot":"","sources":["../src/date.js"],"names":[],"mappings":"AAgKA;;GAEG;AACH,+CAEC;AAhKD;IACE,cAUC;IAED;;OAEG;IACH,SAFW,MAAM,GAAC,MAAM,GAAC,IAAI,QAW5B;IAED;;OAEG;IACH,SAFW,MAAM,GAAC,MAAM,GAAC,IAAI,QAW5B;IAED;;OAEG;IACH,YAFW,MAAM,GAAC,MAAM,GAAC,IAAI,QAW5B;IAED;;OAEG;IACH,WAFW,MAAM,GAAC,MAAM,GAAC,IAAI,QAW5B;IAED,aAOC;IAED,eAOC;IAED;;OAEG;IACH,aAFW,MAAM,GAAG,WAAW,QAa9B;IAED,kBAUC;IAED,aAcC;CAwBF;mBA5JkB,UAAU"}
1
+ {"version":3,"file":"date.d.ts","sourceRoot":"","sources":["../src/date.js"],"names":[],"mappings":"AAqKA;;GAEG;AACH,+CAEC;AArKD;IACE,cAUC;IAED;;OAEG;IACH,SAFW,MAAM,GAAC,MAAM,GAAC,IAAI,QAW5B;IAED;;OAEG;IACH,SAFW,MAAM,GAAC,MAAM,GAAC,IAAI,QAW5B;IAED;;OAEG;IACH,YAFW,MAAM,GAAC,MAAM,GAAC,IAAI,QAW5B;IAED;;OAEG;IACH,WAFW,MAAM,GAAC,MAAM,GAAC,IAAI,QAW5B;IAED,aAOC;IAED,eAOC;IAED;;OAEG;IACH,aAFW,MAAM,GAAG,WAAW,QAkB9B;IAED,kBAUC;IAED,aAcC;CAwBF;mBAjKkB,UAAU"}