Overview
ESLint rules for clean module boundaries and dependency management
Live from GitHub
This content is fetched directly from README.md on GitHub and cached for 1 hour.
Clean Modules
Enforce clean module boundaries and prevent circular dependencies.
Security-focused ESLint plugin.
Description
This plugin provides Security-focused ESLint plugin. By using this plugin, you can proactively identify and mitigate security risks across your entire codebase.
Philosophy
Interlace fosters strength through integration. Instead of stacking isolated rules, we interlace security directly into your workflow to create a resilient fabric of code. We believe tools should guide rather than gatekeep, providing educational feedback that strengthens the developer with every interaction.
Getting Started
- To check out the guide, visit eslint.interlace.tools. ๐
- ่ฆๆฅ็ไธญๆ ๆๅ, ่ฏท่ฎฟ้ฎ eslint.interlace.tools. ๐
- ๊ฐ์ด๋ ๋ฌธ์๋ eslint.interlace.tools์์ ํ์ธํ์ค ์ ์์ต๋๋ค. ๐
- ใฌใคใใฏ eslint.interlace.toolsใงใ็ขบ่ชใใ ใใใ ๐
- Para ver la guรญa, visita eslint.interlace.tools. ๐
- ููุงุทูุงุน ุนูู ุงูุฏูููุ ูู ุจุฒูุงุฑุฉ eslint.interlace.tools. ๐
npm install eslint-plugin-modularity --save-devโ๏ธ Configuration Presets
| Preset | Description |
|---|---|
recommended | Balanced DDD and architecture enforcement |
strict | All rules as errors for strict enforcement |
๐ข Usage Example
// eslint.config.js
import modularity from 'eslint-plugin-modularity';
export default [
modularity.configs.recommended,
// Apply strict DDD enforcement to domain layer
{
files: ['src/domain/**/*.ts'],
...modularity.configs.strict,
},
];Why These Rules?
ddd-anemic-domain-model
Detects domain entities that are just data containers without behavior โ a common anti-pattern.
// โ Bad: Anemic model, no behavior
class Order {
id: string;
items: OrderItem[];
status: OrderStatus;
}
// โ
Good: Rich domain model with behavior
class Order {
id: string;
private items: OrderItem[];
private status: OrderStatus;
addItem(item: OrderItem): void {
/* ... */
}
submit(): void {
/* ... */
}
cancel(reason: string): void {
/* ... */
}
}ddd-value-object-immutability
Value objects should be immutable. This rule catches mutable value objects.
// โ Bad: Mutable value object
class Money {
amount: number; // Can be mutated!
}
// โ
Good: Immutable value object
class Money {
readonly amount: number;
readonly currency: string;
add(other: Money): Money {
return new Money(this.amount + other.amount, this.currency);
}
}no-external-api-calls-in-utils
Utility modules should be pure functions without side effects like API calls.
// โ Bad: Utils with external dependencies
// src/utils/formatters.ts
import axios from 'axios';
export async function fetchAndFormat(id: string) {
const data = await axios.get(`/api/${id}`); // External API call!
return format(data);
}
// โ
Good: Pure utility function
export function format(data: Data): FormattedData {
return {
/* pure transformation */
};
}Rules
Legend
| Icon | Description |
|---|---|
| ๐ผ | Recommended: Included in the recommended preset. |
| โ ๏ธ | Warns: Set towarn in recommended preset. |
| ๐ง | Auto-fixable: Automatically fixable by the --fix CLI option. |
| ๐ก | Suggestions: Providing code suggestions in IDE. |
| ๐ซ | Deprecated: This rule is deprecated. |
| Rule | CWE | OWASP | CVSS | Description | ๐ผ | โ ๏ธ | ๐ง | ๐ก | ๐ซ |
|---|---|---|---|---|---|---|---|---|---|
| ddd-anemic-domain-model | ESLint rule documentation for ddd-anemic-domain-model | ||||||||
| ddd-value-object-immutability | ESLint rule documentation for ddd-value-object-immutability | ||||||||
| enforce-naming | ESLint rule documentation for enforce-naming | ||||||||
| enforce-rest-conventions | ESLint rule documentation for enforce-rest-conventions | ||||||||
| no-external-api-calls-in-utils | ESLint rule documentation for no-external-api-calls-in-utils |
๐ Related ESLint Plugins
Part of the Interlace ESLint Ecosystem โ AI-native security plugins with LLM-optimized error messages:
| Plugin | Downloads | Description |
|---|---|---|
eslint-plugin-secure-coding | General security rules & OWASP guidelines. | |
eslint-plugin-pg | PostgreSQL security & best practices. | |
eslint-plugin-crypto | NodeJS Cryptography security rules. | |
eslint-plugin-jwt | JWT security & best practices. | |
eslint-plugin-browser-security | Browser-specific security & XSS prevention. | |
eslint-plugin-express-security | Express.js security hardening rules. | |
eslint-plugin-lambda-security | AWS Lambda security best practices. | |
eslint-plugin-nestjs-security | NestJS security rules & patterns. | |
eslint-plugin-mongodb-security | MongoDB security best practices. | |
eslint-plugin-vercel-ai-security | Vercel AI SDK security hardening. | |
eslint-plugin-import-next | Next-gen import sorting & architecture. |
๐ License
MIT ยฉ Ofri Peretz
View README.md on GitHub โ
