assertion
Assertion collection for JavaScript data.
Module structure and capability
Module can be divided into two categories.
Top-type module
Top-type module can accept any JavaScript data. In other words, it accepts the
unknown
type.
The module directly under namespace is it.
Sub-type module
Sub-type modules are modules that perform type-dependent operations. It can use type-specific methods and compare values.
For example, the module under number
is a sub-type module that takes a
number
type as an argument.
Common
All function signatures have an asserts
specifier.
If the assertion fails, an error is thrown. The error is an Error
object.
Also, there are no error messages by default.
You can specify error messages in the second argument.
assertArray
Assert the input is array.
import { assertArray } from "https://deno.land/x/assertion@$VERSION/assert_array.ts";
import {
assertFalse,
assertThrows,
} from "https://deno.land/std/testing/asserts.ts";
assertFalse(assertArray([]));
assertThrows(() => assertArray({}));
assertAsyncIterable
Assert the input is AsyncIterable
.
import { assertAsyncIterable } from "https://deno.land/x/assertion@$VERSION/assert_async_iterable.ts";
import {
assertFalse,
assertThrows,
} from "https://deno.land/std/testing/asserts.ts";
assertFalse(
assertAsyncIterable({
async *[Symbol.asyncIterator]() {
yield "hello";
},
}),
);
assertThrows(() => assertAsyncIterable(() => {}));
assertBigint
Assert the input is bigint
.
import { assertBigint } from "https://deno.land/x/assertion@$VERSION/assert_bigint.ts";
import {
assertFalse,
assertThrows,
} from "https://deno.land/std/testing/asserts.ts";
assertFalse(assertBigint(1000n));
assertThrows(() => assertBigint(undefined));
assertBoolean
Assert the input is boolean
.
import { assertBoolean } from "https://deno.land/x/assertion@$VERSION/assert_boolean.ts";
import {
assertFalse,
assertThrows,
} from "https://deno.land/std/testing/asserts.ts";
assertFalse(assertBoolean(true));
assertThrows(() => assertBoolean(null));
assertDate
Assert the input is Date
.
import { assertDate } from "https://deno.land/x/assertion@$VERSION/assert_date.ts";
import {
assertFalse,
assertThrows,
} from "https://deno.land/std/testing/asserts.ts";
assertFalse(assertDate(new Date()));
assertThrows(() => assertDate({}));
assertError
Assert the input is Error
.
import { assertError } from "https://deno.land/x/assertion@$VERSION/assert_error.ts";
import {
assertFalse,
assertThrows,
} from "https://deno.land/std/testing/asserts.ts";
assertFalse(assertError(Error()));
assertFalse(assertError(new SyntaxError()));
assertThrows(() => assertError(new Date()));
assertFunction
Assert the input is Function
.
import { assertFunction } from "https://deno.land/x/assertion@$VERSION/assert_function.ts";
import {
assertFalse,
assertThrows,
} from "https://deno.land/std/testing/asserts.ts";
assertFalse(assertFunction(() => {}));
assertThrows(() => assertFunction({}));
assertIterable
Assert the input is Iterable
.
import { assertIterable } from "https://deno.land/x/assertion@$VERSION/assert_iterable.ts";
import {
assertFalse,
assertThrows,
} from "https://deno.land/std/testing/asserts.ts";
assertFalse(assertIterable(""));
assertThrows(() => assertIterable({}));
assertNonNullable
Assert the input is NonNullable
.
import { assertNonNullable } from "https://deno.land/x/assertion@$VERSION/assert_non_nullable.ts";
import {
assertFalse,
assertThrows,
} from "https://deno.land/std/testing/asserts.ts";
assertFalse(assertNonNullable(""));
assertThrows(() => assertNonNullable(null));
assertThrows(() => assertNonNullable(undefined));
assertNull
Assert the input is null
.
import { assertNull } from "https://deno.land/x/assertion@$VERSION/assert_null.ts";
import {
assertFalse,
assertThrows,
} from "https://deno.land/std/testing/asserts.ts";
assertFalse(assertNull(null));
assertThrows(() => assertNull(undefined));
assertNullable
Assert the input is null
or undefined
.
import { assertNullable } from "https://deno.land/x/assertion@$VERSION/assert_nullable.ts";
import {
assertFalse,
assertThrows,
} from "https://deno.land/std/testing/asserts.ts";
assertFalse(assertNullable(null));
assertFalse(assertNullable(undefined));
assertThrows(() => assertNullable({}));
assertNumber
Assert the input is number
.
import { assertNumber } from "https://deno.land/x/assertion@$VERSION/assert_number.ts";
import {
assertFalse,
assertThrows,
} from "https://deno.land/std/testing/asserts.ts";
assertFalse(assertNumber(1000));
assertThrows(() => assertNumber("hello world"));
assertObject
Assert the input is object
.
import { assertObject } from "https://deno.land/x/assertion@$VERSION/assert_object.ts";
import {
assertFalse,
assertThrows,
} from "https://deno.land/std/testing/asserts.ts";
assertFalse(assertObject({}));
assertThrows(() => assertObject(null));
assertPrimitive
Assert the input is Primitive
.
import { assertPrimitive } from "https://deno.land/x/assertion@$VERSION/assert_primitive.ts";
import {
assertFalse,
assertThrows,
} from "https://deno.land/std/testing/asserts.ts";
assertFalse(assertPrimitive(true));
assertThrows(() => assertPrimitive({}));
type Primitive =
| number
| string
| boolean
| bigint
| undefined
| null
| symbol;
assertPromise
Assert the input is Promise
.
import { assertPromise } from "https://deno.land/x/assertion@$VERSION/assert_promise.ts";
import {
assertFalse,
assertThrows,
} from "https://deno.land/std/testing/asserts.ts";
assertFalse(assertPromise(Promise.resolve()));
assertThrows(() => assertPromise({}));
assertRegExp
Assert the input is RegExp
.
import { assertRegExp } from "https://deno.land/x/assertion@$VERSION/assert_reg_exp.ts";
import {
assertFalse,
assertThrows,
} from "https://deno.land/std/testing/asserts.ts";
assertFalse(assertRegExp(new RegExp("")));
assertThrows(() => assertRegExp({}));
assertString
Assert the input is string
.
import { assertString } from "https://deno.land/x/assertion@$VERSION/assert_string.ts";
import {
assertFalse,
assertThrows,
} from "https://deno.land/std/testing/asserts.ts";
assertFalse(assertString("hello world"));
assertThrows(() => assertString(1000));
assertSymbol
Assert the input is symbol
.
import { assertSymbol } from "https://deno.land/x/assertion@$VERSION/assert_symbol.ts";
import {
assertFalse,
assertThrows,
} from "https://deno.land/std/testing/asserts.ts";
assertFalse(assertSymbol(Symbol("symbol")));
assertThrows(() => assertSymbol(null));
assertUndefined
Assert the input is undefined
.
import { assertUndefined } from "https://deno.land/x/assertion@$VERSION/assert_undefined.ts";
import {
assertFalse,
assertThrows,
} from "https://deno.land/std/testing/asserts.ts";
assertFalse(assertUndefined(undefined));
assertThrows(() => assertUndefined(null));
Number subtypes
Assert a subtype of number
. All assertion functions must satisfy ⊂ number
.
assertEven
Assert the input is even.
import { assertEven } from "https://deno.land/x/assertion@$VERSION/number/assert_even.ts";
import {
assertFalse,
assertThrows,
} from "https://deno.land/std/testing/asserts.ts";
assertFalse(assertEven(0));
assertThrows(() => assertEven(1));
assertNegativeNumber
Assert the input is negative number.
import { assertNegativeNumber } from "https://deno.land/x/assertion@$VERSION/number/assert_negative_number.ts";
import {
assertFalse,
assertThrows,
} from "https://deno.land/std/testing/asserts.ts";
assertFalse(assertNegativeNumber(-1));
assertThrows(() => assertNegativeNumber(0));
assertNonNegativeInteger
Assert the input is non-negative integer.
import { assertNonNegativeInteger } from "https://deno.land/x/assertion@$VERSION/number/assert_non_negative_integer.ts";
import {
assertFalse,
assertThrows,
} from "https://deno.land/std/testing/asserts.ts";
assertFalse(assertNonNegativeInteger(0));
assertFalse(assertNonNegativeInteger(1));
assertThrows(() => assertNonNegativeInteger(-1));
assertNonNegativeNumber
Assert the input is non-negative number. Non-negative number means greater than or equal to zero.
import { assertNonNegativeNumber } from "https://deno.land/x/assertion@$VERSION/number/assert_non_negative_number.ts";
import {
assertFalse,
assertThrows,
} from "https://deno.land/std/testing/asserts.ts";
assertFalse(assertNonNegativeNumber(0));
assertFalse(assertNonNegativeNumber(1.1));
assertThrows(() => assertNonNegativeNumber(-1));
assertNonPositiveNumber
Assert the input is non-positive number. Non-positive number means less than or equal to zero.
import { assertNonPositiveNumber } from "https://deno.land/x/assertion@$VERSION/number/assert_non_positive_number.ts";
import {
assertFalse,
assertThrows,
} from "https://deno.land/std/testing/asserts.ts";
assertFalse(assertNonPositiveNumber(0));
assertFalse(assertNonPositiveNumber(-1));
assertThrows(() => assertNonPositiveNumber(1));
assertOdd
Assert the input is odd.
import { assertOdd } from "https://deno.land/x/assertion@$VERSION/number/assert_odd.ts";
import {
assertFalse,
assertThrows,
} from "https://deno.land/std/testing/asserts.ts";
assertFalse(assertOdd(1));
assertThrows(() => assertOdd(0));
assertPositiveNumber
Assert the input is positive number.
import { assertPositiveNumber } from "https://deno.land/x/assertion@$VERSION/number/assert_positive_number.ts";
import {
assertFalse,
assertThrows,
} from "https://deno.land/std/testing/asserts.ts";
assertFalse(assertPositiveNumber(1));
assertThrows(() => assertPositiveNumber(0));
assertUnitInterval
Assert the input is unit interval. The unit interval means to the interval between 0 and 1 on the real number line.
import { assertUnitInterval } from "https://deno.land/x/assertion@$VERSION/number/assert_unit_interval.ts";
import {
assertFalse,
assertThrows,
} from "https://deno.land/std/testing/asserts.ts";
assertFalse(assertUnitInterval(0));
assertFalse(assertUnitInterval(1.0));
assertThrows(() => assertUnitInterval(-1));
Iterable subtypes
Assert a subtype of Iterable
. All assertion functions must satisfy ⊂
Iterable<unknown>
.
assertEmpty
Assert the input is empty.
import { assertEmpty } from "https://deno.land/x/assertion@$VERSION/iterable/assert_empty.ts";
import { assertFalse } from "https://deno.land/std/testing/asserts.ts";
assertFalse(assertEmpty(""));
assertFalse(assertEmpty([]));
assertFalse(assertEmpty(new Set()));
string:
If the input is a string, it has a ""
assertion.
array:
If the input is a array, it has a []
assertion.
assertNotEmpty
Assert the input is not empty.
import { assertNotEmpty } from "https://deno.land/x/assertion@$VERSION/iterable/assert_not_empty.ts";
import { assertFalse } from "https://deno.land/std/testing/asserts.ts";
assertFalse(assertNotEmpty("a"));
assertFalse(assertNotEmpty([0, 1]));
array:
If the input is a T[]
, it has a [T, ...T[]]
assertion.
assertSingle
Assert the input is single element.
import { assertSingle } from "https://deno.land/x/assertion@$VERSION/iterable/assert_single.ts";
import {
assert,
assertFalse,
assertThrows,
} from "https://deno.land/std/testing/asserts.ts";
assertFalse(assertSingle("a"));
assertFalse(assertSingle([0]));
assertThrows(() => assertSingle([0, 1, 2]));
array:
If the input is a T[]
, it has a [T]
assertion.
Date subtypes
Validates a subtype of Date
. All validate functions must satisfy ⊂ Date
.
assertValidDate
Assert the input is valid Date
.
import { assertValidDate } from "https://deno.land/x/assertion@$VERSION/date/assert_valid_date.ts";
import {
assertFalse,
assertThrows,
} from "https://deno.land/std/testing/asserts.ts";
assertFalse(assertValidDate(new Date("2000/1/1")));
assertThrows(() => assertValidDate(new Date("invalid")));
Bundle size
Bundle size is not exact. It is only a guide.
Usually, the actual bundle size is smaller than the indicated value.
Where is mod?
There is no single entry point such as mod
.
This prevents the inclusion of many unnecessary modules.
License
Copyright © 2023-present Tomoki Miyauchi.
Released under the MIT license