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.// In an object var pattern = { name: Match.Maybe(String) }; check({ name: "something" }, pattern) // OK check({}, pattern) // OK check({ name: undefined }, pattern) // Throws an exception check({ name: null }, pattern) // Throws an exception // Outside an object check(null, Match.Maybe(String)); // OK check(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 condition throws any other error, that error is thrown from the call tocheck
orMatch.test
. Examples:check(buffer, Match.Where(EJSON.isBinary)); NonEmptyString = Match.Where(function (x) { check(x, String); return x.length > 0; }); check(arg, NonEmptyString);
Please login to continue.