UNPKG

@shayanthenerd/eslint-config

Version:

A modern, flexible ESLint configuration for enforcing best practices and maintaining a consistent coding style

43 lines (41 loc) 1.35 kB
import { globs } from "../utils/globs.js"; import { getJavaScriptRules } from "../rules/javascript.js"; import typescriptESLint from "typescript-eslint"; import { mergeConfigs } from "eslint-flat-config-utils"; import globals from "globals"; import javascriptESLint from "@eslint/js"; //#region src/configs/base.ts function getBaseConfig(options) { const { configs: { vue, base: { overrides } }, global: { globals: { node, worker, browser, commonjs, webextension, serviceworker, custom: userGlobals } } } = options; const baseConfig = { name: "shayanthenerd/base", files: [globs.src, vue ? globs.vue : ""], extends: [javascriptESLint.configs.recommended], languageOptions: { parser: typescriptESLint.parser, parserOptions: { ecmaVersion: "latest", ecmaFeatures: { jsx: true, impliedStrict: true } }, globals: { ...globals.builtin, ...globals.es2026, ...commonjs ? globals.commonjs : {}, ...node ? globals.node : {}, ...node ? globals.nodeBuiltin : {}, ...browser ? globals.browser : {}, ...worker ? globals.worker : {}, ...serviceworker ? globals.serviceworker : {}, ...webextension ? globals.webextensions : {}, ...userGlobals } }, rules: getJavaScriptRules(options) }; return mergeConfigs(baseConfig, overrides); } //#endregion export { getBaseConfig };