Skip to content

Commit

Permalink
fix: add names to configs to help config inspector (#315)
Browse files Browse the repository at this point in the history
  • Loading branch information
voxpelli committed Jun 14, 2024
1 parent dc20d65 commit 9786a4c
Show file tree
Hide file tree
Showing 8 changed files with 127 additions and 102 deletions.
19 changes: 10 additions & 9 deletions base-configs/additional-rules.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,9 @@ import sortDestructureKeysPlugin from 'eslint-plugin-sort-destructure-keys';
// @ts-ignore
import unicornPlugin from 'eslint-plugin-unicorn';

/** @satisfies {import('@typescript-eslint/utils/ts-eslint').FlatConfig.Config} */
const addititionalCoreRules = {
/** @satisfies {import('eslint').Linter.FlatConfig} */
const additionalCoreRules = {
name: '@voxpelli/additional/core',
rules: {
// Added ESLint core rules
'func-style': ['warn', 'expression', { 'allowArrowFunctions': true }],
Expand All @@ -26,11 +27,11 @@ const addititionalCoreRules = {
},
};

/** @satisfies {import('@typescript-eslint/utils/ts-eslint').FlatConfig.ConfigArray} */
/** @satisfies {import('eslint').Linter.FlatConfig[]} */
const adaptedNodeRules = [
nPlugin.configs['flat/recommended'],
{
name: 'Adapted Node Rules',
name: '@voxpelli/additional/node',
rules: {
// Overriding
'n/no-process-exit': 'off',
Expand All @@ -44,11 +45,11 @@ const adaptedNodeRules = [
},
];

/** @satisfies {import('@typescript-eslint/utils/ts-eslint').FlatConfig.ConfigArray} */
/** @satisfies {import('eslint').Linter.FlatConfig[]} */
const adaptedUnicornRules = [
unicornPlugin.configs['flat/recommended'],
{
name: 'Additional Node Rules',
name: '@voxpelli/additional/unicorn',
rules: {
// Overriding
'unicorn/catch-error-name': ['error', { name: 'err', ignore: ['^cause$'] }],
Expand All @@ -68,16 +69,16 @@ const adaptedUnicornRules = [
},
];

/** @satisfies {import('@typescript-eslint/utils/ts-eslint').FlatConfig.ConfigArray} */
/** @satisfies {import('eslint').Linter.FlatConfig[]} */
export const additionalRules = [
addititionalCoreRules,
additionalCoreRules,
...adaptedNodeRules,
...adaptedUnicornRules,
securityPlugin.configs.recommended,
// TODO: Add promise plugin once https://github.com/eslint-community/eslint-plugin-promise/issues/449 has been fixed
// promisePlugin.?
{
name: 'Additional Rules',
name: '@voxpelli/additional/misc',
plugins: {
'es-x': esxPlugin,
// TODO: Add back
Expand Down
1 change: 1 addition & 0 deletions base-configs/esm.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
/** @satisfies {import('eslint').Linter.FlatConfig[]} */
export const esmRules = [
{
name: '@voxpelli/esm',
rules: {
// Overrides of other rules
'func-style': ['warn', 'declaration', { 'allowArrowFunctions': true }],
Expand Down
1 change: 1 addition & 0 deletions base-configs/jsdoc.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import jsdoc from 'eslint-plugin-jsdoc';
export const jsdocRules = [
jsdoc.configs['flat/recommended-typescript-flavor'],
{
name: '@voxpelli/jsdoc',
rules: {
'jsdoc/check-types': 'off',
'jsdoc/require-jsdoc': 'off',
Expand Down
38 changes: 23 additions & 15 deletions base-configs/mocha.js
Original file line number Diff line number Diff line change
@@ -1,20 +1,28 @@
// @ts-ignore
import mochaPlugin from 'eslint-plugin-mocha';
import { config } from 'typescript-eslint';

export const mochaRules = config({
ignores: ['**/*', '!test/**/*'],
'extends': [
mochaPlugin.configs.flat.recommended,
{
files: ['**/*.ts'],
rules: {
'@typescript-eslint/no-unused-expressions': 'off',
},
const ignores = ['**/*', '!test/**/*'];

/** @satisfies {import('eslint').Linter.FlatConfig[]} */
export const mochaRules = [
{
...mochaPlugin.configs.flat.recommended,
ignores,
},
{
name: '@voxpelli/mocha',
ignores,
rules: {
'mocha/no-mocha-arrows': 'off',
'no-unused-expressions': 'off',
},
},
{
name: '@voxpelli/mocha/ts',
ignores,
files: ['**/*.ts'],
rules: {
'@typescript-eslint/no-unused-expressions': 'off',
},
],
rules: {
'mocha/no-mocha-arrows': 'off',
'no-unused-expressions': 'off',
},
});
];
4 changes: 3 additions & 1 deletion base-configs/modified-rules.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
/** @satisfies {import('@typescript-eslint/utils/ts-eslint').FlatConfig.ConfigArray} */
/** @satisfies {import('eslint').Linter.FlatConfig[]} */
export const modifiedNeostandardRules = [
{
name: '@voxpelli/eslint-config Modified Neostandard TS Rules',
files: ['**/*.ts'],
rules: {
'@typescript-eslint/no-unused-vars': ['error', {
Expand All @@ -12,6 +13,7 @@ export const modifiedNeostandardRules = [
},
},
{
name: '@voxpelli/eslint-config Modified Neostandard Rules',
rules: {
'no-unused-vars': ['error', {
'vars': 'all',
Expand Down
43 changes: 21 additions & 22 deletions index.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import neostandard, { resolveIgnoresFromGitignore } from 'neostandard';
import { config } from 'typescript-eslint';

import { additionalRules } from './base-configs/additional-rules.js';
import { esmRules } from './base-configs/esm.js';
Expand All @@ -9,7 +8,7 @@ import { modifiedNeostandardRules } from './base-configs/modified-rules.js';

/**
* @param {{ cjs?: boolean, noMocha?: boolean } & import('neostandard').NeostandardOptions} [options]
* @returns {import('@typescript-eslint/utils/ts-eslint').FlatConfig.ConfigArray}
* @returns {import('eslint').Linter.FlatConfig[]}
*/
export function voxpelli (options) {
const {
Expand All @@ -19,26 +18,26 @@ export function voxpelli (options) {
...neostandardOptions
} = options || {};

return config({
ignores: [
'coverage/**/*',
...resolveIgnoresFromGitignore(),
...ignores || [],
],

'extends': [
...neostandard({
semi: true,
ts: true,
...neostandardOptions,
}),
...modifiedNeostandardRules,
...additionalRules,
...jsdocRules,
...cjs ? [] : esmRules,
...noMocha ? [] : mochaRules,
],
});
return [
{
name: '@voxpelli/ignores',
ignores: [
'coverage/**/*',
...resolveIgnoresFromGitignore(),
...ignores || [],
],
},
...neostandard({
semi: true,
ts: true,
...neostandardOptions,
}),
...modifiedNeostandardRules,
...additionalRules,
...jsdocRules,
...cjs ? [] : esmRules,
...noMocha ? [] : mochaRules,
];
}

export default voxpelli();
Loading

0 comments on commit 9786a4c

Please sign in to comment.