A simple utility that converts a glob file selection to routes that can be used with any routing library.
npm install glob-to-routes
import globToRoutes from 'glob-to-routes'
const routes = await globToRoutes(baseDir, globPath, conversionFunction)
This library simply converts the results of a glob (default is **/*.{js,jsx}
) into an array of objects containing each file path, and its corresponding route string. As each routing library may vary, the default conversion function uses expressjs like syntax. Here is an example of setting up express routes from page files inside a /pages
folder.
const routes = await globToRoutes('./pages')
for (const { route, filePath } of routes) {
app.get(route, pageHandler(filePath))
}
In this case, pageHandler
would be a function that takes in a file path and returns a valid route function based on what the file does.
If you wish to perform custom conversions of paths to route strings, just provide a function that takes in a route path, and returns the relevant transformed string.
This library was built @wethrift.