@boundaries/eslint-plugin weekly downloads statistics
By boundaries · npm · ESLint plugins
Eslint plugin checking architecture boundaries between elements
@boundaries/eslint-plugin has 14,875 recorded weekly downloads on npm, a decrease of 35.6% over the past 30 days, ranking #858 of 2,322 tracked listings.
About @boundaries/eslint-plugin
ESLint Plugin Boundaries
Enforce architectural boundaries in your JavaScript and TypeScript projects.
ESLint Plugin Boundaries is an ESLint plugin that helps you maintain clean architecture by enforcing boundaries between different parts of your codebase. Define your architectural layers, specify how they can interact, and get instant feedback when boundaries are violated.
- Architectural Enforcement: Define dependency rules that match your project's architecture
- Multi-Layer Classification: Every file or dependency in your project can be described across three independent dimensions simultaneously — its architectural element, its own file category, and its origin. Define rules for any combination.
- Flexible Configuration: Adapt the plugin to any project structure. It works with monorepos, modular architectures, layered patterns, and any custom structure you can imagine
- Real-time Feedback: Get immediate ESLint errors when imports violate your architectural rules
Documentation
The full documentation is available on the JS Boundaries website.
Key Sections
- Overview - Introduction to the plugin and its core concepts
- Quick Start - Set up the plugin in 5 minutes
- Classification - How to classify files and folders for your architecture
- Selectors - How to match classified files, elements, and modules in your rules
- Policies - How to define dependency rules between classified files, elements, and modules
- Rules Reference - Complete documentation for all available rules
- TypeScript Support - Use with TypeScript projects
Quick Example
Install the plugin using npm:
npm install eslint eslint-plugin-boundaries --save-dev
Define your architectural elements:
import boundaries from "eslint-plugin-boundaries";
export default [
{
plugins: { boundaries },
settings: {
"boundaries/elements": [
{ type: "controller", pattern: "controllers/*" },
{ type: "model", pattern: "models/*" },
{ type: "view", pattern: "views/*" }
],
"boundaries/files": [
{ category: "test", pattern: "**/*.test.js" }
]
}
}
];
Define your dependency rules:
{
rules: {
"boundaries/dependencies": [2, {
default: "disallow",
policies: [
// Allow controllers to depend on models and views
{
from: { element: { type: "controller" } },
allow: {
to: { element: { types: { anyOf: ["model", "view"] } } },
},
},
// Allow views to depend on models
{
from: { element: { type: "view" } },
allow: {
to: { element: { type: "model" } },
},
},
// Disallow any element from importing a test file
{
disallow: {
to: { file: { categories: "test" } },
},
},
// Only controllers may use the `axios` package
{
from: { element: { type: "!controller" } },
disallow: {
to: { module: { origin: "external", source: "axios" } },
},
},
]
}]
}
}
Now ESLint will catch violations:
// In src/models/model/index.js
import View from "../../views/view"; // ❌ Error: Architectural boundary violated
Contributing
To everyone who has opened an issue, suggested improvements, fixed bugs, added features, or improved documentation: Thank you. Your contributions, no matter how small, make a real difference. Every bug report helps us improve, every feature request guides our roadmap, and every pull request strengthens the project.…
Description from the npm listing.
- eslint
- eslint-plugin
- eslintplugin
- plugin
- architecture
- boundaries
- dependencies
- elements
- files
- modules
- analysis
- hierarchy
- import
- dependency
README badge
Show your rank in a README or on your website. The badge updates automatically.
Charts
Images: 30d · 1y · all time · 1600×900 dark
Adoption over time
7/30/90-day growth
Ranking history
Listing placement
Listing placement
Filled points are observed values; hollow points come from Internet Archive snapshots of the listing page. Dashed segments span periods with no observations — values between points are not interpolated.
Each band is one page of 20. Weekly downloads on a linear scale. Placement is projected from weekly downloads, so it can differ from the marketplace's own sort order. Hover a dot to see the listing.
Recent observations
Full history (122)Similar npm ESLint plugins plugins
All 20 @boundaries/eslint-plugin alternativesData source
Weekly downloads (trailing 7 complete days) come from the official npm downloads API. Downloads include CI and mirrors and are not equivalent to installs or users. npm publishes no ratings.
Listing: https://www.npmjs.com/package/@boundaries/eslint-plugin. First seen Oct 16, 2026; last successful collection Oct 20, 2026. See the methodology.