Match Patterns
The following patterns can be used as pattern arguments to check
and Match.test
:
Match.Any
-
Matches any value.
String
,Number
,Boolean
,undefined
,null
-
Matches a primitive of the given type.
Match.Integer
-
Matches a signed 32-bit integer. Doesn’t match
Infinity
,-Infinity
, orNaN
. [pattern]
-
A one-element array matches an array of elements, each of which match pattern. For example,
[Number]
matches a (possibly empty) array of numbers;[Match.Any]
matches any array. {key1: pattern1, key2: pattern2, …}
- Matches an Object with the given keys, with values matching the given patterns. If any pattern is a
Match.Maybe
orMatch.Optional
, that key does not need to exist in the object. The value may not contain any keys not listed in the pattern. The value must be a plain Object with no special prototype. Match.ObjectIncluding({key1: pattern1, key2: pattern2, …})
- Matches an Object with the given keys; the value may also have other keys with arbitrary values.
Object
-
Matches any plain Object with any keys; equivalent to
Match.ObjectIncluding({})
. Match.Maybe(pattern)
-
Matches either
undefined
,null
, or pattern. If used in an object, matches only if the key is not set as opposed to the value being set toundefined
ornull
. This set of conditions was chosen becauseundefined
arguments to Meteor Methods are converted tonull
when sent over the wire.12345678910// In an objectvar pattern = { name: Match.Maybe(String) };check({ name: “something” }, pattern) // OKcheck({}, pattern) // OKcheck({ name: undefined }, pattern) // Throws an exceptioncheck({ name: null }, pattern) // Throws an exception// Outside an objectcheck(null, Match.Maybe(String)); // OKcheck(undefined, Match.Maybe(String)); // OK Match.Optional(pattern)
-
Behaves like
Match.Maybe
except it doesn’t acceptnull
. If used in an object, the behavior is identical toMatch.Maybe
. Match.OneOf(pattern1, pattern2, ...)
-
Matches any value that matches at least one of the provided patterns.
- Any constructor function (eg,
Date
) -
Matches any element that is an instance of that type.
Match.Where(condition)
-
Calls the function condition with the value as the argument. If condition returns true, this matches. If condition throws a
Match.Error
or returns false, this fails. If conditionthrows any other error, that error is thrown from the call tocheck
orMatch.test
. Examples:1234567check(buffer, Match.Where(EJSON.isBinary));NonEmptyString = Match.Where(function (x) {check(x, String);return x.length > 0;});check(arg, NonEmptyString);