Skip to content

Commit cb247f8

Browse files
committed
feat(lte): add validator for less than or equal operator
1 parent 629919b commit cb247f8

3 files changed

Lines changed: 23 additions & 0 deletions

File tree

combinator.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import { NonEmptyValidator } from "./validators/iterable/non_empty.ts";
1818
import { AndValidator } from "./validators/operators/and.ts";
1919
import { EqualityValidator } from "./validators/operators/eq.ts";
2020
import { LessThenValidator } from "./validators/operators/lt.ts";
21+
import { LessThenOrEqualValidator } from "./validators/operators/lte.ts";
2122
import { GreaterThenValidator } from "./validators/operators/gt.ts";
2223
import { GreaterThenOrEqualValidator } from "./validators/operators/gte.ts";
2324
import { TypeValidator } from "./validators/operators/typeof.ts";
@@ -35,6 +36,7 @@ export const optional = /* @__PURE__ */ lazy(OptionalValidator);
3536
export const nullish = /* @__PURE__ */ new NullishValidator();
3637
export const eq = /* @__PURE__ */ lazy(EqualityValidator);
3738
export const lt = /* @__PURE__ */ lazy(LessThenValidator);
39+
export const lte = /* @__PURE__ */ lazy(LessThenOrEqualValidator);
3840
export const gt = /* @__PURE__ */ lazy(GreaterThenValidator);
3941
export const gte = /* @__PURE__ */ lazy(GreaterThenOrEqualValidator);
4042
export const and = /* @__PURE__ */ lazy(AndValidator);

mod.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ export {
1515
int,
1616
item,
1717
lt,
18+
lte,
1819
maxCount,
1920
minCount,
2021
nonEmpty,

validators/operators/lte.ts

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
// Copyright 2023-latest Tomoki Miyauchi. All rights reserved. MIT license.
2+
// This module is browser compatible.
3+
4+
import { ScalarValidator } from "../../utils.ts";
5+
import { shouldBeBut } from "../utils.ts";
6+
7+
export class LessThenOrEqualValidator<In> extends ScalarValidator<In> {
8+
constructor(public base: In) {
9+
super();
10+
super.expect(shouldBeBut);
11+
}
12+
13+
override is(input: In): input is In {
14+
return input <= this.base;
15+
}
16+
17+
override toString(): string {
18+
return `<= ${this.base}`;
19+
}
20+
}

0 commit comments

Comments
 (0)