@augment-vir/assert 30.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE-CC0 +121 -0
- package/LICENSE-MIT +21 -0
- package/dist/assertions/boolean.d.ts +97 -0
- package/dist/assertions/boolean.js +47 -0
- package/dist/assertions/boundary.d.ts +83 -0
- package/dist/assertions/boundary.js +104 -0
- package/dist/assertions/enum.d.ts +38 -0
- package/dist/assertions/enum.js +42 -0
- package/dist/assertions/equality/entry-equality.d.ts +40 -0
- package/dist/assertions/equality/entry-equality.js +56 -0
- package/dist/assertions/equality/json-equality.d.ts +42 -0
- package/dist/assertions/equality/json-equality.js +75 -0
- package/dist/assertions/equality/simple-equality.d.ts +85 -0
- package/dist/assertions/equality/simple-equality.js +61 -0
- package/dist/assertions/equality/ts-type-equality.d.ts +42 -0
- package/dist/assertions/equality/ts-type-equality.js +18 -0
- package/dist/assertions/extendable-assertions.d.ts +762 -0
- package/dist/assertions/extendable-assertions.js +108 -0
- package/dist/assertions/http.d.ts +36 -0
- package/dist/assertions/http.js +41 -0
- package/dist/assertions/instance.d.ts +43 -0
- package/dist/assertions/instance.js +41 -0
- package/dist/assertions/keys.d.ts +90 -0
- package/dist/assertions/keys.js +111 -0
- package/dist/assertions/length.d.ts +56 -0
- package/dist/assertions/length.js +68 -0
- package/dist/assertions/nullish.d.ts +43 -0
- package/dist/assertions/nullish.js +42 -0
- package/dist/assertions/numeric.d.ts +69 -0
- package/dist/assertions/numeric.js +60 -0
- package/dist/assertions/output.d.ts +83 -0
- package/dist/assertions/output.example.d.ts +1 -0
- package/dist/assertions/output.example.js +13 -0
- package/dist/assertions/output.js +173 -0
- package/dist/assertions/primitive.d.ts +58 -0
- package/dist/assertions/primitive.js +62 -0
- package/dist/assertions/promise.d.ts +65 -0
- package/dist/assertions/promise.js +69 -0
- package/dist/assertions/regexp.d.ts +19 -0
- package/dist/assertions/regexp.js +18 -0
- package/dist/assertions/runtime-type.d.ts +274 -0
- package/dist/assertions/runtime-type.example.d.ts +1 -0
- package/dist/assertions/runtime-type.example.js +3 -0
- package/dist/assertions/runtime-type.js +242 -0
- package/dist/assertions/throws.d.ts +109 -0
- package/dist/assertions/throws.example.d.ts +1 -0
- package/dist/assertions/throws.example.js +11 -0
- package/dist/assertions/throws.js +166 -0
- package/dist/assertions/uuid.d.ts +35 -0
- package/dist/assertions/uuid.js +33 -0
- package/dist/assertions/values.d.ts +106 -0
- package/dist/assertions/values.js +113 -0
- package/dist/augments/assertion-exports.d.ts +5 -0
- package/dist/augments/assertion-exports.js +1 -0
- package/dist/augments/assertion.error.d.ts +23 -0
- package/dist/augments/assertion.error.example.d.ts +1 -0
- package/dist/augments/assertion.error.example.js +3 -0
- package/dist/augments/assertion.error.js +26 -0
- package/dist/augments/guards/assert-wrap.d.ts +244 -0
- package/dist/augments/guards/assert-wrap.example.d.ts +1 -0
- package/dist/augments/guards/assert-wrap.example.js +9 -0
- package/dist/augments/guards/assert-wrap.js +32 -0
- package/dist/augments/guards/assert.d.ts +177 -0
- package/dist/augments/guards/assert.example.d.ts +1 -0
- package/dist/augments/guards/assert.example.js +4 -0
- package/dist/augments/guards/assert.js +32 -0
- package/dist/augments/guards/check-wrap.d.ts +247 -0
- package/dist/augments/guards/check-wrap.example.d.ts +1 -0
- package/dist/augments/guards/check-wrap.example.js +9 -0
- package/dist/augments/guards/check-wrap.js +34 -0
- package/dist/augments/guards/check.d.ts +229 -0
- package/dist/augments/guards/check.example.d.ts +1 -0
- package/dist/augments/guards/check.example.js +5 -0
- package/dist/augments/guards/check.js +21 -0
- package/dist/augments/guards/wait-until.d.ts +262 -0
- package/dist/augments/guards/wait-until.example.d.ts +1 -0
- package/dist/augments/guards/wait-until.example.js +13 -0
- package/dist/augments/guards/wait-until.js +34 -0
- package/dist/augments/if-equals.d.ts +17 -0
- package/dist/augments/if-equals.js +1 -0
- package/dist/guard-types/assert-function.d.ts +2 -0
- package/dist/guard-types/assert-function.js +3 -0
- package/dist/guard-types/assert-wrap-function.d.ts +9 -0
- package/dist/guard-types/assert-wrap-function.js +14 -0
- package/dist/guard-types/check-function.d.ts +11 -0
- package/dist/guard-types/check-function.js +22 -0
- package/dist/guard-types/check-wrap-wrapper-function.d.ts +9 -0
- package/dist/guard-types/check-wrap-wrapper-function.js +19 -0
- package/dist/guard-types/guard-group.d.ts +13 -0
- package/dist/guard-types/guard-group.js +3 -0
- package/dist/guard-types/guard-override.d.ts +4 -0
- package/dist/guard-types/guard-override.js +10 -0
- package/dist/guard-types/wait-until-function.d.ts +63 -0
- package/dist/guard-types/wait-until-function.js +95 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.js +8 -0
- package/dist/test-timeout.mock.d.ts +3 -0
- package/dist/test-timeout.mock.js +8 -0
- package/package.json +54 -0
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { MaybePromise, NarrowToExpected } from '@augment-vir/core';
|
|
2
|
+
import { WaitUntilOptions } from '../../guard-types/wait-until-function.js';
|
|
3
|
+
/**
|
|
4
|
+
* Check if the inputs are equal via `JSON.stringify` (property order on objects does not matter).
|
|
5
|
+
*
|
|
6
|
+
* @throws `JsonStringifyError` if the inputs fail when passed to `JSON.stringify`.
|
|
7
|
+
*/
|
|
8
|
+
declare function jsonEquals<const Actual, const Expected extends Actual>(actual: Actual, expected: Expected, failureMessage?: string | undefined): asserts actual is Expected;
|
|
9
|
+
declare function notJsonEquals(actual: unknown, expected: unknown, failureMessage?: string | undefined): void;
|
|
10
|
+
export declare const jsonEqualityGuards: {
|
|
11
|
+
assertions: {
|
|
12
|
+
/**
|
|
13
|
+
* Check that two values are deeply equal when stringified into JSON. This will fail or may not
|
|
14
|
+
* make any sense if the given values are not valid JSON. This internally sorts all given object
|
|
15
|
+
* keys so it is insensitive to object key order.
|
|
16
|
+
*
|
|
17
|
+
* Type guards the first value.
|
|
18
|
+
*/
|
|
19
|
+
jsonEquals: typeof jsonEquals;
|
|
20
|
+
/**
|
|
21
|
+
* Check that two values are _not_ deeply equal when stringified into JSON. This will fail or
|
|
22
|
+
* may not make any sense if the given values are not valid JSON. This internally sorts all
|
|
23
|
+
* given object keys so it is insensitive to object key order.
|
|
24
|
+
*
|
|
25
|
+
* Performs no type guarding.
|
|
26
|
+
*/
|
|
27
|
+
notJsonEquals: typeof notJsonEquals;
|
|
28
|
+
};
|
|
29
|
+
checkOverrides: {
|
|
30
|
+
jsonEquals: <Actual, Expected extends Actual>(actual: Actual, expected: Expected) => actual is Expected;
|
|
31
|
+
};
|
|
32
|
+
assertWrapOverrides: {
|
|
33
|
+
jsonEquals: <Actual, Expected extends Actual>(actual: Actual, expected: Expected, failureMessage?: string | undefined) => NarrowToExpected<Actual, Expected>;
|
|
34
|
+
};
|
|
35
|
+
checkWrapOverrides: {
|
|
36
|
+
jsonEquals: <Actual, Expected extends Actual>(actual: Actual, expected: Expected) => NarrowToExpected<Actual, Expected> | undefined;
|
|
37
|
+
};
|
|
38
|
+
waitUntilOverrides: {
|
|
39
|
+
jsonEquals: <Actual, Expected extends Actual>(expected: Expected, callback: () => MaybePromise<Actual>, options?: WaitUntilOptions | undefined, failureMessage?: string | undefined) => Promise<NarrowToExpected<Actual, Expected>>;
|
|
40
|
+
};
|
|
41
|
+
};
|
|
42
|
+
export {};
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { extractErrorMessage } from '@augment-vir/core';
|
|
2
|
+
import { AssertionError } from '../../augments/assertion.error.js';
|
|
3
|
+
import { autoGuard } from '../../guard-types/guard-override.js';
|
|
4
|
+
function baseJsonEquals(a, b) {
|
|
5
|
+
return JSON.stringify(a) === JSON.stringify(b);
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Check if the inputs are equal via `JSON.stringify` (property order on objects does not matter).
|
|
9
|
+
*
|
|
10
|
+
* @throws `JsonStringifyError` if the inputs fail when passed to `JSON.stringify`.
|
|
11
|
+
*/
|
|
12
|
+
function jsonEquals(actual, expected, failureMessage) {
|
|
13
|
+
try {
|
|
14
|
+
recursiveJsonEquals(actual, expected);
|
|
15
|
+
}
|
|
16
|
+
catch (error) {
|
|
17
|
+
throw new AssertionError(extractErrorMessage(error), failureMessage);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
function notJsonEquals(actual, expected, failureMessage) {
|
|
21
|
+
try {
|
|
22
|
+
jsonEquals(actual, expected);
|
|
23
|
+
}
|
|
24
|
+
catch {
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
throw new AssertionError('Values are JSON equal.', failureMessage);
|
|
28
|
+
}
|
|
29
|
+
function recursiveJsonEquals(actual, expected) {
|
|
30
|
+
const isBaseJsonEqual = baseJsonEquals(actual, expected);
|
|
31
|
+
if (actual === expected || isBaseJsonEqual) {
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
if (actual != null &&
|
|
35
|
+
expected != null &&
|
|
36
|
+
typeof actual === 'object' &&
|
|
37
|
+
typeof expected === 'object') {
|
|
38
|
+
const aKeys = Object.keys(actual).sort();
|
|
39
|
+
const bKeys = Object.keys(expected).sort();
|
|
40
|
+
if (aKeys.length || bKeys.length) {
|
|
41
|
+
const areKeysEqual = baseJsonEquals(aKeys, bKeys);
|
|
42
|
+
if (!areKeysEqual) {
|
|
43
|
+
throw new Error('Values are JSON equal.');
|
|
44
|
+
}
|
|
45
|
+
Object.keys(actual).forEach((key) => {
|
|
46
|
+
try {
|
|
47
|
+
jsonEquals(actual[key], expected[key]);
|
|
48
|
+
}
|
|
49
|
+
catch (error) {
|
|
50
|
+
throw new Error(`JSON objects are not equal at key '${key}': ${extractErrorMessage(error)}`);
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
throw new Error('Values are not JSON equal.');
|
|
56
|
+
}
|
|
57
|
+
const assertions = {
|
|
58
|
+
jsonEquals,
|
|
59
|
+
notJsonEquals,
|
|
60
|
+
};
|
|
61
|
+
export const jsonEqualityGuards = {
|
|
62
|
+
assertions,
|
|
63
|
+
checkOverrides: {
|
|
64
|
+
jsonEquals: autoGuard(),
|
|
65
|
+
},
|
|
66
|
+
assertWrapOverrides: {
|
|
67
|
+
jsonEquals: autoGuard(),
|
|
68
|
+
},
|
|
69
|
+
checkWrapOverrides: {
|
|
70
|
+
jsonEquals: autoGuard(),
|
|
71
|
+
},
|
|
72
|
+
waitUntilOverrides: {
|
|
73
|
+
jsonEquals: autoGuard(),
|
|
74
|
+
},
|
|
75
|
+
};
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { MaybePromise, NarrowToExpected } from '@augment-vir/core';
|
|
2
|
+
import { WaitUntilOptions } from '../../guard-types/wait-until-function.js';
|
|
3
|
+
export declare function strictEquals<const Actual, const Expected extends Actual>(actual: Actual, expected: Expected, failureMessage?: string | undefined): asserts actual is Expected;
|
|
4
|
+
declare function notStrictEquals(actual: unknown, expected: unknown, failureMessage?: string | undefined): void;
|
|
5
|
+
declare function looseEquals(actual: unknown, expected: unknown, failureMessage?: string | undefined): void;
|
|
6
|
+
declare function notLooseEquals(actual: unknown, expected: unknown, failureMessage?: string | undefined): void;
|
|
7
|
+
export declare function deepEquals<const Actual, const Expected extends Actual>(actual: Actual, expected: Expected, failureMessage?: string | undefined): asserts actual is NarrowToExpected<Actual, Expected>;
|
|
8
|
+
declare function notDeepEquals(actual: unknown, expected: unknown, failureMessage?: string | undefined): void;
|
|
9
|
+
export declare const simpleEqualityGuards: {
|
|
10
|
+
assertions: {
|
|
11
|
+
/**
|
|
12
|
+
* Check that two values are strictly equal (using
|
|
13
|
+
* [`===`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Equality_comparisons_and_sameness#strict_equality_using)).
|
|
14
|
+
*
|
|
15
|
+
* Type guards the first value.
|
|
16
|
+
*/
|
|
17
|
+
strictEquals: typeof strictEquals;
|
|
18
|
+
/**
|
|
19
|
+
* Check that two values are _not_ strictly equal (using
|
|
20
|
+
* [`===`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Equality_comparisons_and_sameness#strict_equality_using)).
|
|
21
|
+
*
|
|
22
|
+
* Performs no type guarding.
|
|
23
|
+
*/
|
|
24
|
+
notStrictEquals: typeof notStrictEquals;
|
|
25
|
+
/**
|
|
26
|
+
* Check that two values are loosely equal (using
|
|
27
|
+
* [`==`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Equality_comparisons_and_sameness#loose_equality_using)).
|
|
28
|
+
*
|
|
29
|
+
* Performs no type guarding.
|
|
30
|
+
*/
|
|
31
|
+
looseEquals: typeof looseEquals;
|
|
32
|
+
/**
|
|
33
|
+
* Check that two values are _not_ loosely equal (using
|
|
34
|
+
* [`==`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Equality_comparisons_and_sameness#loose_equality_using)).
|
|
35
|
+
*
|
|
36
|
+
* Performs no type guarding.
|
|
37
|
+
*/
|
|
38
|
+
notLooseEquals: typeof notLooseEquals;
|
|
39
|
+
/**
|
|
40
|
+
* Check that two values are deeply equal using the
|
|
41
|
+
* [deep-eql](https://www.npmjs.com/package/deep-eql) package.
|
|
42
|
+
*
|
|
43
|
+
* Note that this check will be _expensive_. Whenever possible, use simpler equality checks
|
|
44
|
+
* instead, such as:
|
|
45
|
+
*
|
|
46
|
+
* - `.strictEquals()`
|
|
47
|
+
* - `.entriesEqual()`
|
|
48
|
+
* - `.jsonEquals()`
|
|
49
|
+
*
|
|
50
|
+
* Type guards the first value.
|
|
51
|
+
*/
|
|
52
|
+
deepEquals: typeof deepEquals;
|
|
53
|
+
/**
|
|
54
|
+
* Check that two values are _not_ deeply equal using the
|
|
55
|
+
* [deep-eql](https://www.npmjs.com/package/deep-eql) package.
|
|
56
|
+
*
|
|
57
|
+
* Note that this check will be _expensive_. Whenever possible, use simpler equality checks
|
|
58
|
+
* instead, such as:
|
|
59
|
+
*
|
|
60
|
+
* - `.notStrictEquals()`
|
|
61
|
+
* - `.notEntriesEqual()`
|
|
62
|
+
* - `.notJsonEquals()`
|
|
63
|
+
*
|
|
64
|
+
* Performs no type guarding.
|
|
65
|
+
*/
|
|
66
|
+
notDeepEquals: typeof notDeepEquals;
|
|
67
|
+
};
|
|
68
|
+
checkOverrides: {
|
|
69
|
+
strictEquals: <Actual, Expected extends Actual>(actual: Actual, expected: Expected) => actual is Expected;
|
|
70
|
+
deepEquals: <Actual, Expected extends Actual>(actual: Actual, expected: Expected) => actual is Expected;
|
|
71
|
+
};
|
|
72
|
+
assertWrapOverrides: {
|
|
73
|
+
strictEquals: <Actual, Expected extends Actual>(actual: Actual, expected: Expected, failureMessage?: string | undefined) => NarrowToExpected<Actual, Expected>;
|
|
74
|
+
deepEquals: <Actual, Expected extends Actual>(actual: Actual, expected: Expected, failureMessage?: string | undefined) => NarrowToExpected<Actual, Expected>;
|
|
75
|
+
};
|
|
76
|
+
checkWrapOverrides: {
|
|
77
|
+
strictEquals: <Actual, Expected extends Actual>(actual: Actual, expected: Expected) => Expected | undefined;
|
|
78
|
+
deepEquals: <Actual, Expected extends Actual>(actual: Actual, expected: Expected) => NarrowToExpected<Actual, Expected> | undefined;
|
|
79
|
+
};
|
|
80
|
+
waitUntilOverrides: {
|
|
81
|
+
strictEquals: <Actual, Expected extends Actual>(expected: Expected, callback: () => MaybePromise<Actual>, options?: WaitUntilOptions | undefined, failureMessage?: string | undefined) => Promise<NarrowToExpected<Actual, Expected>>;
|
|
82
|
+
deepEquals: <Actual, Expected extends Actual>(expected: Expected, callback: () => MaybePromise<Actual>, options?: WaitUntilOptions | undefined, failureMessage?: string | undefined) => Promise<NarrowToExpected<Actual, Expected>>;
|
|
83
|
+
};
|
|
84
|
+
};
|
|
85
|
+
export {};
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { stringify } from '@augment-vir/core';
|
|
2
|
+
import deepEqual from 'deep-eql';
|
|
3
|
+
import { AssertionError } from '../../augments/assertion.error.js';
|
|
4
|
+
import { autoGuard } from '../../guard-types/guard-override.js';
|
|
5
|
+
export function strictEquals(actual, expected, failureMessage) {
|
|
6
|
+
if (actual !== expected) {
|
|
7
|
+
throw new AssertionError(`\n\n${stringify(actual)}\n\ndoes not strictly equal\n\n${stringify(expected)}\n\n`, failureMessage);
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
function notStrictEquals(actual, expected, failureMessage) {
|
|
11
|
+
if (actual === expected) {
|
|
12
|
+
throw new AssertionError(`\n\n${stringify(actual)}\n\nstrictly equals\n\n${stringify(expected)}\n\n`, failureMessage);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
function looseEquals(actual, expected, failureMessage) {
|
|
16
|
+
if (actual != expected) {
|
|
17
|
+
throw new AssertionError(`\n\n${stringify(actual)}\n\ndoes not loosely equal\n\n${stringify(expected)}\n\n`, failureMessage);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
function notLooseEquals(actual, expected, failureMessage) {
|
|
21
|
+
if (actual == expected) {
|
|
22
|
+
throw new AssertionError(`\n\n${stringify(actual)}\n\nloosely equals\n\n${stringify(expected)}\n\n`, failureMessage);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
export function deepEquals(actual, expected, failureMessage) {
|
|
26
|
+
if (!deepEqual(actual, expected)) {
|
|
27
|
+
throw new AssertionError(`\n\n${stringify(actual)}\n\ndoes not deeply equal\n\n${stringify(expected)}\n\n`, failureMessage);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
function notDeepEquals(actual, expected, failureMessage) {
|
|
31
|
+
if (deepEqual(actual, expected)) {
|
|
32
|
+
throw new AssertionError(`\n\n${stringify(actual)}\n\ndeeply equals\n\n${stringify(expected)}\n\n`, failureMessage);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
const assertions = {
|
|
36
|
+
strictEquals,
|
|
37
|
+
notStrictEquals,
|
|
38
|
+
looseEquals,
|
|
39
|
+
notLooseEquals,
|
|
40
|
+
deepEquals,
|
|
41
|
+
notDeepEquals,
|
|
42
|
+
};
|
|
43
|
+
export const simpleEqualityGuards = {
|
|
44
|
+
assertions,
|
|
45
|
+
checkOverrides: {
|
|
46
|
+
strictEquals: autoGuard(),
|
|
47
|
+
deepEquals: autoGuard(),
|
|
48
|
+
},
|
|
49
|
+
assertWrapOverrides: {
|
|
50
|
+
strictEquals: autoGuard(),
|
|
51
|
+
deepEquals: autoGuard(),
|
|
52
|
+
},
|
|
53
|
+
checkWrapOverrides: {
|
|
54
|
+
strictEquals: autoGuard(),
|
|
55
|
+
deepEquals: autoGuard(),
|
|
56
|
+
},
|
|
57
|
+
waitUntilOverrides: {
|
|
58
|
+
strictEquals: autoGuard(),
|
|
59
|
+
deepEquals: autoGuard(),
|
|
60
|
+
},
|
|
61
|
+
};
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { ExpectTypeOf } from 'expect-type';
|
|
2
|
+
type AssertTypeOf<TestingType> = {
|
|
3
|
+
equals: ExpectTypeOf<TestingType, {
|
|
4
|
+
positive: true;
|
|
5
|
+
}>['toEqualTypeOf'];
|
|
6
|
+
notEquals: ExpectTypeOf<TestingType, {
|
|
7
|
+
positive: false;
|
|
8
|
+
}>['toEqualTypeOf'];
|
|
9
|
+
matches: ExpectTypeOf<TestingType, {
|
|
10
|
+
positive: true;
|
|
11
|
+
}>['toMatchTypeOf'];
|
|
12
|
+
notMatches: ExpectTypeOf<TestingType, {
|
|
13
|
+
positive: false;
|
|
14
|
+
}>['toMatchTypeOf'];
|
|
15
|
+
};
|
|
16
|
+
declare function tsType<Actual>(
|
|
17
|
+
/** Run-time value to type check. */
|
|
18
|
+
input: Actual): AssertTypeOf<Actual>;
|
|
19
|
+
/** Uses the expect-type package to assert type matching. */
|
|
20
|
+
declare function tsType<Actual>(): AssertTypeOf<Actual>;
|
|
21
|
+
export declare const tsTypeGuards: {
|
|
22
|
+
assertions: {
|
|
23
|
+
/**
|
|
24
|
+
* Check if a value or type matches type expectations. Use this to write type tests.
|
|
25
|
+
*
|
|
26
|
+
* This should not be used in production code. It won't cause any issues there, but it also
|
|
27
|
+
* provides no value there.
|
|
28
|
+
*
|
|
29
|
+
* Performs no type guarding.
|
|
30
|
+
*
|
|
31
|
+
* @example
|
|
32
|
+
*
|
|
33
|
+
* ```ts
|
|
34
|
+
* import {assert} from '@augment-vir/assert';
|
|
35
|
+
*
|
|
36
|
+
* assert.tsType('hello').equals<string>();
|
|
37
|
+
* ```
|
|
38
|
+
*/
|
|
39
|
+
tsType: typeof tsType;
|
|
40
|
+
};
|
|
41
|
+
};
|
|
42
|
+
export {};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/** Uses the expect-type package to assert type matching. */
|
|
2
|
+
function tsType(
|
|
3
|
+
/** Run-time value to type check. */
|
|
4
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
5
|
+
input) {
|
|
6
|
+
return {
|
|
7
|
+
equals: () => { },
|
|
8
|
+
notEquals: () => { },
|
|
9
|
+
matches: () => { },
|
|
10
|
+
notMatches: () => { },
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
const assertions = {
|
|
14
|
+
tsType,
|
|
15
|
+
};
|
|
16
|
+
export const tsTypeGuards = {
|
|
17
|
+
assertions,
|
|
18
|
+
};
|