@bedrockio/yada 1.0.28 → 1.0.30
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/.prettierrc.cjs +1 -0
- package/README.md +7 -0
- package/dist/cjs/Schema.js +4 -3
- package/dist/cjs/object.js +6 -1
- package/dist/cjs/string.js +15 -0
- package/package.json +2 -2
- package/src/Schema.js +4 -3
- package/src/object.js +4 -1
- package/src/string.js +13 -0
- package/types/Schema.d.ts +1 -1
- package/types/Schema.d.ts.map +1 -1
- package/types/object.d.ts.map +1 -1
- package/types/string.d.ts +4 -0
- package/types/string.d.ts.map +1 -1
package/.prettierrc.cjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
module.exports = require('@bedrockio/prettier-config');
|
package/README.md
CHANGED
|
@@ -527,6 +527,13 @@ console.log(await schema.validate()); // "hi!"
|
|
|
527
527
|
console.log(await schema.validate('hello!')); // "hello!"
|
|
528
528
|
```
|
|
529
529
|
|
|
530
|
+
Note that the argument passed to default may also be a function:
|
|
531
|
+
|
|
532
|
+
```js
|
|
533
|
+
const schema = yd.string().default(Date.now);
|
|
534
|
+
console.log(await schema.validate()); // Returns current timestamp
|
|
535
|
+
```
|
|
536
|
+
|
|
530
537
|
### Strip
|
|
531
538
|
|
|
532
539
|
The `strip` method serves as a way to conditionally exclude fields when the
|
package/dist/cjs/Schema.js
CHANGED
|
@@ -39,12 +39,13 @@ class Schema {
|
|
|
39
39
|
* Sets the schema default. [Link](https://github.com/bedrockio/yada#default)
|
|
40
40
|
* @returns {this}
|
|
41
41
|
*/
|
|
42
|
-
default(
|
|
42
|
+
default(arg) {
|
|
43
|
+
const getDefaultValue = typeof arg === 'function' ? arg : () => arg;
|
|
43
44
|
return this.clone({
|
|
44
|
-
default:
|
|
45
|
+
default: arg
|
|
45
46
|
}).assert('default', val => {
|
|
46
47
|
if (val === undefined) {
|
|
47
|
-
return
|
|
48
|
+
return getDefaultValue();
|
|
48
49
|
}
|
|
49
50
|
});
|
|
50
51
|
}
|
package/dist/cjs/object.js
CHANGED
|
@@ -7,7 +7,9 @@ exports.default = _default;
|
|
|
7
7
|
var _TypeSchema = _interopRequireDefault(require("./TypeSchema"));
|
|
8
8
|
var _errors = require("./errors");
|
|
9
9
|
var _utils = require("./utils");
|
|
10
|
-
var _Schema =
|
|
10
|
+
var _Schema = _interopRequireWildcard(require("./Schema"));
|
|
11
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
12
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
11
13
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
12
14
|
const BASE_ASSERTIONS = ['type', 'transform', 'field'];
|
|
13
15
|
|
|
@@ -59,6 +61,9 @@ class ObjectSchema extends _TypeSchema.default {
|
|
|
59
61
|
}
|
|
60
62
|
});
|
|
61
63
|
for (let [key, schema] of Object.entries(this.getFields())) {
|
|
64
|
+
if (!(0, _Schema.isSchema)(schema)) {
|
|
65
|
+
throw new Error(`Key "${key}" must be a schema`);
|
|
66
|
+
}
|
|
62
67
|
this.assert('field', async (obj, options) => {
|
|
63
68
|
if (obj) {
|
|
64
69
|
const {
|
package/dist/cjs/string.js
CHANGED
|
@@ -26,6 +26,21 @@ class StringSchema extends _TypeSchema.default {
|
|
|
26
26
|
});
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
+
/**
|
|
30
|
+
* @returns {this}
|
|
31
|
+
*/
|
|
32
|
+
required() {
|
|
33
|
+
return this.clone({
|
|
34
|
+
required: true
|
|
35
|
+
}).assert('required', val => {
|
|
36
|
+
if (val == null) {
|
|
37
|
+
throw new _errors.LocalizedError('Value is required.');
|
|
38
|
+
} else if (val === '') {
|
|
39
|
+
throw new _errors.LocalizedError('String may not be empty.');
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
|
|
29
44
|
/**
|
|
30
45
|
* @param {number} length
|
|
31
46
|
*/
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bedrockio/yada",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.30",
|
|
4
4
|
"description": "Validation library inspired by Joi.",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"test": "jest",
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
"babel-plugin-add-module-exports": "^1.0.4",
|
|
28
28
|
"eslint": "^8.26.0",
|
|
29
29
|
"eslint-plugin-bedrock": "^1.0.24",
|
|
30
|
-
"jest": "^29.
|
|
30
|
+
"jest": "^29.6.2",
|
|
31
31
|
"prettier": "^2.7.1",
|
|
32
32
|
"prettier-eslint": "^15.0.1",
|
|
33
33
|
"typescript": "^4.9.5"
|
package/src/Schema.js
CHANGED
|
@@ -37,10 +37,11 @@ export default class Schema {
|
|
|
37
37
|
* Sets the schema default. [Link](https://github.com/bedrockio/yada#default)
|
|
38
38
|
* @returns {this}
|
|
39
39
|
*/
|
|
40
|
-
default(
|
|
41
|
-
|
|
40
|
+
default(arg) {
|
|
41
|
+
const getDefaultValue = typeof arg === 'function' ? arg : () => arg;
|
|
42
|
+
return this.clone({ default: arg }).assert('default', (val) => {
|
|
42
43
|
if (val === undefined) {
|
|
43
|
-
return
|
|
44
|
+
return getDefaultValue();
|
|
44
45
|
}
|
|
45
46
|
});
|
|
46
47
|
}
|
package/src/object.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import TypeSchema from './TypeSchema';
|
|
2
2
|
import { FieldError, LocalizedError } from './errors';
|
|
3
3
|
import { pick, omit } from './utils';
|
|
4
|
-
import Schema from './Schema';
|
|
4
|
+
import Schema, { isSchema } from './Schema';
|
|
5
5
|
|
|
6
6
|
const BASE_ASSERTIONS = ['type', 'transform', 'field'];
|
|
7
7
|
|
|
@@ -49,6 +49,9 @@ class ObjectSchema extends TypeSchema {
|
|
|
49
49
|
}
|
|
50
50
|
});
|
|
51
51
|
for (let [key, schema] of Object.entries(this.getFields())) {
|
|
52
|
+
if (!isSchema(schema)) {
|
|
53
|
+
throw new Error(`Key "${key}" must be a schema`);
|
|
54
|
+
}
|
|
52
55
|
this.assert('field', async (obj, options) => {
|
|
53
56
|
if (obj) {
|
|
54
57
|
const { path = [] } = options;
|
package/src/string.js
CHANGED
|
@@ -30,6 +30,19 @@ class StringSchema extends TypeSchema {
|
|
|
30
30
|
});
|
|
31
31
|
}
|
|
32
32
|
|
|
33
|
+
/**
|
|
34
|
+
* @returns {this}
|
|
35
|
+
*/
|
|
36
|
+
required() {
|
|
37
|
+
return this.clone({ required: true }).assert('required', (val) => {
|
|
38
|
+
if (val == null) {
|
|
39
|
+
throw new LocalizedError('Value is required.');
|
|
40
|
+
} else if (val === '') {
|
|
41
|
+
throw new LocalizedError('String may not be empty.');
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
|
|
33
46
|
/**
|
|
34
47
|
* @param {number} length
|
|
35
48
|
*/
|
package/types/Schema.d.ts
CHANGED
|
@@ -14,7 +14,7 @@ export default class Schema {
|
|
|
14
14
|
* Sets the schema default. [Link](https://github.com/bedrockio/yada#default)
|
|
15
15
|
* @returns {this}
|
|
16
16
|
*/
|
|
17
|
-
default(
|
|
17
|
+
default(arg: any): this;
|
|
18
18
|
/**
|
|
19
19
|
* Validate by a custom function. [Link](https://github.com/bedrockio/yada#custom)
|
|
20
20
|
* @param {CustomSignature} args
|
package/types/Schema.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Schema.d.ts","sourceRoot":"","sources":["../src/Schema.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Schema.d.ts","sourceRoot":"","sources":["../src/Schema.js"],"names":[],"mappings":"AAuVA,4CAEC;AA7UD;;GAEG;AAEH;IACE,uBAGC;IAFC,kBAAoB;IACpB,SAAgB;IAKlB;;OAEG;IACH,YAFa,IAAI,CAQhB;IAED;;;OAGG;IACH,mBAFa,IAAI,CAShB;IAED;;;;OAIG;IACH,gBAHW,eAAe,GACb,IAAI,CAmBhB;IAED;;;;OAIG;IACH,mBAFa,IAAI,CAIhB;IAED;;;OAGG;IACH,sBAFa,IAAI,CAIhB;IAED;;;OAGG;IACH,uBAFa,IAAI,CAIhB;IAED;;OAEG;IACH,uBAFa,IAAI,CAIhB;IAED;;OAEG;IACH,gBAFa,IAAI,CAShB;IAED;;OAEG;IACH,+BAFa,IAAI,CAMhB;IAED;;OAEG;IACH,uBAFa,IAAI,CAIhB;IAED,iDAqCC;IAED;;OAEG;IACH,kBAFa,IAAI,CAOhB;IAED;;;OAGG;IACH,qBAFa,IAAI,CAMhB;IAED,2BAUC;IAED,kBAEC;IAED,4BAMC;IAID;;OAEG;IACH,kCAFa,IAAI,CAmChB;IAED;;OAEG;IACH,4BAFa,IAAI,CAUhB;IAED,oCAKC;IAED;;OAEG;IACH,oBAFa,IAAI,CAShB;IAED,gCAGC;IAED,qEAUC;IAED;;;;;;;;MAoCC;CACF;8BAxUY,CAAC,EAAE,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,UAAU,CAAC"}
|
package/types/object.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"object.d.ts","sourceRoot":"","sources":["../src/object.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"object.d.ts","sourceRoot":"","sources":["../src/object.js"],"names":[],"mappings":"AA2MA;;;;;;GAMG;AACH,uCAJW,SAAS,gBAMnB;;;;AA7MD;;GAEG;AAEH;IAUE;;OAEG;IACH,cAqEC;IAED;;OAEG;IACH,kBAEC;IAED;;OAEG;IAEH,YAHW,SAAS,GAAC,MAAM,gBAkC1B;IAED;;OAEG;IACH,gBAFc,MAAM,kBAWnB;IAED;;OAEG;IACH,gBAFc,MAAM,kBAWnB;CAcF"}
|
package/types/string.d.ts
CHANGED
package/types/string.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"string.d.ts","sourceRoot":"","sources":["../src/string.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"string.d.ts","sourceRoot":"","sources":["../src/string.js"],"names":[],"mappings":"AA6YA;;GAEG;AACH,iDAEC;AAhYD;IACE,cAWC;IAED;;OAEG;IACH,YAFa,IAAI,CAUhB;IAED;;OAEG;IACH,eAFW,MAAM,gBAUhB;IAED;;OAEG;IACH,YAFW,MAAM,gBAUhB;IAED;;OAEG;IACH,YAFW,MAAM,gBAUhB;IAED,qBAIC;IAED;;OAEG;IACH,mBAFW,OAAO,gBAYjB;IAED;;OAEG;IACH,mBAFW,OAAO,gBAYjB;IAED;;OAEG;IACH,WAFW,MAAM,gBAahB;IAED,sBAMC;IAED,sBAMC;IAED,oBAMC;IAED,oBAMC;IAED,qBAMC;IAED,sBAMC;IAED;;;OAGG;IACH;QAF6B,OAAO,GAAzB,OAAO;qBAQjB;IAED,2BAMC;IAED,mBAMC;IAED,wBAMC;IAED,uBAMC;IAED,oBAMC;IAED,qBAOC;IAED,uBAMC;IAED;;OAEG;IACH,oBAFW,MAAM,gBAQhB;IAED;;;;;;;OAOG;IACH;QAN4B,SAAS,GAA1B,MAAM;QACW,UAAU,GAA3B,MAAM;QACW,UAAU,GAA3B,MAAM;QACW,YAAY,GAA7B,MAAM;QACW,YAAY,GAA7B,MAAM;qBA+BhB;IAED;;;;;;;;;;;OAWG;IACH;QAV6B,gBAAgB,GAAlC,OAAO;QACW,sBAAsB,GAAxC,OAAO;QACW,YAAY,GAA9B,OAAO;QACW,YAAY,GAA9B,OAAO;QACW,4BAA4B,GAA9C,OAAO;QACW,eAAe,GAAjC,OAAO;QACW,sBAAsB,GAAxC,OAAO;QACW,eAAe,GAAjC,OAAO;QACY,SAAS,GAA5B,MAAM,EAAE;qBAQlB;IAED;;;;;;;;OAQG;IACH;QAP6B,WAAW,GAA7B,OAAO;QACW,iBAAiB,GAAnC,OAAO;QACW,kBAAkB,GAApC,OAAO;QACW,iBAAiB,GAAnC,OAAO;QACW,cAAc,GAAhC,OAAO;QACW,iBAAiB,GAAnC,OAAO;qBAQjB;IAED;;OAEG;IACH,eAFW,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,gBAQ3B;IAED,oBAMC;IAED,oBAMC;IAED,sBAMC;IAED,sBAMC;CAcF"}
|