all files / src/Match/ Match.js

81.58% Statements 31/38
63.16% Branches 12/19
100% Functions 6/6
81.58% Lines 31/38
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80                                          5838× 380×   5458× 5458×                 258×   15×   243×                 9671×                  
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const util_1 = require("@opticss/util");
var Match;
(function (Match) {
    /**
     * The element will definitively match the selector or selector component in
     * at least dynamic one state.
     */
    Match[Match["yes"] = 1] = "yes";
    /**
     * The element may match the selector or selector component; information is
     * ambiguous.
     */
    Match[Match["maybe"] = 2] = "maybe";
    /** The element will not match the selector or selector component. */
    Match[Match["no"] = 3] = "no";
    /**
     * The element is unrelated to the selector or selector component and no
     * information about whether the element matches can be determined.
     */
    Match[Match["pass"] = 4] = "pass";
})(Match = exports.Match || (exports.Match = {}));
/**
 * true => Match.yes
 * false => Match.no
 * null => Match.pass
 * undefined => Match.maybe
 */
function boolToMatch(value) {
    if (value === true) {
        return Match.yes;
    }
    else Eif (value === false) {
        return Match.no;
    }
    else if (value === undefined) {
        return Match.maybe;
    }
    else {
        return Match.pass;
    }
}
exports.boolToMatch = boolToMatch;
function matchToBool(match) {
    switch (match) {
        case Match.yes:
            return true;
        case Match.no:
            return false;
        case Match.maybe:
            return undefined;
        case Match.pass:
            return null;
        default:
            return util_1.assertNever(match);
    }
}
exports.matchToBool = matchToBool;
function matches(m) {
    return m === Match.yes || m === Match.maybe;
}
exports.matches = matches;
function rejects(m) {
    return m === Match.no;
}
exports.rejects = rejects;
function negate(m) {
    if (matches(m)) {
        return Match.no;
    }
    else Eif (rejects(m)) {
        return Match.yes;
    }
    else {
        return m;
    }
}
exports.negate = negate;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWF0Y2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvTWF0Y2gvTWF0Y2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSx3Q0FBNEM7QUFFNUMsSUFBWSxLQWtCWDtBQWxCRCxXQUFZLEtBQUs7SUFDZjs7O09BR0c7SUFDSCwrQkFBTyxDQUFBO0lBQ1A7OztPQUdHO0lBQ0gsbUNBQUssQ0FBQTtJQUNMLHFFQUFxRTtJQUNyRSw2QkFBRSxDQUFBO0lBQ0Y7OztPQUdHO0lBQ0gsaUNBQUksQ0FBQTtBQUNOLENBQUMsRUFsQlcsS0FBSyxHQUFMLGFBQUssS0FBTCxhQUFLLFFBa0JoQjtBQUVEOzs7OztHQUtHO0FBQ0gscUJBQTRCLEtBQWlDO0lBQzNELElBQUksS0FBSyxLQUFLLElBQUksRUFBRTtRQUNsQixPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUM7S0FDbEI7U0FBTSxJQUFJLEtBQUssS0FBSyxLQUFLLEVBQUU7UUFDMUIsT0FBTyxLQUFLLENBQUMsRUFBRSxDQUFDO0tBQ2pCO1NBQU0sSUFBSSxLQUFLLEtBQUssU0FBUyxFQUFFO1FBQzlCLE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQztLQUNwQjtTQUFNO1FBQ0wsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDO0tBQ25CO0FBQ0gsQ0FBQztBQVZELGtDQVVDO0FBRUQscUJBQTRCLEtBQVk7SUFDdEMsUUFBUSxLQUFLLEVBQUU7UUFDYixLQUFLLEtBQUssQ0FBQyxHQUFHO1lBQ1osT0FBTyxJQUFJLENBQUM7UUFDZCxLQUFLLEtBQUssQ0FBQyxFQUFFO1lBQ1gsT0FBTyxLQUFLLENBQUM7UUFDZixLQUFLLEtBQUssQ0FBQyxLQUFLO1lBQ2QsT0FBTyxTQUFTLENBQUM7UUFDbkIsS0FBSyxLQUFLLENBQUMsSUFBSTtZQUNiLE9BQU8sSUFBSSxDQUFDO1FBQ2Q7WUFDRSxPQUFPLGtCQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7S0FDN0I7QUFDSCxDQUFDO0FBYkQsa0NBYUM7QUFFRCxpQkFBd0IsQ0FBUTtJQUM5QixPQUFPLENBQUMsS0FBSyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxLQUFLLENBQUMsS0FBSyxDQUFDO0FBQzlDLENBQUM7QUFGRCwwQkFFQztBQUVELGlCQUF3QixDQUFRO0lBQzlCLE9BQU8sQ0FBQyxLQUFLLEtBQUssQ0FBQyxFQUFFLENBQUM7QUFDeEIsQ0FBQztBQUZELDBCQUVDO0FBRUQsZ0JBQXVCLENBQVE7SUFDN0IsSUFBSSxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7UUFDZCxPQUFPLEtBQUssQ0FBQyxFQUFFLENBQUM7S0FDakI7U0FBTSxJQUFJLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtRQUNyQixPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUM7S0FDbEI7U0FBTTtRQUNMLE9BQU8sQ0FBQyxDQUFDO0tBQ1Y7QUFDSCxDQUFDO0FBUkQsd0JBUUMifQ==