Latest Threat ResearchGlassWorm Loader Hits Open VSX via Developer Account Compromise.Details
Socket
Book a DemoInstallSign in
Socket

eslint-plugin-boundaries

Package Overview
Dependencies
Maintainers
1
Versions
54
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

eslint-plugin-boundaries

Eslint plugin checking architecture boundaries between elements

latest
Source
npmnpm
Version
5.4.0
Version published
Weekly downloads
361K
-3.36%
Maintainers
1
Weekly downloads
 
Created
Source

Build status Coverage Status

Renovate Last commit Last release

NPM downloads License

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 element types and dependency rules that match your project's architecture
  • Flexible Configuration: Adapt the plugin to any project structure. It works with monorepos, modular architectures, layered patterns, and more
  • 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

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: "controllers", pattern: "controllers/*" },
        { type: "models", pattern: "models/*" },
        { type: "views", pattern: "views/*" }
      ]
    }
  }
];

Define your dependency rules:

{
  rules: {
    "boundaries/element-types": [2, {
      default: "disallow",
      rules: [
        { from: "controllers", allow: ["models", "views"] },
        { from: "views", allow: ["models"] },
        { from: "models", disallow: ["*"] }
      ]
    }]
  }
}

Now ESLint will catch violations:

// In src/models/model.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.

Special recognition goes to those who have contributed code to the project. Your technical contributions are the foundation of what makes this plugin valuable to the community.

Want to contribute? We'd love to have you! Here are some ways to get involved:

License

MIT © javierbrea

Keywords

eslint

FAQs

Package last updated on 03 Feb 2026

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts