/** * @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, ]);