refactor: ♻️ change constants handling

This commit is contained in:
Guz013
2023-09-09 18:29:28 -03:00
parent 4a1f38ff24
commit 3aed0f1708
13 changed files with 47 additions and 28 deletions

View File

@@ -18,12 +18,12 @@ import importPlugin from 'eslint-plugin-i';
import globals from 'globals';
// eslint-disable-next-line import/no-relative-parent-imports
import { jsFiles, tsFiles } from '../constants.js';
import { FILES } from '../constants.js';
/** @type {import('eslint').Linter.FlatConfig} */
const config = {
files: [...tsFiles, ...jsFiles],
files: FILES,
languageOptions: {
globals: {
...globals.builtin,
@@ -50,9 +50,9 @@ const config = {
'unicorn': unicornPlugin,
},
settings: {
'import/extensions': [...tsFiles, ...jsFiles],
'import/extensions': FILES,
'import/parsers': {
'@typescript-eslint/parser': [...tsFiles, ...jsFiles ],
'@typescript-eslint/parser': FILES,
},
'import/resolver': {
node: true,

View File

@@ -9,10 +9,10 @@
*/
import { createVariations } from '../lib/rule-variations.js';
import { jsFiles, tsFiles } from '../constants.js';
import { FILES } from '../constants.js';
const recommended = createVariations({
files: [...tsFiles, ...jsFiles],
files: FILES,
rules: {
...{}, // Plugin: eslint-plugin-jsdoc
'jsdoc/match-description': 'error',

View File

@@ -12,7 +12,7 @@ import nodePlugin from 'eslint-plugin-n';
import globals from 'globals';
import { createVariations } from '../../lib/rule-variations.js';
import { jsFiles, tsFiles } from '../../constants.js';
import { FILES } from '../../constants.js';
const commonjs = createVariations({
files: ['**/*.cts', '**/*.cjs'],
@@ -47,7 +47,7 @@ const commonjs = createVariations({
});
const recommended = createVariations({
files: [...tsFiles, ...jsFiles],
files: FILES,
languageOptions: {
globals: {
...globals.nodeBuiltin,

View File

@@ -11,10 +11,10 @@
import perfectionistPlugin from 'eslint-plugin-perfectionist';
import { createVariations } from '../lib/rule-variations.js';
import { jsFiles, tsFiles } from '../constants.js';
import { FILES } from '../constants.js';
const recommended = createVariations({
files: [...tsFiles, ...jsFiles],
files: FILES,
plugins: {
// @ts-expect-error because plugin doesn't export correct type
perfectionist: perfectionistPlugin,
@@ -30,7 +30,7 @@ const recommended = createVariations({
'no-mixed-spaces-and-tabs': 'error',
'no-multi-spaces': 'error',
'no-whitespace-before-property': 'error',
'padded-blocks': 'error',
'padded-blocks': ['error', 'never'],
'rest-spread-spacing': 'error',
'semi-spacing': 'error',
'space-in-parens': 'error',

View File

@@ -1,3 +1,4 @@
/* eslint-disable import/max-dependencies */
/**
* @file
* Main export files for all the configs objects, merging then in one `configs` object.

View File

@@ -9,10 +9,10 @@
*/
import { createVariations } from '../lib/rule-variations.js';
import { jsFiles, tsFiles } from '../constants.js';
import { FILES } from '../constants.js';
const recommended = createVariations({
files: [...tsFiles, ...jsFiles],
files: FILES,
rules: {
...{}, // Plugin: eslint-plugin-unicorn
'unicorn/filename-case': ['error', { case: 'kebabCase' }],

View File

@@ -11,11 +11,11 @@
*/
import { createVariations } from '../lib/rule-variations.js';
import { jsFiles, tsFiles } from '../constants.js';
import { FILES, TS_FILES } from '../constants.js';
// TODO [>=1.0.0]: Create a separate config for performance related practices
const performance = createVariations({
files: [...tsFiles, ...jsFiles],
files: FILES,
rules: {
'prefer-object-spread': 'off',
'prefer-spread': 'off',
@@ -23,7 +23,7 @@ const performance = createVariations({
});
const inferrableTypes = createVariations({
files: [...tsFiles],
files: TS_FILES,
rules: {
'@typescript-eslint/explicit-function-return-type': 'off',
'@typescript-eslint/no-inferrable-types': 'error',

View File

@@ -9,10 +9,10 @@
*/
import { createVariations } from '../lib/rule-variations.js';
import { jsFiles, tsFiles } from '../constants.js';
import { FILES } from '../constants.js';
const recommended = createVariations({
files: [...tsFiles, ...jsFiles],
files: FILES,
rules: {
...{}, // ESLint rules
'constructor-super': 'error',

View File

@@ -12,10 +12,10 @@ import noSecretsPluginRegexes from 'eslint-plugin-no-secrets/regexes.js';
import noSecretsPlugin from 'eslint-plugin-no-secrets';
import { createVariations } from '../lib/rule-variations.js';
import { jsFiles, tsFiles } from '../constants.js';
import { FILES } from '../constants.js';
const recommended = createVariations({
files: [...tsFiles, ...jsFiles],
files: FILES,
plugins: {
'no-secrets': noSecretsPlugin,
},

View File

@@ -9,10 +9,10 @@
*/
import { createVariations } from '../lib/rule-variations.js';
import { tsFiles } from '../constants.js';
import { TS_FILES } from '../constants.js';
const recommended = createVariations({
files: [...tsFiles],
files: [TS_FILES].flat(),
rules: {
...{}, // Plugin: @typescript-eslint/eslint-plugin
'@typescript-eslint/explicit-function-return-type': 'error',

View File

@@ -9,10 +9,10 @@
*/
import { createVariations } from '../lib/rule-variations.js';
import { jsFiles, tsFiles } from '../constants.js';
import { FILES } from '../constants.js';
const recommended = createVariations({
files: [...tsFiles, ...jsFiles],
files: FILES,
rules: {
'camelcase': 'error',
'max-len': ['error', { code: 80, comments: 100, ignoreUrls: true }],

View File

@@ -5,7 +5,25 @@
* @author Guz013 <contact.guz013@gmail.com> (https://guz.one)
*/
const jsFiles = ['**/*.js', '**/*.mjs', '**/*.cjs', '**/*.jsx'];
const tsFiles = ['**/*.ts', '**/*.mts', '**/*.cts', '**/*.tsx'];
const JS_FILES = [
'**/*.js',
'**/*.mjs',
'**/*.cjs',
'**/*.jsx',
];
const TS_FILES = [
'**/*.ts',
'**/*.mts',
'**/*.cts',
'**/*.tsx',
];
const FILES = [
JS_FILES,
TS_FILES,
].flat();
export { jsFiles, tsFiles };
export {
FILES,
JS_FILES,
TS_FILES,
};

View File

@@ -2,7 +2,7 @@ import { configs, defineConfig, presets } from '@eslegant/js';
export default defineConfig([
...presets.strict,
configs.environments.node.strict.error,
configs.environments.node.strict.default,
{
...configs.documentation.strict.error,
files: ['configs/**/*.js', 'configs/**/*.ts'],