From 5659f960910228ab14823d2af12870c54aaef79d Mon Sep 17 00:00:00 2001 From: Nelson Martell Date: Wed, 11 Oct 2023 12:51:53 -0500 Subject: [PATCH] feat(presets): add node-fermium entrypoint (for node 14) --- package.json | 6 ++++++ src/presets/default.ts | 1 - src/presets/node-fermium.ts | 43 +++++++++++++++++++++++++++++++++++++ 3 files changed, 49 insertions(+), 1 deletion(-) create mode 100644 src/presets/node-fermium.ts diff --git a/package.json b/package.json index d818518..de67df7 100644 --- a/package.json +++ b/package.json @@ -25,6 +25,12 @@ "require": "./dist/presets/node-erbium.cjs", "default": "./dist/presets/node-erbium.cjs" }, + "./node-fermium": { + "types": "./dist/presets/node-fermium.d.ts", + "import": "./dist/presets/node-fermium.mjs", + "require": "./dist/presets/node-fermium.cjs", + "default": "./dist/presets/node-fermium.cjs" + }, "./rules": { "types": "./dist/rules/index.d.ts", "import": "./dist/rules/index.mjs", diff --git a/src/presets/default.ts b/src/presets/default.ts index b654892..47fa371 100644 --- a/src/presets/default.ts +++ b/src/presets/default.ts @@ -40,7 +40,6 @@ const config: Linter.Config = { export default config; // TODO: Create presets for different versions of node -// 14.x Fermium 2020-04-21 // 16.x Gallium 2021-04-20 // 18.x Hydrogen 2023-09-18 // 20.x - 2023-09-28 diff --git a/src/presets/node-fermium.ts b/src/presets/node-fermium.ts new file mode 100644 index 0000000..b840008 --- /dev/null +++ b/src/presets/node-fermium.ts @@ -0,0 +1,43 @@ +import { Linter } from 'eslint'; + +import { baseRules, getImportRules, getNodeRules } from '~/rules'; + +/** + * Config for Node.js 12 (Erbium) + */ +const config: Linter.Config = { + overrides: [ + { + files: ['*.js', '*.mjs', '*.cjs'], + parserOptions: { + ecmaVersion: 'latest', + }, + extends: [ + // + 'eslint:recommended', + 'plugin:node/recommended', + 'plugin:import/recommended', + 'plugin:unicorn/recommended', + 'prettier', + ], + plugins: [ + // + 'node', + 'import', + 'unicorn', + ], + rules: { + ...baseRules, + ...getImportRules({ + pathsGroups: [ + { group: 'internal', pattern: '@/**' }, + { group: 'internal', pattern: '~/**' }, + ], + }), + ...getNodeRules({ nodeVersionRange: '^14.0.0' }), + }, + }, + ], +}; + +export default config;