2025-04-19 23:12:19 -04:00

79 lines
1.8 KiB
JavaScript

/**
* @fileoverview Default configuration
* @author Nicholas C. Zakas
*/
'use strict';
//-----------------------------------------------------------------------------
// Requirements
//-----------------------------------------------------------------------------
const Rules = require('../rules');
//-----------------------------------------------------------------------------
// Helpers
//-----------------------------------------------------------------------------
const sharedDefaultConfig = [
// intentionally empty config to ensure these files are globbed by default
{
files: ['**/*.js', '**/*.mjs'],
},
{
files: ['**/*.cjs'],
languageOptions: {
sourceType: 'commonjs',
ecmaVersion: 'latest',
},
},
];
exports.defaultConfig = Object.freeze([
{
plugins: {
'@': {
languages: {
js: require('../languages/js'),
},
/*
* Because we try to delay loading rules until absolutely
* necessary, a proxy allows us to hook into the lazy-loading
* aspect of the rules map while still keeping all of the
* relevant configuration inside of the config array.
*/
rules: new Proxy(
{},
{
get(target, property) {
return Rules.get(property);
},
has(target, property) {
return Rules.has(property);
},
}
),
},
},
language: '@/js',
linterOptions: {
reportUnusedDisableDirectives: 1,
},
},
// default ignores are listed here
{
ignores: ['**/node_modules/', '.git/'],
},
...sharedDefaultConfig,
]);
exports.defaultRuleTesterConfig = Object.freeze([
{ files: ['**'] }, // Make sure the default config matches for all files
...sharedDefaultConfig,
]);