UNPKG

next-path-matcher

Version:

A tiny utility to match Next.js request paths using glob patterns or regular expressions. Built for use with Next.js middleware and API routes.

27 lines (26 loc) 832 B
// src/index.ts import { pathToRegexp as pathToRegexpBase } from "path-to-regexp"; var pathToRegexp = (path) => { try { return pathToRegexpBase(path); } catch (e) { throw new Error( `Invalid path: ${path}. Consult the documentation of path-to-regexp here: https://github.com/pillarjs/path-to-regexp/tree/6.x ${e.message}` ); } }; var precomputePathRegex = (patterns) => { return patterns.map((pattern) => pattern instanceof RegExp ? pattern : pathToRegexp(pattern)); }; var createPathMatcher = (paths) => { const pathPatterns = [paths || ""].flat().filter(Boolean); const matchers = precomputePathRegex(pathPatterns); return (req) => matchers.some((matcher) => matcher.test(req.nextUrl.pathname)); }; var index_default = createPathMatcher; export { createPathMatcher, index_default as default };