PathPatterns.kt
- package com.hexagonkt.http.patterns
- import com.hexagonkt.core.assertEnabled
- import com.hexagonkt.http.patterns.TemplatePathPattern.Companion.WILDCARD
- fun createPathPattern(pattern: String, prefix: Boolean): PathPattern =
- when {
- pattern == WILDCARD -> WildcardPathPattern(prefix)
- TemplatePathPattern.isTemplate(pattern) -> TemplatePathPattern(pattern, prefix)
- else -> LiteralPathPattern(pattern, prefix)
- }
- internal fun checkPathPatternPrefix(pattern: String, allowedPrefixes: List<String> = emptyList()) {
- if (assertEnabled)
- require(
- pattern.isEmpty()
- || pattern.startsWith('/')
- || allowedPrefixes.any { pattern.startsWith(it) }) {
- "'$pattern' must be empty or start with '/'"
- }
- }