node-web-mvc
Version:
node spring mvc
44 lines (43 loc) • 1.4 kB
JavaScript
;
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;