UNPKG

node-web-mvc

Version:
44 lines (43 loc) 1.4 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); /** * @module PathMatcher * @descriptionn 路径匹配器 */ const PathPattern_1 = __importDefault(require("./PathPattern")); class PathMatcher { /** * 匹配传入规则与路径 * @param pattern 规则 * @param path 路径 */ match(pattern, path) { const r = this.matchPattern(pattern, path); return r !== null; } matchOne(patterns, path) { if (null == patterns) return false; return patterns.find((pattern) => this.match(pattern, path)); } /** * 匹配传入规则与路径,并且返回匹配结果信息, * 如果匹配失败,则返回 null * @param pattern 规则 * @param path 路径 */ matchPattern(pattern, path) { const result = PathPattern_1.default.create(pattern).match(path); return result.matched ? result : null; } static preBuildPattern(patterns) { var _a; (_a = patterns === null || patterns === void 0 ? void 0 : patterns.forEach) === null || _a === void 0 ? void 0 : _a.call(patterns, (pattern) => { PathPattern_1.default.create(pattern); }); } } exports.default = PathMatcher;