UNPKG

@shayanthenerd/eslint-config

Version:

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

29 lines (28 loc) 1.08 kB
import { isTruthy } from "../utils/isTruthy.mjs"; import { globs } from "../helpers/globs.mjs"; import { isEnabled } from "../utils/isEnabled.mjs"; import { defaultOptions } from "../helpers/options/defaultOptions.mjs"; import { getNodeRules } from "../rules/node.mjs"; import { mergeConfigs } from "eslint-flat-config-utils"; import eslintPluginNode from "eslint-plugin-n"; import path from "node:path"; //#region src/configs/node.ts function getNodeConfig(options) { const { tsConfig, configs: { vue, node, astro } } = options; const { overrides } = isEnabled(node) ? node : defaultOptions.configs.node; const tsconfigPath = tsConfig ? path.resolve(tsConfig.rootDir, tsConfig.filename) : void 0; return mergeConfigs({ name: "shayanthenerd/node", files: [ globs.src, globs.jsxTsx, isEnabled(vue) ? globs.vue : "", isEnabled(astro) ? globs.astro : "" ].filter(isTruthy), plugins: { n: eslintPluginNode }, settings: { n: tsconfigPath ? { tsconfigPath } : void 0 }, rules: getNodeRules(options) }, overrides); } //#endregion export { getNodeConfig };