import { isNil } from "./Validators"; class URIUtils { static getPathSegments(uri: string): string[] { if (!uri) return []; return uri.split("/").filter((segment) => segment.length > 0); } static arePathSegmentsMatching( pathVariableA: string, pathVariableB: string ): boolean { if (isNil(pathVariableA) && isNil(pathVariableB)) return true; if (isNil(pathVariableA) || isNil(pathVariableB)) return false; if (pathVariableA === pathVariableB) return true; let isPathVariableATemplate: boolean = URIUtils.isPathSegmentTemplate(pathVariableA); let isPathVariableBTemplate: boolean = URIUtils.isPathSegmentTemplate(pathVariableB); return isPathVariableATemplate || isPathVariableBTemplate; } static isPathSegmentTemplate(pathSegment: string): boolean { if (isNil(pathSegment)) return false; pathSegment = pathSegment.trim(); return pathSegment.startsWith("{") && pathSegment.endsWith("}"); } } export default URIUtils;