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