Skip to content

Commit

Permalink
feat(validators): add validator for non-negative number and non-posit…
Browse files Browse the repository at this point in the history
…ive number
  • Loading branch information
TomokiMiyauci committed May 25, 2023
1 parent c971484 commit 597a8ca
Show file tree
Hide file tree
Showing 6 changed files with 46 additions and 0 deletions.
10 changes: 10 additions & 0 deletions _tools/meta.ts
Original file line number Diff line number Diff line change
Expand Up @@ -72,11 +72,21 @@ export const makeOptions = (version: string): BuildOptions => ({
version: "1.3.1",
subPath: "number/is_positive_number.js",
},
"https://deno.land/x/isx@1.3.1/number/is_non_positive_number.ts": {
name: "@miyauci/isx",
version: "1.3.1",
subPath: "number/is_non_positive_number.js",
},
"https://deno.land/x/isx@1.3.1/number/is_negative_number.ts": {
name: "@miyauci/isx",
version: "1.3.1",
subPath: "number/is_negative_number.js",
},
"https://deno.land/x/isx@1.3.1/number/is_non_negative_number.ts": {
name: "@miyauci/isx",
version: "1.3.1",
subPath: "number/is_non_negative_number.js",
},
"https://deno.land/x/isx@1.3.1/date/is_valid_date.ts": {
name: "@miyauci/isx",
version: "1.3.1",
Expand Down
6 changes: 6 additions & 0 deletions combinator.ts
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,8 @@ import { OrValidator } from "./validators/operators/or.ts";
import { TypeValidator } from "./validators/operators/typeof.ts";
import { ValidDateValidator } from "./validators/date/valid_date.ts";
import { Error } from "./constants.ts";
import { NonNegativeNumberValidator } from "./validators/number/non_negative_number.ts";
import { NonPositiveNumberValidator } from "./validators/number/non_positive_number.ts";

export function message(this: Display, { input }: { input: unknown }): string {
return interpolate(Error.ShouldBeBut, [this, typeof input]);
Expand Down Expand Up @@ -155,6 +157,10 @@ export const uint32 = /* @__PURE__ */ and(
export const negative = /* @__PURE__ */ new NegativeNumberValidator().expect(
shouldBeBut,
);
export const nonNegative = /* @__PURE__ */ new NonNegativeNumberValidator()
.expect(shouldBeBut);
export const nonPositive = /* @__PURE__ */ new NonPositiveNumberValidator()
.expect(shouldBeBut);
export const positive = /* @__PURE__ */ new PositiveNumberValidator()
.expect(shouldBeBut);

Expand Down
2 changes: 2 additions & 0 deletions deps.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ export { isNonNullable } from "https://deno.land/x/isx@1.3.1/is_non_nullable.ts"
export { isString } from "https://deno.land/x/isx@1.3.1/is_string.ts";
export { isPositiveNumber } from "https://deno.land/x/isx@1.3.1/number/is_positive_number.ts";
export { isNegativeNumber } from "https://deno.land/x/isx@1.3.1/number/is_negative_number.ts";
export { isNonPositiveNumber } from "https://deno.land/x/isx@1.3.1/number/is_non_positive_number.ts";
export { isNonNegativeNumber } from "https://deno.land/x/isx@1.3.1/number/is_non_negative_number.ts";
export { isValidDate } from "https://deno.land/x/isx@1.3.1/date/is_valid_date.ts";
export { filterKeys } from "https://deno.land/std@0.187.0/collections/filter_keys.ts";
export { default as escapeStringRegex } from "https://esm.sh/escape-string-regexp@5.0.0?pin=v122";
Expand Down
2 changes: 2 additions & 0 deletions mod.ts
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,8 @@ export {
ne,
negative,
nonEmpty,
nonNegative,
nonPositive,
not,
nullish,
number,
Expand Down
13 changes: 13 additions & 0 deletions validators/number/non_negative_number.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
// Copyright 2023-latest Tomoki Miyauchi. All rights reserved. MIT license.
// This module is browser compatible.

import { ScalarValidator } from "../../utils.ts";
import { isNonNegativeNumber, ToPredicate } from "../../deps.ts";

export class NonNegativeNumberValidator extends ScalarValidator<number> {
is = isNonNegativeNumber as ToPredicate<typeof isNonNegativeNumber>;

override toString() {
return "non-negative number";
}
}
13 changes: 13 additions & 0 deletions validators/number/non_positive_number.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
// Copyright 2023-latest Tomoki Miyauchi. All rights reserved. MIT license.
// This module is browser compatible.

import { ScalarValidator } from "../../utils.ts";
import { isNonPositiveNumber, ToPredicate } from "../../deps.ts";

export class NonPositiveNumberValidator extends ScalarValidator<number> {
is = isNonPositiveNumber as ToPredicate<typeof isNonPositiveNumber>;

override toString() {
return "non-positive number";
}
}

0 comments on commit 597a8ca

Please sign in to comment.