index.js 1.05 KB
/**
 * 本地 ESLint plugin:聚合架构红线规则(深导入 / 子域深导入 / 连接只在 root / 禁 app 互调 /
 * 禁 eslint-disable 绕红线)。在 eslint.config.js 以 `plugins: { drama: dramaPlugin }` 装配,
 * 规则名前缀 `drama/`。
 */

import { noDeepImport } from './no-deep-import.js'
import { noSubdomainDeepImport } from './no-subdomain-deep-import.js'
import { noConnOutsideRoot } from './no-conn-outside-root.js'
import { noAppImport } from './no-app-import.js'
import { noDramaRuleDisable } from './no-drama-rule-disable.js'

export {
  noDeepImport,
  noSubdomainDeepImport,
  noConnOutsideRoot,
  noAppImport,
  noDramaRuleDisable,
}

/** @type {import('eslint').ESLint.Plugin} */
export const dramaPlugin = {
  meta: { name: 'eslint-plugin-drama-arch', version: '0.0.0' },
  rules: {
    'no-deep-import': noDeepImport,
    'no-subdomain-deep-import': noSubdomainDeepImport,
    'no-conn-outside-root': noConnOutsideRoot,
    'no-app-import': noAppImport,
    'no-drama-rule-disable': noDramaRuleDisable,
  },
}

export default dramaPlugin