From b8922dd378d00056f1b19ee8cb0d52da8048b74a Mon Sep 17 00:00:00 2001 From: PopGoesTheWza Date: Tue, 7 Sep 2021 12:18:53 +0200 Subject: [PATCH] chore: relocating --- source/index.ts | 8 +++----- test/test.ts | 13 ++++++------- 2 files changed, 9 insertions(+), 12 deletions(-) diff --git a/source/index.ts b/source/index.ts index ef2ac3f..8f0700a 100644 --- a/source/index.ts +++ b/source/index.ts @@ -150,8 +150,6 @@ is.string = isOfType('string'); const isNumberType = isOfType('number'); is.number = (value: unknown): value is number => isNumberType(value) && !is.nan(value); -is.propertyKey = (value: unknown): value is PropertyKey => is.any([is.string, is.number, is.symbol], value); - is.bigint = isOfType('bigint'); // eslint-disable-next-line @typescript-eslint/ban-types @@ -361,6 +359,7 @@ is.nonEmptySet = (value: unknown): value is Set => is.set(value) is.emptyMap = (value: unknown): value is Map => is.map(value) && value.size === 0; is.nonEmptyMap = (value: unknown): value is Map => is.map(value) && value.size > 0; +is.propertyKey = (value: unknown): value is PropertyKey => is.any([is.string, is.number, is.symbol], value); export type Predicate = (value: unknown) => boolean; @@ -450,7 +449,6 @@ interface Assert { undefined: (value: unknown) => asserts value is undefined; string: (value: unknown) => asserts value is string; number: (value: unknown) => asserts value is number; - propertyKey: (value: unknown) => asserts value is PropertyKey; bigint: (value: unknown) => asserts value is bigint; // eslint-disable-next-line @typescript-eslint/ban-types function_: (value: unknown) => asserts value is Function; @@ -522,6 +520,7 @@ interface Assert { nonEmptySet: (value: unknown) => asserts value is Set; emptyMap: (value: unknown) => asserts value is Map; nonEmptyMap: (value: unknown) => asserts value is Map; + propertyKey: (value: unknown) => asserts value is PropertyKey; // Numbers. evenInteger: (value: number) => asserts value is number; @@ -541,8 +540,6 @@ export const assert: Assert = { undefined: (value: unknown): asserts value is undefined => assertType(is.undefined(value), 'undefined', value), string: (value: unknown): asserts value is string => assertType(is.string(value), 'string', value), number: (value: unknown): asserts value is number => assertType(is.number(value), 'number', value), - // ? Is an AssertionTypeDescription.propertyKey entry necessary? - propertyKey: (value: unknown): asserts value is number => assertType(is.propertyKey(value), 'PropertyKey', value), bigint: (value: unknown): asserts value is bigint => assertType(is.bigint(value), 'bigint', value), // eslint-disable-next-line @typescript-eslint/ban-types function_: (value: unknown): asserts value is Function => assertType(is.function_(value), 'Function', value), @@ -621,6 +618,7 @@ export const assert: Assert = { nonEmptySet: (value: unknown): asserts value is Set => assertType(is.nonEmptySet(value), AssertionTypeDescription.nonEmptySet, value), emptyMap: (value: unknown): asserts value is Map => assertType(is.emptyMap(value), AssertionTypeDescription.emptyMap, value), nonEmptyMap: (value: unknown): asserts value is Map => assertType(is.nonEmptyMap(value), AssertionTypeDescription.nonEmptyMap, value), + propertyKey: (value: unknown): asserts value is number => assertType(is.propertyKey(value), 'PropertyKey', value), // Numbers. evenInteger: (value: number): asserts value is number => assertType(is.evenInteger(value), AssertionTypeDescription.evenInteger, value), diff --git a/test/test.ts b/test/test.ts index 69b2b41..f7798b1 100644 --- a/test/test.ts +++ b/test/test.ts @@ -613,13 +613,6 @@ test('is.number', t => { testType(t, 'number', ['integer', 'safeInteger', 'infinite']); }); -test('is.propertyKey', t => { - // ??? Unsure what is the correct syntax to `testType` multiple types. Also are the exclusion relevant? - testType(t, 'string', ['emptyString', 'numericString']); - testType(t, 'number', ['nan', 'integer', 'safeInteger', 'infinite']); - testType(t, 'symbol'); -}); - test('is.bigint', t => { testType(t, 'bigint'); }); @@ -1497,6 +1490,12 @@ test('is.nonEmptyMap', t => { }); }); +test('is.propertyKey', t => { + testType(t, 'string', ['emptyString', 'numericString']); + testType(t, 'number', ['nan', 'integer', 'safeInteger', 'infinite']); + testType(t, 'symbol'); +}); + test('is.any', t => { t.true(is.any(is.string, {}, true, '🦄')); t.true(is.any(is.object, false, {}, 'unicorns'));