Skip to content

Commit 597a8ca

Browse files
committed
feat(validators): add validator for non-negative number and non-positive number
1 parent c971484 commit 597a8ca

6 files changed

Lines changed: 46 additions & 0 deletions

File tree

_tools/meta.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,11 +72,21 @@ export const makeOptions = (version: string): BuildOptions => ({
7272
version: "1.3.1",
7373
subPath: "number/is_positive_number.js",
7474
},
75+
"https://deno.land/x/isx@1.3.1/number/is_non_positive_number.ts": {
76+
name: "@miyauci/isx",
77+
version: "1.3.1",
78+
subPath: "number/is_non_positive_number.js",
79+
},
7580
"https://deno.land/x/isx@1.3.1/number/is_negative_number.ts": {
7681
name: "@miyauci/isx",
7782
version: "1.3.1",
7883
subPath: "number/is_negative_number.js",
7984
},
85+
"https://deno.land/x/isx@1.3.1/number/is_non_negative_number.ts": {
86+
name: "@miyauci/isx",
87+
version: "1.3.1",
88+
subPath: "number/is_non_negative_number.js",
89+
},
8090
"https://deno.land/x/isx@1.3.1/date/is_valid_date.ts": {
8191
name: "@miyauci/isx",
8292
version: "1.3.1",

combinator.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,8 @@ import { OrValidator } from "./validators/operators/or.ts";
3535
import { TypeValidator } from "./validators/operators/typeof.ts";
3636
import { ValidDateValidator } from "./validators/date/valid_date.ts";
3737
import { Error } from "./constants.ts";
38+
import { NonNegativeNumberValidator } from "./validators/number/non_negative_number.ts";
39+
import { NonPositiveNumberValidator } from "./validators/number/non_positive_number.ts";
3840

3941
export function message(this: Display, { input }: { input: unknown }): string {
4042
return interpolate(Error.ShouldBeBut, [this, typeof input]);
@@ -155,6 +157,10 @@ export const uint32 = /* @__PURE__ */ and(
155157
export const negative = /* @__PURE__ */ new NegativeNumberValidator().expect(
156158
shouldBeBut,
157159
);
160+
export const nonNegative = /* @__PURE__ */ new NonNegativeNumberValidator()
161+
.expect(shouldBeBut);
162+
export const nonPositive = /* @__PURE__ */ new NonPositiveNumberValidator()
163+
.expect(shouldBeBut);
158164
export const positive = /* @__PURE__ */ new PositiveNumberValidator()
159165
.expect(shouldBeBut);
160166

deps.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ export { isNonNullable } from "https://deno.land/x/isx@1.3.1/is_non_nullable.ts"
88
export { isString } from "https://deno.land/x/isx@1.3.1/is_string.ts";
99
export { isPositiveNumber } from "https://deno.land/x/isx@1.3.1/number/is_positive_number.ts";
1010
export { isNegativeNumber } from "https://deno.land/x/isx@1.3.1/number/is_negative_number.ts";
11+
export { isNonPositiveNumber } from "https://deno.land/x/isx@1.3.1/number/is_non_positive_number.ts";
12+
export { isNonNegativeNumber } from "https://deno.land/x/isx@1.3.1/number/is_non_negative_number.ts";
1113
export { isValidDate } from "https://deno.land/x/isx@1.3.1/date/is_valid_date.ts";
1214
export { filterKeys } from "https://deno.land/std@0.187.0/collections/filter_keys.ts";
1315
export { default as escapeStringRegex } from "https://esm.sh/escape-string-regexp@5.0.0?pin=v122";

mod.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,8 @@ export {
3838
ne,
3939
negative,
4040
nonEmpty,
41+
nonNegative,
42+
nonPositive,
4143
not,
4244
nullish,
4345
number,
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
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 { isNonNegativeNumber, ToPredicate } from "../../deps.ts";
6+
7+
export class NonNegativeNumberValidator extends ScalarValidator<number> {
8+
is = isNonNegativeNumber as ToPredicate<typeof isNonNegativeNumber>;
9+
10+
override toString() {
11+
return "non-negative number";
12+
}
13+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
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 { isNonPositiveNumber, ToPredicate } from "../../deps.ts";
6+
7+
export class NonPositiveNumberValidator extends ScalarValidator<number> {
8+
is = isNonPositiveNumber as ToPredicate<typeof isNonPositiveNumber>;
9+
10+
override toString() {
11+
return "non-positive number";
12+
}
13+
}

0 commit comments

Comments
 (0)