Skip to content

Commit

Permalink
Simplified lint configurations (#148)
Browse files Browse the repository at this point in the history
* refactor: Consumed base configurations

* refactor: Consumed shared configurations

* bugfix: Pinned get-tsconfig to address a regression in v4.7.4

    Error while loading rule '...': File '@tsconfig/strictest/tsconfig' not found.

* chore: Directly consumed @tsconfig/* to avoid pinning get-tsconfig

* chore: Ignored lint errors

* chore: Added lockfile

* chore: Added changeset

---------

Co-authored-by: ijlee2 <[email protected]>
  • Loading branch information
ijlee2 and ijlee2 authored Feb 7, 2025
1 parent 1e1cc83 commit 3b195cc
Show file tree
Hide file tree
Showing 57 changed files with 145 additions and 485 deletions.
12 changes: 12 additions & 0 deletions .changeset/honest-brooms-design.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
---
"@codemod-utils/ast-javascript": patch
"@codemod-utils/ast-template": patch
"@codemod-utils/blueprints": patch
"@codemod-utils/ember": patch
"@codemod-utils/files": patch
"@codemod-utils/tests": patch
"@codemod-utils/json": patch
"@codemod-utils/cli": patch
---

Simplified lint configurations
3 changes: 0 additions & 3 deletions configs/eslint/node/.prettierrc.cjs

This file was deleted.

File renamed without changes.
97 changes: 1 addition & 96 deletions configs/eslint/node/javascript/index.js
Original file line number Diff line number Diff line change
@@ -1,96 +1 @@
import babelEslintParser from '@babel/eslint-parser';
import eslint from '@eslint/js';
import eslintPluginImport from 'eslint-plugin-import';
import eslintPluginN from 'eslint-plugin-n';
import eslintPluginPrettier from 'eslint-plugin-prettier/recommended';
import eslintPluginSimpleImportSort from 'eslint-plugin-simple-import-sort';
import globals from 'globals';

const parserOptionsJs = {
babelOptions: {
plugins: [
[
'@babel/plugin-proposal-decorators',
{
decoratorsBeforeExport: true,
},
],
],
},
ecmaFeatures: {
modules: true,
},
ecmaVersion: 'latest',
requireConfigFile: false,
};

export default [
{
ignores: [
'dist/',
'dist-for-testing/',
'node_modules/',
'src/blueprints/',
'tests/fixtures/',
'tmp/',
'!.*',
'.*/',
],
},
{
linterOptions: {
reportUnusedDisableDirectives: 'error',
},
},
{
plugins: {
'simple-import-sort': eslintPluginSimpleImportSort,
},
rules: {
curly: 'error',
'simple-import-sort/imports': 'error',
'simple-import-sort/exports': 'error',
},
},

eslint.configs.recommended,
eslintPluginImport.flatConfigs.recommended,
eslintPluginPrettier,

// JavaScript files
{
files: ['**/*.js'],
languageOptions: {
parser: babelEslintParser,
parserOptions: parserOptionsJs,
},
rules: {
'import/no-duplicates': 'error',
},
},

