knight-validation 2.0.0 → 2.0.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.
Files changed (36) hide show
  1. package/README.md +31 -31
  2. package/lib/index.d.ts +12 -13
  3. package/lib/index.js +26 -26
  4. package/lib/lib/Constraint.d.ts +3 -7
  5. package/lib/lib/Constraint.js +5 -121
  6. package/lib/lib/Misfit.d.ts +8 -14
  7. package/lib/lib/Misfit.js +24 -44
  8. package/lib/lib/MisfitsError.d.ts +2 -2
  9. package/lib/lib/MisfitsError.js +7 -22
  10. package/lib/lib/QuickConstraint.d.ts +8 -0
  11. package/lib/lib/QuickConstraint.js +26 -0
  12. package/lib/lib/Validator.d.ts +16 -31
  13. package/lib/lib/Validator.js +104 -403
  14. package/lib/lib/constraints/Absent.d.ts +7 -4
  15. package/lib/lib/constraints/Absent.js +10 -75
  16. package/lib/lib/constraints/Bounds.d.ts +18 -0
  17. package/lib/lib/constraints/Bounds.js +50 -0
  18. package/lib/lib/constraints/Enum.d.ts +8 -4
  19. package/lib/lib/constraints/Enum.js +27 -76
  20. package/lib/lib/constraints/Exists.d.ts +9 -6
  21. package/lib/lib/constraints/Exists.js +19 -67
  22. package/lib/lib/constraints/Length.d.ts +16 -0
  23. package/lib/lib/constraints/Length.js +46 -0
  24. package/lib/lib/constraints/Required.d.ts +4 -4
  25. package/lib/lib/constraints/Required.js +10 -75
  26. package/lib/lib/constraints/TypeOf.d.ts +9 -10
  27. package/lib/lib/constraints/TypeOf.js +57 -81
  28. package/lib/lib/constraints/Unique.d.ts +9 -6
  29. package/lib/lib/constraints/Unique.js +19 -68
  30. package/package.json +7 -7
  31. package/lib/lib/constraints/Max.d.ts +0 -7
  32. package/lib/lib/constraints/Max.js +0 -84
  33. package/lib/lib/constraints/QuickConstraint.d.ts +0 -7
  34. package/lib/lib/constraints/QuickConstraint.js +0 -70
  35. package/lib/lib/fieldsEqual.d.ts +0 -1
  36. package/lib/lib/fieldsEqual.js +0 -17
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.Bounds = void 0;
13
+ const Constraint_1 = require("../Constraint");
14
+ const Misfit_1 = require("../Misfit");
15
+ class Bounds extends Constraint_1.Constraint {
16
+ constructor(constraints) {
17
+ super();
18
+ Object.assign(this, constraints);
19
+ }
20
+ validate(value) {
21
+ return __awaiter(this, void 0, void 0, function* () {
22
+ if (typeof value != 'number' || isNaN(value)) {
23
+ return null;
24
+ }
25
+ if (this.lesserThan != undefined && value >= this.lesserThan) {
26
+ return this._createMisfit(value);
27
+ }
28
+ else if (this.lesserThanEqual != undefined && value > this.lesserThanEqual) {
29
+ return this._createMisfit(value);
30
+ }
31
+ else if (this.greaterThan != undefined && value <= this.greaterThan) {
32
+ return this._createMisfit(value);
33
+ }
34
+ else if (this.greaterThanEqual != undefined && value < this.greaterThanEqual) {
35
+ return this._createMisfit(value);
36
+ }
37
+ return null;
38
+ });
39
+ }
40
+ _createMisfit(actual) {
41
+ return new Misfit_1.Misfit(this.name, {
42
+ actual: actual,
43
+ greaterThan: this.greaterThan,
44
+ greaterThanEqual: this.greaterThanEqual,
45
+ lesserThan: this.lesserThan,
46
+ lesserThanEqual: this.lesserThanEqual
47
+ });
48
+ }
49
+ }
50
+ exports.Bounds = Bounds;
@@ -1,9 +1,13 @@
1
- import Constraint from '../Constraint';
2
- import Misfit from '../Misfit';
3
- export default class Enum extends Constraint {
1
+ import { Constraint } from '../Constraint';
2
+ import { Misfit } from '../Misfit';
3
+ export interface EnumMisfitValues {
4
+ actual: any;
5
+ values: any[];
6
+ }
7
+ export declare class Enum extends Constraint<any, EnumMisfitValues> {
4
8
  values: any[];
5
9
  constructor(values: any[]);
6
10
  constructor(...values: any[]);
7
11
  constructor(values: object);
8
- validate(obj: any, field: string | string[]): Promise<Misfit | undefined>;
12
+ validate(value: any): Promise<Misfit<EnumMisfitValues> | null>;
9
13
  }
@@ -1,17 +1,4 @@
1
1
  "use strict";
2
- var __extends = (this && this.__extends) || (function () {
3
- var extendStatics = function (d, b) {
4
- extendStatics = Object.setPrototypeOf ||
5
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
- function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
7
- return extendStatics(d, b);
8
- };
9
- return function (d, b) {
10
- extendStatics(d, b);
11
- function __() { this.constructor = d; }
12
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
13
- };
14
- })();
15
2
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
16
3
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
17
4
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -21,79 +8,43 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
21
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
22
9
  });
