UNPKG

@feugene/mu

Version:

Helpful TS utilities without dependencies

24 lines 965 B
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = match; const isObject_1 = __importDefault(require("../is/isObject")); /** * @param {*} expr * @param {object|array} cases * @param {matchOptions} options * @return {*} */ function match(expr, cases, options) { const opt = Object.assign({ strict: true }, ((0, isObject_1.default)(options) ? options : {})); for (const [pattern, action] of Array.isArray(cases) ? cases : Object.entries(cases)) { const prn = typeof pattern === 'function' ? pattern() : pattern; if (opt.strict ? expr === prn : expr == prn) { return typeof action === 'function' ? action() : action; } } return typeof opt.default === 'function' ? opt.default() : opt.default; } //# sourceMappingURL=match.js.map