// Configuration files
{
files: ['**/*.cjs'],
languageOptions: {
ecmaVersion: 'latest',
globals: globals.node,
sourceType: 'script',
},
plugins: {
n: eslintPluginN,
},
},
{
files: ['**/*.mjs'],
languageOptions: {
ecmaVersion: 'latest',
globals: globals.node,
parserOptions: parserOptionsJs,
sourceType: 'module',
},
plugins: {
n: eslintPluginN,
},
},
];
export { default } from '@ijlee2-frontend-configs/eslint-config-node/javascript';
21 changes: 5 additions & 16 deletions configs/eslint/node/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,31 +9,20 @@
},
"author": "Isaac J. Lee",
"type": "module",
"main": "typescript/index.js",
"exports": {
"./javascript": "./javascript/index.js",
"./typescript": "./typescript/index.js"
},
"scripts": {
"lint": "concurrently \"pnpm:lint:*(!fix)\" --names \"lint:\"",
"lint:fix": "concurrently \"pnpm:lint:*:fix\" --names \"fix:\"",
"lint:js": "eslint . --cache",
"lint:js:fix": "eslint . --fix"
},
"dependencies": {
"@babel/core": "^7.26.7",
"@babel/eslint-parser": "^7.26.5",
"@babel/plugin-proposal-decorators": "^7.25.9",
"@eslint/js": "^9.19.0",
"eslint-config-prettier": "^10.0.1",
"eslint-import-resolver-typescript": "^3.7.0",
"eslint-plugin-import": "^2.31.0",
"eslint-plugin-n": "^17.15.1",
"eslint-plugin-prettier": "^5.2.3",
"eslint-plugin-simple-import-sort": "^12.1.1",
"eslint-plugin-typescript-sort-keys": "^3.3.0",
"globals": "^15.14.0",
"typescript-eslint": "^8.23.0"
"@ijlee2-frontend-configs/eslint-config-node": "^0.1.1"
},
"devDependencies": {
"@shared-configs/prettier": "workspace:*",
"@types/eslint__js": "^8.42.3",
"concurrently": "^9.1.2",
"eslint": "^9.19.0",
"prettier": "^3.4.2"
Expand Down
1 change: 1 addition & 0 deletions configs/eslint/node/prettier.config.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export { default } from '@ijlee2-frontend-configs/prettier';
125 changes: 4 additions & 121 deletions configs/eslint/node/typescript/index.js
Original file line number Diff line number Diff line change
@@ -1,38 +1,6 @@
import babelEslintParser from '@babel/eslint-parser';
import eslint from '@eslint/js';
import eslintPluginImport from 'eslint-plugin-import';
import eslintPluginN from 'eslint-plugin-n';
import eslintPluginPrettier from 'eslint-plugin-prettier/recommended';
import eslintPluginSimpleImportSort from 'eslint-plugin-simple-import-sort';
import eslintPluginTypescriptSortKeys from 'eslint-plugin-typescript-sort-keys';
import globals from 'globals';
// eslint-disable-next-line import/no-unresolved
import tseslint from 'typescript-eslint';
import eslintConfigNodeTypescript from '@ijlee2-frontend-configs/eslint-config-node/typescript';

const parserOptionsJs = {
babelOptions: {
plugins: [
[
'@babel/plugin-proposal-decorators',
{
decoratorsBeforeExport: true,
},
],
],
},
ecmaFeatures: {
modules: true,
},
ecmaVersion: 'latest',
requireConfigFile: false,
};

const parserOptionsTs = {
projectService: true,
tsconfigRootDir: import.meta.dirname,
};

export default tseslint.config(
export default [
{
ignores: [
'dist/',
Expand All @@ -41,93 +9,8 @@ export default tseslint.config(
'src/blueprints/',
'tests/fixtures/',
'tmp/',
'!.*',
'.*/',
],
},
{
linterOptions: {
reportUnusedDisableDirectives: 'error',
},
},
{
plugins: {
'simple-import-sort': eslintPluginSimpleImportSort,
},
rules: {
curly: 'error',
'simple-import-sort/imports': 'error',
'simple-import-sort/exports': 'error',
},
},

eslint.configs.recommended,
eslintPluginImport.flatConfigs.recommended,
eslintPluginPrettier,

// JavaScript files
{
files: ['**/*.js'],
languageOptions: {
parser: babelEslintParser,
parserOptions: parserOptionsJs,
},
rules: {
'import/no-duplicates': 'error',
},
},

// TypeScript files
{
extends: [
...tseslint.configs.recommended,
eslintPluginImport.flatConfigs.typescript,
],
files: ['**/*.ts'],
languageOptions: {
parserOptions: parserOptionsTs,
},
plugins: {
'typescript-sort-keys': eslintPluginTypescriptSortKeys,
},
rules: {
'@typescript-eslint/array-type': 'error',
'@typescript-eslint/consistent-type-imports': 'error',
'@typescript-eslint/no-import-type-side-effects': 'error',
'import/no-duplicates': 'error',
'typescript-sort-keys/interface': 'error',
'typescript-sort-keys/string-enum': 'error',
},
settings: {
'import/resolver': {
node: true,
typescript: true,
},
},
},

// Configuration files
{
files: ['**/*.cjs'],
languageOptions: {
ecmaVersion: 'latest',
globals: globals.node,
sourceType: 'script',
},
plugins: {
n: eslintPluginN,
},
},
{
files: ['**/*.mjs'],
languageOptions: {
ecmaVersion: 'latest',
globals: globals.node,
parserOptions: parserOptionsJs,
sourceType: 'module',
},
plugins: {
n: eslintPluginN,
},
},
);
...eslintConfigNodeTypescript,
];
13 changes: 0 additions & 13 deletions configs/prettier/.prettierrc.cjs

This file was deleted.

5 changes: 4 additions & 1 deletion configs/prettier/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,16 @@
},
"author": "Isaac J. Lee",
"type": "module",
"main": ".prettierrc.cjs",
"main": "prettier.config.mjs",
"scripts": {
"lint": "concurrently \"pnpm:lint:*(!fix)\" --names \"lint:\"",
"lint:fix": "concurrently \"pnpm:lint:*:fix\" --names \"fix:\"",
"lint:js": "prettier . --check",
"lint:js:fix": "prettier . --write"
},
"dependencies": {
"@ijlee2-frontend-configs/prettier": "^0.2.0"
},
"devDependencies": {
"concurrently": "^9.1.2",
"prettier": "^3.4.2"
Expand Down
1 change: 1 addition & 0 deletions configs/prettier/prettier.config.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export { default } from '@ijlee2-frontend-configs/prettier';
3 changes: 0 additions & 3 deletions configs/typescript/.prettierrc.cjs

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
{
"extends": ["@tsconfig/node18/tsconfig", "@tsconfig/strictest/tsconfig"],
"compilerOptions": {
"moduleResolution": "NodeNext",
"module": "nodenext",
"moduleResolution": "nodenext",
"verbatimModuleSyntax": true
}
}
4 changes: 3 additions & 1 deletion configs/typescript/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,9 @@
},
"author": "Isaac J. Lee",
"type": "module",
"main": "node18/tsconfig.json",
"exports": {
"./node18": "./node18/index.json"
},
"scripts": {
"lint": "concurrently \"pnpm:lint:*(!fix)\" --names \"lint:\"",
"lint:fix": "concurrently \"pnpm:lint:*:fix\" --names \"fix:\"",
Expand Down
1 change: 1 addition & 0 deletions configs/typescript/prettier.config.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export { default } from '@ijlee2-frontend-configs/prettier';
4 changes: 2 additions & 2 deletions packages/ast/javascript/.npmignore
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
/.gitignore
/.pnpm-debug.log
/.prettierignore
/.prettierrc.cjs
/build.sh
/eslint.config.js
/eslint.config.mjs
/prettier.config.mjs
/tests/
3 changes: 0 additions & 3 deletions packages/ast/javascript/.prettierrc.cjs

This file was deleted.

3 changes: 0 additions & 3 deletions packages/ast/javascript/eslint.config.js

This file was deleted.

1 change: 1 addition & 0 deletions packages/ast/javascript/eslint.config.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export { default } from '@shared-configs/eslint-config-node/typescript';
1 change: 1 addition & 0 deletions packages/ast/javascript/prettier.config.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export { default } from '@shared-configs/prettier';
4 changes: 2 additions & 2 deletions packages/ast/template/.npmignore
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
/.gitignore
/.pnpm-debug.log
/.prettierignore
/.prettierrc.cjs
/build.sh
/eslint.config.js
/eslint.config.mjs
/prettier.config.mjs
/tests/
3 changes: 0 additions & 3 deletions packages/ast/template/.prettierrc.cjs

This file was deleted.

3 changes: 0 additions & 3 deletions packages/ast/template/eslint.config.js

This file was deleted.

1 change: 1 addition & 0 deletions packages/ast/template/eslint.config.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export { default } from '@shared-configs/eslint-config-node/typescript';
1 change: 1 addition & 0 deletions packages/ast/template/prettier.config.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export { default } from '@shared-configs/prettier';
Loading

0 comments on commit 3b195cc

Please sign in to comment.