Merge e13599e5d7 into 83adc096ef
This commit is contained in:
commit
58c2060097
3 changed files with 13 additions and 0 deletions
2
index.js
2
index.js
|
|
@ -5,6 +5,7 @@ const toString = Object.prototype.toString;
|
|||
const getObjectType = x => toString.call(x).slice(8, -1);
|
||||
const isOfType = type => x => typeof x === type; // eslint-disable-line valid-typeof
|
||||
const isObjectOfType = type => x => getObjectType(x) === type;
|
||||
const emojiRegex = /(?:[\u2700-\u27bf]|(?:\ud83c[\udde6-\uddff]){2}|[\ud800-\udbff][\udc00-\udfff]|[\u0023-\u0039]\ufe0f?\u20e3|\u3299|\u3297|\u303d|\u3030|\u24c2|\ud83c[\udd70-\udd71]|\ud83c[\udd7e-\udd7f]|\ud83c\udd8e|\ud83c[\udd91-\udd9a]|\ud83c[\udde6-\uddff]|[\ud83c[\ude01-\ude02]|\ud83c\ude1a|\ud83c\ude2f|[\ud83c[\ude32-\ude3a]|[\ud83c[\ude50-\ude51]|\u203c|\u2049|[\u25aa-\u25ab]|\u25b6|\u25c0|[\u25fb-\u25fe]|\u00a9|\u00ae|\u2122|\u2139|\ud83c\udc04|[\u2600-\u26FF]|\u2b05|\u2b06|\u2b07|\u2b1b|\u2b1c|\u2b50|\u2b55|\u231a|\u231b|\u2328|\u23cf|[\u23e9-\u23f3]|[\u23f8-\u23fa]|\ud83c\udccf|\u2934|\u2935|[\u2190-\u21ff])/;
|
||||
|
||||
const is = value => {
|
||||
if (value === null) {
|
||||
|
|
@ -196,6 +197,7 @@ const isEmptyMapOrSet = x => (is.map(x) || is.set(x)) && x.size === 0;
|
|||
|
||||
is.empty = x => is.falsy(x) || isEmptyStringOrArray(x) || isEmptyObject(x) || isEmptyMapOrSet(x);
|
||||
is.emptyOrWhitespace = x => is.empty(x) || isWhiteSpaceString(x);
|
||||
is.emoji = x => is.string(x) && emojiRegex.test(x);
|
||||
|
||||
const predicateOnArray = (method, predicate, values) => {
|
||||
// `values` is the calling function's "arguments object".
|
||||
|
|
|
|||
|
|
@ -212,6 +212,8 @@ Returns `true` if `value` is an odd integer.
|
|||
|
||||
Returns `true` if `value` is falsy or an empty string, array, object, map, or set.
|
||||
|
||||
##### .emoji(value)
|
||||
|
||||
##### .emptyOrWhitespace(value)
|
||||
|
||||
Returns `true` if `is.empty(value)` or a string that is all whitespace.
|
||||
|
|
|
|||
9
test.js
9
test.js
|
|
@ -504,6 +504,15 @@ test('is.emptyOrWhitespace', t => {
|
|||
t.false(m.emptyOrWhitespace('unicorn'));
|
||||
});
|
||||
|
||||
test('is.emoji', t => {
|
||||
t.true(m.emoji('🙏'));
|
||||
t.true(m.emoji('👑'));
|
||||
t.true(m.emoji('\uD83D\uDC04'));
|
||||
t.true(m.emoji('9️⃣'));
|
||||
t.true(m.emoji('🎌'));
|
||||
t.false(m.emoji(':unicorn:'));
|
||||
});
|
||||
|
||||
test('is.any', t => {
|
||||
t.true(m.any(m.string, {}, true, '🦄'));
|
||||
t.true(m.any(m.object, false, {}, 'unicorns'));
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue