eslint-config-webpack
Version:
Provides Webpack's eslint rules as an extensible shared config
109 lines (79 loc) • 2.37 kB
JavaScript
import isTypescriptInstalled from "./utils/is-typescript-installed.js";
/**
* @returns {Promise<Record<string, string>>} config
*/
async function getMarkdownRecommendedConfig() {
let markdownPlugin;
try {
markdownPlugin = (await import("@eslint/markdown")).default;
// eslint-disable-next-line unicorn/prefer-optional-catch-binding
} catch (_err) {
// Nothing
}
return [
{
name: "markdown/code-blocks",
files: ["**/*.md"],
processor: "markdown/markdown",
plugins: {
markdown: markdownPlugin,
},
},
{
name: "markdown/code-blocks/js",
files: isTypescriptInstalled()
? ["**/*.md/*.js", "**/*.md/*.ts"]
: ["**/*.md/*.js"],
languageOptions: {
sourceType: "module",
ecmaVersion: "latest",
parserOptions: {
ecmaFeatures: {
globalReturn: true,
impliedStrict: true,
},
},
},
rules: {
strict: "off",
// For different examples
camelcase: "off",
"unicode-bom": "off",
"eol-last": "off",
"no-undef": "off",
"no-unused-private-class-members": "off",
"no-unused-vars": "off",
"no-unused-expressions": "off",
"no-unused-labels": "off",
"no-console": "off",
"no-new": "off",
"unicorn/no-unused-properties": "off",
// Allow to use any packages in documentation
"n/no-unpublished-require": "off",
// Allow to use any packages in documentation
"n/no-unpublished-import": "off",
// Allow to use any ES builtins in documentation
"m/no-unsupported-features/es-builtins": "off",
// Allow to use any ES syntax in documentation
"n/no-unsupported-features/es-syntax": "off",
// Allow to use any Node.js API in documentation
"n/no-unsupported-features/node-builtins": "off",
// Allow to use any packages in documentation
"n/no-missing-import": "off",
// Allow to use any packages in documentation
"n/no-missing-require": "off",
// Useful for documentation
"n/no-process-exit": "off",
"import/no-unresolved": "off",
"import/no-extraneous-dependencies": "off",
"jsdoc/require-jsdoc": "off",
"@typescript-eslint/no-unused-vars": "off",
"@typescript-eslint/no-explicit-any": "off",
"@typescript-eslint/triple-slash-reference": "off",
},
},
];
}
export default {
"markdown/recommended": await getMarkdownRecommendedConfig(),
};