1 | import { Predicate } from './predicate.js';
|
2 | export class DataViewPredicate extends Predicate {
|
3 | |
4 |
|
5 |
|
6 | constructor(options) {
|
7 | super('DataView', options);
|
8 | }
|
9 | |
10 |
|
11 |
|
12 |
|
13 |
|
14 | byteLength(byteLength) {
|
15 | return this.addValidator({
|
16 | message: (value, label) => `Expected ${label} to have byte length of \`${byteLength}\`, got \`${value.byteLength}\``,
|
17 | validator: value => value.byteLength === byteLength,
|
18 | });
|
19 | }
|
20 | |
21 |
|
22 |
|
23 |
|
24 |
|
25 | minByteLength(byteLength) {
|
26 | return this.addValidator({
|
27 | message: (value, label) => `Expected ${label} to have a minimum byte length of \`${byteLength}\`, got \`${value.byteLength}\``,
|
28 | validator: value => value.byteLength >= byteLength,
|
29 | negatedMessage: (value, label) => `Expected ${label} to have a maximum byte length of \`${byteLength - 1}\`, got \`${value.byteLength}\``,
|
30 | });
|
31 | }
|
32 | |
33 |
|
34 |
|
35 |
|
36 |
|
37 | maxByteLength(byteLength) {
|
38 | return this.addValidator({
|
39 | message: (value, label) => `Expected ${label} to have a maximum byte length of \`${byteLength}\`, got \`${value.byteLength}\``,
|
40 | validator: value => value.byteLength <= byteLength,
|
41 | negatedMessage: (value, label) => `Expected ${label} to have a minimum byte length of \`${byteLength + 1}\`, got \`${value.byteLength}\``,
|
42 | });
|
43 | }
|
44 | }
|