UNPKG

aws-delivlib

Version:

A fabulous library for defining continuous pipelines for building, testing and releasing code libraries.

26 lines (24 loc) 849 B
export function routeMatcher(paths) { // EXAMPLE. For the following paths: /* [ "/orgs/{org}/invitations", "/repos/{owner}/{repo}/collaborators/{username}" ] */ const regexes = paths.map((path) => path .split("/") .map((c) => (c.startsWith("{") ? "(?:.+?)" : c)) .join("/")); // 'regexes' would contain: /* [ '/orgs/(?:.+?)/invitations', '/repos/(?:.+?)/(?:.+?)/collaborators/(?:.+?)' ] */ const regex = `^(?:${regexes.map((r) => `(?:${r})`).join("|")})[^/]*$`; // 'regex' would contain: /* ^(?:(?:\/orgs\/(?:.+?)\/invitations)|(?:\/repos\/(?:.+?)\/(?:.+?)\/collaborators\/(?:.+?)))[^\/]*$ It may look scary, but paste it into https://www.debuggex.com/ and it will make a lot more sense! */ return new RegExp(regex, "i"); }