UNPKG

@citrineos/util

Version:

The OCPP util module which supplies helpful utilities like cache and queue connectors, etc.

45 lines 1.46 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.UrlMatcher = void 0; /** * Utility for matching URLs against patterns */ class UrlMatcher { /** * Check if a URL matches a pattern * Supports exact matches, wildcards, and path parameters * * @param url URL to check * @param pattern Pattern to match against * @returns True if URL matches pattern */ static match(url, pattern) { // Handle exact matches if (url === pattern) { return true; } // Handle wildcard patterns if (pattern.endsWith('/*')) { const basePattern = pattern.slice(0, -1); return url === basePattern || url.startsWith(basePattern); } // Handle path parameters (e.g., /users/:id) const patternSegments = pattern.split('/').filter(Boolean); const urlSegments = url.split('/').filter(Boolean); if (patternSegments.length !== urlSegments.length) { return false; } for (let i = 0; i < patternSegments.length; i++) { // Skip path parameters (starting with :) if (patternSegments[i].startsWith(':')) { continue; } if (patternSegments[i] !== urlSegments[i]) { return false; } } return true; } } exports.UrlMatcher = UrlMatcher; //# sourceMappingURL=UrlMatcher.js.map