UNPKG

eslint-plugin-vibe-check

Version:

ESLint rules to provide warnings and guardrails for AI coding assistance

80 lines (77 loc) 2.04 kB
/** * @fileoverview ESLint flat config for vibe-check (strict mode) */ import maxFileLines from './lib/rules/max-file-lines.js'; import noPlaceholderComments from './lib/rules/no-placeholder-comments.js'; import noHardcodedCredentials from './lib/rules/no-hardcoded-credentials.js'; import noChangelogComments from './lib/rules/no-changelog-comments.js'; import neverAssume from './lib/rules/never-assume.js'; const rules = { 'max-file-lines': maxFileLines, 'no-placeholder-comments': noPlaceholderComments, 'no-hardcoded-credentials': noHardcodedCredentials, 'no-changelog-comments': noChangelogComments, 'never-assume': neverAssume, }; /** @type {import('eslint').FlatConfig[]} */ export default [ { ignores: [ 'node_modules/**', 'dist/**', 'coverage/**', 'examples/typescript-example.ts', 'examples/tsx-example.tsx' ] }, // JavaScript files (strict mode) { files: ['**/*.js', '**/*.jsx'], languageOptions: { ecmaVersion: 2022, sourceType: 'module', parserOptions: { ecmaFeatures: { jsx: true } } }, plugins: { 'vibe-check': { rules } }, rules: { 'vibe-check/max-file-lines': 'error', 'vibe-check/no-placeholder-comments': 'error', 'vibe-check/no-hardcoded-credentials': 'error', 'vibe-check/no-changelog-comments': 'error', 'vibe-check/never-assume': 'error', } }, // TypeScript files (strict mode) { files: ['**/*.ts', '**/*.tsx'], languageOptions: { ecmaVersion: 2022, sourceType: 'module', parserOptions: { ecmaFeatures: { jsx: true } } }, plugins: { 'vibe-check': { rules } }, rules: { 'vibe-check/max-file-lines': 'error', 'vibe-check/no-placeholder-comments': 'error', 'vibe-check/no-hardcoded-credentials': 'error', 'vibe-check/no-changelog-comments': 'error', 'vibe-check/never-assume': 'error', } } ];