23
10
  };
24
- var __generator = (this && this.__generator) || function (thisArg, body) {
25
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
26
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
27
- function verb(n) { return function (v) { return step([n, v]); }; }
28
- function step(op) {
29
- if (f) throw new TypeError("Generator is already executing.");
30
- while (_) try {
31
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
32
- if (y = 0, t) op = [op[0] & 2, t.value];
33
- switch (op[0]) {
34
- case 0: case 1: t = op; break;
35
- case 4: _.label++; return { value: op[1], done: false };
36
- case 5: _.label++; y = op[1]; op = [0]; continue;
37
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
38
- default:
39
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
40
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
41
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
42
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
43
- if (t[2]) _.ops.pop();
44
- _.trys.pop(); continue;
45
- }
46
- op = body.call(thisArg, _);
47
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
48
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
49
- }
50
- };
51
11
  Object.defineProperty(exports, "__esModule", { value: true });
52
- var Constraint_1 = require("../Constraint");
53
- var Misfit_1 = require("../Misfit");
54
- var Enum = /** @class */ (function (_super) {
55
- __extends(Enum, _super);
56
- function Enum() {
57
- var _a;
58
- var values = [];
59
- for (var _i = 0; _i < arguments.length; _i++) {
60
- values[_i] = arguments[_i];
61
- }
62
- var _this = _super.call(this) || this;
63
- _this.values = [];
64
- for (var _b = 0, values_1 = values; _b < values_1.length; _b++) {
65
- var value = values_1[_b];
12
+ exports.Enum = void 0;
13
+ const Constraint_1 = require("../Constraint");
14
+ const Misfit_1 = require("../Misfit");
15
+ class Enum extends Constraint_1.Constraint {
16
+ constructor(...values) {
17
+ super();
18
+ this.values = [];
19
+ for (let value of values) {
66
20
  if (value instanceof Array) {
67
- (_a = _this.values).push.apply(_a, value);
21
+ this.values.push(...value);
68
22
  }
69
23
  else if (typeof value == 'object') {
70
- for (var key in value) {
24
+ for (let key in value) {
71
25
  if (isNaN(parseInt(key, 10))) {
72
- _this.values.push(value[key]);
26
+ this.values.push(value[key]);
73
27
  }
74
28
  }
75
29
  }
76
30
  else {
77
- _this.values.push(value);
31
+ this.values.push(value);
78
32
  }
79
33
  }
80
- return _this;
81
34
  }
82
- Enum.prototype.validate = function (obj, field) {
83
- return __awaiter(this, void 0, void 0, function () {
84
- var _this = this;
85
- return __generator(this, function (_a) {
86
- return [2 /*return*/, this.defaultValidation(obj, field, function (value) { return __awaiter(_this, void 0, void 0, function () {
87
- return __generator(this, function (_a) {
88
- if (this.values.indexOf(value) == -1) {
89
- return [2 /*return*/, new Misfit_1.default];
90
- }
91
- return [2 /*return*/];
92
- });
93
- }); })];
94
- });
35
+ validate(value) {
36
+ return __awaiter(this, void 0, void 0, function* () {
37
+ if (value === undefined) {
38
+ return null;
39
+ }
40
+ if (this.values.indexOf(value) == -1) {
41
+ return new Misfit_1.Misfit(this.name, {
42
+ actual: value,
43
+ values: this.values
44
+ });
45
+ }
46
+ return null;
95
47
  });
96
- };
97
- return Enum;
98
- }(Constraint_1.default));
99
- exports.default = Enum;
48
+ }
49
+ }
50
+ exports.Enum = Enum;
@@ -1,7 +1,10 @@
1
- import Constraint from '../Constraint';
2
- import Misfit from '../Misfit';
3
- export default class Exists extends Constraint {
4
- doesExist: (value: any, obj: any) => Promise<boolean>;
5
- constructor(doesExist: (obj: any, field: string | string[]) => Promise<boolean>);
6
- validate(obj: any, field: string | string[]): Promise<Misfit | undefined>;
1
+ import { Constraint } from '../Constraint';
2
+ import { Misfit } from '../Misfit';
3
+ export interface ExistsMisfitValues {
4
+ notExistingValue: any;
5
+ }
6
+ export declare class Exists extends Constraint<any, ExistsMisfitValues> {
7
+ doesExist: (value: any) => Promise<boolean>;
8
+ constructor(doesExist: (value: any) => Promise<boolean>);
9
+ validate(value: any): Promise<Misfit<ExistsMisfitValues> | null>;
7
10
  }
@@ -1,17 +1,4 @@
1
1
  "use strict";
2
- var __extends = (this && this.__extends) || (function () {
3
- var extendStatics = function (d, b) {
4
- extendStatics = Object.setPrototypeOf ||
5
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
- function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
7
- return extendStatics(d, b);
8
- };
9
- return function (d, b) {
10
- extendStatics(d, b);
11
- function __() { this.constructor = d; }
12
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
13
- };
14
- })();
15
2
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
16
3
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
17
4
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -21,61 +8,26 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
21
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
22
9
  });
23
10
  };
24
- var __generator = (this && this.__generator) || function (thisArg, body) {
25
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
26
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
27
- function verb(n) { return function (v) { return step([n, v]); }; }
28
- function step(op) {
29
- if (f) throw new TypeError("Generator is already executing.");
30
- while (_) try {
31
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
32
- if (y = 0, t) op = [op[0] & 2, t.value];
33
- switch (op[0]) {
34
- case 0: case 1: t = op; break;
35
- case 4: _.label++; return { value: op[1], done: false };
36
- case 5: _.label++; y = op[1]; op = [0]; continue;
37
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
38
- default:
39
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
40
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
41
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
42
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
43
- if (t[2]) _.ops.pop();
44
- _.trys.pop(); continue;
45
- }
46
- op = body.call(thisArg, _);
47
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
48
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
49
- }
50
- };
51
11
  Object.defineProperty(exports, "__esModule", { value: true });
52
- var Constraint_1 = require("../Constraint");
53
- var Misfit_1 = require("../Misfit");
54
- var Exists = /** @class */ (function (_super) {
55
- __extends(Exists, _super);
56
- function Exists(doesExist) {
57
- var _this = _super.call(this) || this;
58
- _this.doesExist = doesExist;
59
- return _this;
12
+ exports.Exists = void 0;
13
+ const Constraint_1 = require("../Constraint");
14
+ const Misfit_1 = require("../Misfit");
15
+ class Exists extends Constraint_1.Constraint {
16
+ constructor(doesExist) {
17
+ super();
18
+ this.doesExist = doesExist;
60
19
  }
61
- Exists.prototype.validate = function (obj, field) {
62
- return __awaiter(this, void 0, void 0, function () {
63
- return __generator(this, function (_a) {
64
- switch (_a.label) {
65
- case 0:
66
- if (this.isFieldAbsent(obj, field)) {
67
- return [2 /*return*/];
68
- }
69
- return [4 /*yield*/, this.doesExist(obj, field)];
70
- case 1:
71
- if (!(_a.sent())) {
72
- return [2 /*return*/, new Misfit_1.default];
73
- }
74
- return [2 /*return*/];
20
+ validate(value) {
21
+ return __awaiter(this, void 0, void 0, function* () {
22
+ if (value !== undefined) {
23
+ if (!(yield this.doesExist(value))) {
24
+ return new Misfit_1.Misfit(this.name, {
25
+ notExistingValue: value
26
+ });
75
27
  }
76
- });
28
+ }
29
+ return null;
77
30
  });
78
- };
79
- return Exists;
80
- }(Constraint_1.default));
81
- exports.default = Exists;
31
+ }
32
+ }
33
+ exports.Exists = Exists;
@@ -0,0 +1,16 @@
1
+ import { Constraint } from '../Constraint';
2
+ import { Misfit } from '../Misfit';
3
+ export interface LengthMisfitValues {
4
+ actual: any;
5
+ min?: number;
6
+ max?: number;
7
+ exact?: number;
8
+ }
9
+ export declare class Length extends Constraint<any, LengthMisfitValues> {
10
+ min?: number;
11
+ max?: number;
12
+ exact?: number;
13
+ constructor(constraints: Partial<Length>);
14
+ validate(value: any): Promise<Misfit<LengthMisfitValues> | null>;
15
+ private _createMisfit;
16
+ }
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.Length = void 0;
13
+ const Constraint_1 = require("../Constraint");
14
+ const Misfit_1 = require("../Misfit");
15
+ class Length extends Constraint_1.Constraint {
16
+ constructor(constraints) {
17
+ super();
18
+ Object.assign(this, constraints);
19
+ }
20
+ validate(value) {
21
+ return __awaiter(this, void 0, void 0, function* () {
22
+ if (typeof value != 'string' && !(value instanceof Array)) {
23
+ return null;
24
+ }
25
+ if (this.min != undefined && value.length < this.min) {
26
+ return this._createMisfit(value.length);
27
+ }
28
+ else if (this.max != undefined && value.length > this.max) {
29
+ return this._createMisfit(value.length);
30
+ }
31
+ else if (this.exact != undefined && value.length != this.exact) {
32
+ return this._createMisfit(value.length);
33
+ }
34
+ return null;
35
+ });
36
+ }
37
+ _createMisfit(actual) {
38
+ return new Misfit_1.Misfit(this.name, {
39
+ actual: actual,
40
+ exact: this.exact,
41
+ max: this.max,
42
+ min: this.min
43
+ });
44
+ }
45
+ }
46
+ exports.Length = Length;
@@ -1,5 +1,5 @@
1
- import Constraint from '../Constraint';
2
- import Misfit from '../Misfit';
3
- export default class Required extends Constraint {
4
- validate(obj: any, field: string | string[]): Promise<Misfit | undefined>;
1
+ import { Constraint } from '../Constraint';
2
+ import { Misfit } from '../Misfit';
3
+ export declare class Required extends Constraint<any, void> {
4
+ validate(value: any): Promise<Misfit<void> | null>;
5
5
  }
@@ -1,17 +1,4 @@
1
1
  "use strict";
2
- var __extends = (this && this.__extends) || (function () {
3
- var extendStatics = function (d, b) {
4
- extendStatics = Object.setPrototypeOf ||
5
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
- function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
7
- return extendStatics(d, b);
8
- };
9
- return function (d, b) {
10
- extendStatics(d, b);
11
- function __() { this.constructor = d; }
12
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
13
- };
14
- })();
15
2
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
16
3
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
17
4
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -21,67 +8,15 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
21
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
22
9
  });
23
10
  };
24
- var __generator = (this && this.__generator) || function (thisArg, body) {
25
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
26
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
27
- function verb(n) { return function (v) { return step([n, v]); }; }
28
- function step(op) {
29
- if (f) throw new TypeError("Generator is already executing.");
30
- while (_) try {
31
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
32
- if (y = 0, t) op = [op[0] & 2, t.value];
33
- switch (op[0]) {
34
- case 0: case 1: t = op; break;
35
- case 4: _.label++; return { value: op[1], done: false };
36
- case 5: _.label++; y = op[1]; op = [0]; continue;
37
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
38
- default:
39
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
40
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
41
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
42
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
43
- if (t[2]) _.ops.pop();
44
- _.trys.pop(); continue;
45
- }
46
- op = body.call(thisArg, _);
47
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
48
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
49
- }
50
- };
51
11
  Object.defineProperty(exports, "__esModule", { value: true });
52
- var Constraint_1 = require("../Constraint");
53
- var Misfit_1 = require("../Misfit");
54
- var Required = /** @class */ (function (_super) {
55
- __extends(Required, _super);
56
- function Required() {
57
- return _super !== null && _super.apply(this, arguments) || this;
58
- }
59
- Required.prototype.validate = function (obj, field) {
60
- return __awaiter(this, void 0, void 0, function () {
61
- var value, _i, field_1, fld, value;
62
- return __generator(this, function (_a) {
63
- if (typeof field == 'string') {
64
- value = obj[field];
65
- if (Constraint_1.default.absent(value)) {
66
- return [2 /*return*/, new Misfit_1.default];
67
- }
68
- }
69
- else if (field instanceof Array) {
70
- for (_i = 0, field_1 = field; _i < field_1.length; _i++) {
71
- fld = field_1[_i];
72
- value = obj[fld];
73
- if (Constraint_1.default.absent(value)) {
74
- return [2 /*return*/, new Misfit_1.default];
75
- }
76
- }
77
- }
78
- else {
79
- throw new Error('Parameter field was neither of type string nor instance of Array');
80
- }
81
- return [2 /*return*/];
82
- });
12
+ exports.Required = void 0;
13
+ const Constraint_1 = require("../Constraint");
14
+ const Misfit_1 = require("../Misfit");
15
+ class Required extends Constraint_1.Constraint {
16
+ validate(value) {
17
+ return __awaiter(this, void 0, void 0, function* () {
18
+ return value === undefined ? new Misfit_1.Misfit(this.name) : null;
83
19
  });
84
- };
85
- return Required;
86
- }(Constraint_1.default));
87
- exports.default = Required;
20
+ }
21
+ }
22
+ exports.Required = Required;
@@ -1,12 +1,11 @@
1
- import Constraint from '../Constraint';
2
- import Misfit from '../Misfit';
3
- export default class TypeOf extends Constraint {
4
- valueType: string | (new (...params: any[]) => any);
5
- constructor(valueType: string);
6
- constructor(valueType: (new (...params: any[]) => any));
7
- validate(obj: any, field: string | string[]): Promise<Misfit | undefined>;
1
+ import { Constraint } from '../Constraint';
2
+ import { Misfit } from '../Misfit';
3
+ export interface TypeOfMisfitValues {
4
+ types: (string | null)[];
5
+ actual: string | null;
8
6
  }
9
- export interface TypeOfValues {
10
- expectedType: string;
11
- actualType: string;
7
+ export declare class TypeOf extends Constraint<any, TypeOfMisfitValues> {
8
+ valueTypes: (string | null | (new (...params: any[]) => any))[];
9
+ constructor(...valueTypes: (string | null | (new (...params: any[]) => any))[]);
10
+ validate(value: any): Promise<Misfit<TypeOfMisfitValues> | null>;
12
11
  }