UNPKG

@tsed/platform-fastify

Version:
38 lines (37 loc) 1.47 kB
import { isString } from "@tsed/core"; export function convertPath(path) { if (isString(path)) { const segments = path.split("/"); const parsed = segments.reduce((options, segment, index) => { const isLastSegment = index === segments.length - 1; if (isLastSegment && (segment === "*" || segment === "(.*)")) { options.wildcard = "*"; options.path.push("*"); return options; } if (isLastSegment && segment.startsWith("*")) { options.wildcard = segment.substring(1); options.path.push("*"); return options; } if (segment.startsWith(":") && segment.endsWith("*")) { options.wildcard = segment.substring(1, segment.length - 1); options.path.push("*"); return options; } if (segment.startsWith("{:") && segment.endsWith("}")) { // Handle v5 style parameters like /{param} const paramName = segment.substring(2, segment.length - 1); options.path.push(`:${paramName}?`); return options; } options.path.push(segment); return options; }, { path: [], wildcard: undefined }); return { path: parsed.path.join("/"), wildcard: parsed.wildcard }; } return { path }; }