@feugene/mu
Version:
Helpful TS utilities without dependencies
21 lines • 714 B
JavaScript
import isObject from '../is/isObject.mjs';
/**
* @param {*} expr
* @param {object|array} cases
* @param {matchOptions} options
* @return {*}
*/
export default function match(expr, cases, options) {
const opt = {
strict: true,
...(isObject(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.mjs.map