2025-04-17 07:44:37 -04:00

79 lines
1.7 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,
]);