@sentzunhat/zacatl
Version:
A modular, high-performance TypeScript microservice framework for Node.js, featuring layered architecture, dependency injection, and robust validation for building scalable APIs and distributed systems.
58 lines (53 loc) • 1.81 kB
JavaScript
/**
* Zacatl ESLint configs for TypeScript and hexagonal patterns.
*
* @returns Flat config arrays; no side effects.
*
* @example
* import { recommended } from "@sentzunhat/zacatl/eslint";
*/
import baseConfig from './base.mjs';
import bestPracticesConfig from './best-practices.mjs';
import fileNamingRules from './file-naming.mjs';
import importsConfig from './imports.mjs';
import namingConventions from './naming-conventions.mjs';
import solidConfig from './solid.mjs';
import strictConfig from './strict.mjs';
import typeSafetyConfig from './type-safety.mjs';
/**
* Recommended ESLint configuration combining all Zacatl configs.
*
* Composition order (each layer builds on the previous):
* 1. baseConfig — js.recommended + tseslint.recommended + core overrides
* 2. strictConfig — no-explicit-any, no-unused-vars
* 3. typeSafetyConfig — strict-boolean-expressions, no-floating-promises, prefer-readonly …
* 4. bestPracticesConfig — prefer-const, no-var, eqeqeq, prefer-template …
* 5. importsConfig — import/order, no-unresolved, TypeScript resolver
* 6. namingConventions — PascalCase classes, camelCase methods, UPPER_CASE enums …
* 7. fileNamingRules — kebab-case files, -port.ts / -adapter.ts suffixes
* 8. solidConfig — max-classes-per-file, no-default-export, no-cycle
*/
const recommended = [
...baseConfig,
strictConfig,
typeSafetyConfig,
bestPracticesConfig,
importsConfig,
namingConventions,
fileNamingRules,
...solidConfig,
];
// Named exports for granular control
export {
baseConfig,
strictConfig,
typeSafetyConfig,
bestPracticesConfig,
importsConfig,
namingConventions,
fileNamingRules,
solidConfig,
recommended,
};
// Default export for convenience
export default recommended;