route-dynamic-folder-syntax - ESLint plugin rules

This rule requires dynamic route parameters to use [param] folder syntax and disallows them as the first segment of a route.

Severity#

error. This rule is enabled in the recommended preset.

What it Targets#

This rule targets route folders in your project's src/api directory and dynamic folders in your project's src/admin/routes directory. It reports folders that use invalid bracket syntax, such as [[id]] or [...slug], and routes that start with a dynamic segment.

The following code is reported by the rule, since [[id]] isn't valid syntax:

src/api/admin/products/[[id]]/route.ts
export const GET = (req, res) => {}

Instead, use single-bracket syntax with an identifier name:

src/api/admin/products/[id]/route.ts
export const GET = (req, res) => {}

Why it's Important#

Medusa only recognizes the [param] folder syntax for dynamic parameters, and a route can't start with a dynamic segment. Other patterns aren't matched, so the route isn't registered as you expect.

Learn more in the Route Parameters documentation.

Fixable#

This rule isn't auto-fixable.

Was this page helpful?
Ask Bloom
For assistance in your development, use Claude Code Plugins or Docs MCP server in Cursor, VSCode, etc...FAQ
What is Medusa?
How can I create a module?
How can I create a data model?
How do I create a workflow?
How can I extend a data model in the Product Module?
Recipes
How do I build a marketplace with Medusa?
How do I build digital products with Medusa?
How do I build subscription-based purchases with Medusa?
What other recipes are available in the Medusa documentation?
Chat is cleared on refresh
Line break
⇧↵