UNPKG

3.06 kBJavaScriptView Raw
1import { Predicate } from './predicate.js';
2export class TypedArrayPredicate extends Predicate {
3 /**
4 Test a typed array to have a specific byte length.
5
6 @param byteLength - The byte length of the typed array.
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 a typed array to have a minimum byte length.
16
17 @param byteLength - The minimum byte length of the typed array.
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 a typed array to have a minimum byte length.
28
29 @param length - The minimum byte length of the typed array.
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 /**
39 Test a typed array to have a specific length.
40
41 @param length - The length of the typed array.
42 */
43 length(length) {
44 return this.addValidator({
45 message: (value, label) => `Expected ${label} to have length \`${length}\`, got \`${value.length}\``,
46 validator: value => value.length === length,
47 });
48 }
49 /**
50 Test a typed array to have a minimum length.
51
52 @param length - The minimum length of the typed array.
53 */
54 minLength(length) {
55 return this.addValidator({
56 message: (value, label) => `Expected ${label} to have a minimum length of \`${length}\`, got \`${value.length}\``,
57 validator: value => value.length >= length,
58 negatedMessage: (value, label) => `Expected ${label} to have a maximum length of \`${length - 1}\`, got \`${value.length}\``,
59 });
60 }
61 /**
62 Test a typed array to have a maximum length.
63
64 @param length - The maximum length of the typed array.
65 */
66 maxLength(length) {
67 return this.addValidator({
68 message: (value, label) => `Expected ${label} to have a maximum length of \`${length}\`, got \`${value.length}\``,
69 validator: value => value.length <= length,
70 negatedMessage: (value, label) => `Expected ${label} to have a minimum length of \`${length + 1}\`, got \`${value.length}\``,
71 });
72 }
73}