Meta tweaks

This commit is contained in:
Sindre Sorhus 2022-02-25 16:19:29 +07:00
parent dc2dc9a438
commit 6cbefb9af7
3 changed files with 26 additions and 26 deletions

View file

@ -241,6 +241,10 @@ is.enumCase('other', Direction);
Returns `true` if the value is a `string` and the `.length` is 0. Returns `true` if the value is a `string` and the `.length` is 0.
##### .emptyStringOrWhitespace(value)
Returns `true` if `is.emptyString(value)` or if it's a `string` that is all whitespace.
##### .nonEmptyString(value) ##### .nonEmptyString(value)
Returns `true` if the value is a `string` and the `.length` is more than 0. Returns `true` if the value is a `string` and the `.length` is more than 0.
@ -256,10 +260,6 @@ values.filter(is.nonEmptyStringAndNotWhitespace);
//=> ['property1', 'property2'] //=> ['property1', 'property2']
``` ```
##### .emptyStringOrWhitespace(value)
Returns `true` if `is.emptyString(value)` or if it's a `string` that is all whitespace.
##### .emptyArray(value) ##### .emptyArray(value)
Returns `true` if the value is an `Array` and the `.length` is 0. Returns `true` if the value is an `Array` and the `.length` is 0.

View file

@ -344,12 +344,12 @@ is.nonEmptyArray = (value: unknown): value is unknown[] => is.array(value) && va
is.emptyString = (value: unknown): value is '' => is.string(value) && value.length === 0; is.emptyString = (value: unknown): value is '' => is.string(value) && value.length === 0;
// TODO: Use `not ''` when the `not` operator is available.
is.nonEmptyString = (value: unknown): value is string => is.string(value) && value.length > 0;
const isWhiteSpaceString = (value: unknown): value is string => is.string(value) && !/\S/.test(value); const isWhiteSpaceString = (value: unknown): value is string => is.string(value) && !/\S/.test(value);
is.emptyStringOrWhitespace = (value: unknown): value is string => is.emptyString(value) || isWhiteSpaceString(value); is.emptyStringOrWhitespace = (value: unknown): value is string => is.emptyString(value) || isWhiteSpaceString(value);
// TODO: Use `not ''` when the `not` operator is available.
is.nonEmptyString = (value: unknown): value is string => is.string(value) && value.length > 0;
// TODO: Use `not ''` when the `not` operator is available. // TODO: Use `not ''` when the `not` operator is available.
is.nonEmptyStringAndNotWhitespace = (value: unknown): value is string => is.string(value) && !is.emptyStringOrWhitespace(value); is.nonEmptyStringAndNotWhitespace = (value: unknown): value is string => is.string(value) && !is.emptyStringOrWhitespace(value);
@ -434,8 +434,8 @@ export const enum AssertionTypeDescription {
emptyArray = 'empty array', emptyArray = 'empty array',
nonEmptyArray = 'non-empty array', nonEmptyArray = 'non-empty array',
emptyString = 'empty string', emptyString = 'empty string',
nonEmptyString = 'non-empty string',
emptyStringOrWhitespace = 'empty string or whitespace', emptyStringOrWhitespace = 'empty string or whitespace',
nonEmptyString = 'non-empty string',
nonEmptyStringAndNotWhitespace = 'non-empty string and not whitespace', nonEmptyStringAndNotWhitespace = 'non-empty string and not whitespace',
emptyObject = 'empty object', emptyObject = 'empty object',
nonEmptyObject = 'non-empty object', nonEmptyObject = 'non-empty object',
@ -524,8 +524,8 @@ interface Assert {
emptyArray: (value: unknown) => asserts value is never[]; emptyArray: (value: unknown) => asserts value is never[];
nonEmptyArray: (value: unknown) => asserts value is unknown[]; nonEmptyArray: (value: unknown) => asserts value is unknown[];
emptyString: (value: unknown) => asserts value is ''; emptyString: (value: unknown) => asserts value is '';
nonEmptyString: (value: unknown) => asserts value is string;
emptyStringOrWhitespace: (value: unknown) => asserts value is string; emptyStringOrWhitespace: (value: unknown) => asserts value is string;
nonEmptyString: (value: unknown) => asserts value is string;
nonEmptyStringAndNotWhitespace: (value: unknown) => asserts value is string; nonEmptyStringAndNotWhitespace: (value: unknown) => asserts value is string;
emptyObject: <Key extends keyof any = string>(value: unknown) => asserts value is Record<Key, never>; emptyObject: <Key extends keyof any = string>(value: unknown) => asserts value is Record<Key, never>;
nonEmptyObject: <Key extends keyof any = string, Value = unknown>(value: unknown) => asserts value is Record<Key, Value>; nonEmptyObject: <Key extends keyof any = string, Value = unknown>(value: unknown) => asserts value is Record<Key, Value>;
@ -626,8 +626,8 @@ export const assert: Assert = {
emptyArray: (value: unknown): asserts value is never[] => assertType(is.emptyArray(value), AssertionTypeDescription.emptyArray, value), emptyArray: (value: unknown): asserts value is never[] => assertType(is.emptyArray(value), AssertionTypeDescription.emptyArray, value),
nonEmptyArray: (value: unknown): asserts value is unknown[] => assertType(is.nonEmptyArray(value), AssertionTypeDescription.nonEmptyArray, value), nonEmptyArray: (value: unknown): asserts value is unknown[] => assertType(is.nonEmptyArray(value), AssertionTypeDescription.nonEmptyArray, value),
emptyString: (value: unknown): asserts value is '' => assertType(is.emptyString(value), AssertionTypeDescription.emptyString, value), emptyString: (value: unknown): asserts value is '' => assertType(is.emptyString(value), AssertionTypeDescription.emptyString, value),
nonEmptyString: (value: unknown): asserts value is string => assertType(is.nonEmptyString(value), AssertionTypeDescription.nonEmptyString, value),
emptyStringOrWhitespace: (value: unknown): asserts value is string => assertType(is.emptyStringOrWhitespace(value), AssertionTypeDescription.emptyStringOrWhitespace, value), emptyStringOrWhitespace: (value: unknown): asserts value is string => assertType(is.emptyStringOrWhitespace(value), AssertionTypeDescription.emptyStringOrWhitespace, value),
nonEmptyString: (value: unknown): asserts value is string => assertType(is.nonEmptyString(value), AssertionTypeDescription.nonEmptyString, value),
nonEmptyStringAndNotWhitespace: (value: unknown): asserts value is string => assertType(is.nonEmptyStringAndNotWhitespace(value), AssertionTypeDescription.nonEmptyStringAndNotWhitespace, value), nonEmptyStringAndNotWhitespace: (value: unknown): asserts value is string => assertType(is.nonEmptyStringAndNotWhitespace(value), AssertionTypeDescription.nonEmptyStringAndNotWhitespace, value),
emptyObject: <Key extends keyof any = string>(value: unknown): asserts value is Record<Key, never> => assertType(is.emptyObject(value), AssertionTypeDescription.emptyObject, value), emptyObject: <Key extends keyof any = string>(value: unknown): asserts value is Record<Key, never> => assertType(is.emptyObject(value), AssertionTypeDescription.emptyObject, value),
nonEmptyObject: <Key extends keyof any = string, Value = unknown>(value: unknown): asserts value is Record<Key, Value> => assertType(is.nonEmptyObject(value), AssertionTypeDescription.nonEmptyObject, value), nonEmptyObject: <Key extends keyof any = string, Value = unknown>(value: unknown): asserts value is Record<Key, Value> => assertType(is.nonEmptyObject(value), AssertionTypeDescription.nonEmptyObject, value),

View file

@ -1403,22 +1403,6 @@ test('is.emptyString', t => {
}); });
}); });
test('is.nonEmptyString', t => {
t.false(is.nonEmptyString(''));
t.false(is.nonEmptyString(String()));
t.true(is.nonEmptyString('🦄'));
t.throws(() => {
assert.nonEmptyString('');
});
t.throws(() => {
assert.nonEmptyString(String());
});
t.notThrows(() => {
assert.nonEmptyString('🦄');
});
});
test('is.emptyStringOrWhitespace', t => { test('is.emptyStringOrWhitespace', t => {
testType(t, 'emptyString', ['string']); testType(t, 'emptyString', ['string']);
t.true(is.emptyStringOrWhitespace(' ')); t.true(is.emptyStringOrWhitespace(' '));
@ -1436,6 +1420,22 @@ test('is.emptyStringOrWhitespace', t => {
}); });
}); });
test('is.nonEmptyString', t => {
t.false(is.nonEmptyString(''));
t.false(is.nonEmptyString(String()));
t.true(is.nonEmptyString('🦄'));
t.throws(() => {
assert.nonEmptyString('');
});
t.throws(() => {
assert.nonEmptyString(String());
});
t.notThrows(() => {
assert.nonEmptyString('🦄');
});
});
test('is.nonEmptyStringAndNotWhitespace', t => { test('is.nonEmptyStringAndNotWhitespace', t => {
t.false(is.nonEmptyStringAndNotWhitespace(' ')); t.false(is.nonEmptyStringAndNotWhitespace(' '));
t.true(is.nonEmptyStringAndNotWhitespace('🦄')); t.true(is.nonEmptyStringAndNotWhitespace('🦄'));