UNPKG

1.67 kBJavaScriptView Raw
1import { Predicate } from './predicate.js';
2export class ArrayBufferPredicate extends Predicate {
3 /**
4 Test an array buffer to have a specific byte length.
5
6 @param byteLength - The byte length of the array buffer.
7 */
8 byteLength(byteLength) {
9 return this.addValidator({
10 message: (value, label) => `Expected ${label} to have byte length of \`${byteLength}\`, got \`${value.byteLength}\``,
11 validator: value => value.byteLength === byteLength,
12 });
13 }
14 /**
15 Test an array buffer to have a minimum byte length.
16
17 @param byteLength - The minimum byte length of the array buffer.
18 */
19 minByteLength(byteLength) {
20 return this.addValidator({
21 message: (value, label) => `Expected ${label} to have a minimum byte length of \`${byteLength}\`, got \`${value.byteLength}\``,
22 validator: value => value.byteLength >= byteLength,
23 negatedMessage: (value, label) => `Expected ${label} to have a maximum byte length of \`${byteLength - 1}\`, got \`${value.byteLength}\``,
24 });
25 }
26 /**
27 Test an array buffer to have a minimum byte length.
28
29 @param length - The minimum byte length of the array buffer.
30 */
31 maxByteLength(byteLength) {
32 return this.addValidator({
33 message: (value, label) => `Expected ${label} to have a maximum byte length of \`${byteLength}\`, got \`${value.byteLength}\``,
34 validator: value => value.byteLength <= byteLength,
35 negatedMessage: (value, label) => `Expected ${label} to have a minimum byte length of \`${byteLength + 1}\`, got \`${value.byteLength}\``,
36 });
37 }
38}