UNPKG

tiny-types

Version:

A tiny library that brings Tiny Types to JavaScript and TypeScript

26 lines 1.01 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ObjectMatcher = void 0; const TinyType_1 = require("../TinyType"); const PatternMatcher_1 = require("./PatternMatcher"); const rules_1 = require("./rules"); /** * @access private */ class ObjectMatcher extends PatternMatcher_1.PatternMatcher { when(pattern, transformation) { return new ObjectMatcher(this.value, this.rules.concat(this.rule(pattern, transformation))); } rule(pattern, transformation) { switch (true) { case pattern instanceof TinyType_1.TinyType: return new rules_1.MatchesEqualTinyType(pattern, transformation); case typeof pattern === 'function': return new rules_1.MatchesObjectsWithCommonPrototype(pattern, transformation); default: return new rules_1.MatchesIdentical(pattern, transformation); } } } exports.ObjectMatcher = ObjectMatcher; //# sourceMappingURL=ObjectMatcher.js.map