Skip to content

Commit

Permalink
move to flat config
Browse files Browse the repository at this point in the history
  • Loading branch information
DaveMBush committed Jan 25, 2025
1 parent 7b22075 commit 7a65dcc
Show file tree
Hide file tree
Showing 8 changed files with 249 additions and 145 deletions.
42 changes: 0 additions & 42 deletions .eslintrc.json

This file was deleted.

68 changes: 68 additions & 0 deletions eslint.config.cjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
const { FlatCompat } = require('@eslint/eslintrc');
const js = require('@eslint/js');
const nxEslintPlugin = require('@nx/eslint-plugin');

const compat = new FlatCompat({
baseDirectory: __dirname,
recommendedConfig: js.configs.recommended,
});

module.exports = [
{
ignores: ['**/dist'],
},
{ plugins: { '@nx': nxEslintPlugin } },
{
files: ['**/*.ts', '**/*.tsx', '**/*.js', '**/*.jsx'],
rules: {
'@nx/enforce-module-boundaries': [
'error',
{
enforceBuildableLibDependency: true,
allow: [],
depConstraints: [
{
sourceTag: '*',
onlyDependOnLibsWithTags: ['*'],
},
],
},
],
},
},
...compat
.config({
extends: ['plugin:@nx/typescript'],
})
.map((config) => ({
...config,
files: ['**/*.ts', '**/*.tsx', '**/*.cts', '**/*.mts'],
rules: {
...config.rules,
},
})),
...compat
.config({
extends: ['plugin:@nx/javascript'],
})
.map((config) => ({
...config,
files: ['**/*.js', '**/*.jsx', '**/*.cjs', '**/*.mjs'],
rules: {
...config.rules,
},
})),
...compat
.config({
env: {
jest: true,
},
})
.map((config) => ({
...config,
files: ['**/*.spec.ts', '**/*.spec.tsx', '**/*.spec.js', '**/*.spec.jsx'],
rules: {
...config.rules,
},
})),
];
6 changes: 4 additions & 2 deletions nx.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,8 @@
"!{projectRoot}/tsconfig.spec.json",
"!{projectRoot}/jest.config.[jt]s",
"!{projectRoot}/src/test-setup.[jt]s",
"!{projectRoot}/test-setup.[jt]s"
"!{projectRoot}/test-setup.[jt]s",
"!{projectRoot}/eslint.config.cjs"
],
"sharedGlobals": []
},
Expand All @@ -26,7 +27,8 @@
"default",
"{workspaceRoot}/.eslintrc.json",
"{workspaceRoot}/.eslintignore",
"{workspaceRoot}/eslint.config.js"
"{workspaceRoot}/eslint.config.js",
"{workspaceRoot}/eslint.config.cjs"
]
},
"@nx/jest:jest": {
Expand Down
8 changes: 4 additions & 4 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,12 @@
"private": true,
"dependencies": {
"@typescript-eslint/utils": "^8.21.0",
"tslib": "^2.8.1",
"ts-api-utils": "^2.0.0"
"ts-api-utils": "^2.0.0",
"tslib": "^2.8.1"
},
"devDependencies": {
"@angular-eslint/test-utils": "19.0.2",
"@eslint/eslintrc": "^2.1.1",
"@nx/angular": "20.3.2",
"@nx/cypress": "20.3.2",
"@nx/esbuild": "20.3.2",
Expand All @@ -33,8 +34,6 @@
"@swc/helpers": "~0.5.15",
"@types/jest": "^29.4.0",
"@types/node": "22.10.5",
"@typescript-eslint/eslint-plugin": "^8.20.0",
"@typescript-eslint/parser": "^8.20.0",
"@typescript-eslint/rule-tester": "^8.20.0",
"esbuild": "^0.24.2",
"eslint": "~9.18.0",
Expand All @@ -47,6 +46,7 @@
"ts-jest": "^29.2.5",
"ts-node": "10.9.2",
"typescript": "5.6.3",
"typescript-eslint": "^8.13.0",
"verdaccio": "^6.0.5"
},
"engines": {
Expand Down
34 changes: 0 additions & 34 deletions packages/eslint-plugin-rxjs/.eslintrc.json

This file was deleted.

60 changes: 60 additions & 0 deletions packages/eslint-plugin-rxjs/eslint.config.cjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
const { FlatCompat } = require('@eslint/eslintrc');
const js = require('@eslint/js');
const baseConfig = require('../../eslint.config.cjs');

const compat = new FlatCompat({
baseDirectory: __dirname,
recommendedConfig: js.configs.recommended,
});

module.exports = [
{
ignores: ['**/dist'],
},
...baseConfig,
{
files: ['**/*.ts', '**/*.tsx', '**/*.js', '**/*.jsx'],
// Override or add rules here
rules: {},
languageOptions: {
parserOptions: {
project: ['packages/eslint-plugin-rxjs/tsconfig.*?.json'],
},
},
},
{
files: ['**/*.ts', '**/*.tsx'],
// Override or add rules here
rules: {},
},
{
files: ['**/*.js', '**/*.jsx'],
// Override or add rules here
rules: {},
},
{
files: ['**/*.json'],
rules: {
'@nx/dependency-checks': [
'error',
{
ignoredFiles: ['{projectRoot}/esbuild.config.{js,ts,mjs,mts}'],
ignoredDependencies: [
'typescript',
'@angular-eslint/test-utils',
'@eslint/eslintrc',
'@eslint/js',
'jsonc-eslint-parser',
],
checkMissingDependencies: true,
checkObsoleteDependencies: true,
checkVersionMismatches: true,
includeTransitiveDependencies: false,
},
],
},
languageOptions: {
parser: require('jsonc-eslint-parser'),
},
},
];
55 changes: 19 additions & 36 deletions packages/eslint-plugin-rxjs/project.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,32 +3,36 @@
"$schema": "../../node_modules/nx/schemas/project-schema.json",
"sourceRoot": "packages/eslint-plugin-rxjs/src",
"projectType": "library",
"release": {
"version": {
"generatorOptions": {
"packageRoot": "dist/{projectRoot}",
"currentVersionResolver": "git-tag"
}
}
},
"nxDependencyChecks": {
"ignoredDependencies": ["typescript", "@angular-eslint/test-utils"]
},
"tags": [],
"targets": {
"build-lib": {
"executor": "@nx/esbuild:esbuild",
"outputs": [
"{options.outputPath}"
],
"outputs": ["{options.outputPath}"],
"options": {
"outputPath": "dist/packages/eslint-plugin-rxjs",
"main": "packages/eslint-plugin-rxjs/src/index.ts",
"tsConfig": "packages/eslint-plugin-rxjs/tsconfig.lib.json",
"assets": [
"packages/eslint-plugin-rxjs/*.md"
],
"format": [
"cjs"
],
"assets": ["packages/eslint-plugin-rxjs/*.md"],
"format": ["cjs"],
"dts": true,
"bundle": true,
"thirdParty": false
}
},
"build": {
"executor": "nx:run-commands",
"dependsOn": [
"build-lib"
],
"dependsOn": ["build-lib"],
"options": {
"command": "echo 'Copying types...' && cp dist/packages/eslint-plugin-rxjs/src/index.d.ts dist/packages/eslint-plugin-rxjs"
}
Expand All @@ -40,38 +44,17 @@
},
"lint": {
"executor": "@nx/eslint:lint",
"outputs": [
"{options.outputFile}"
],
"outputs": ["{options.outputFile}"],
"options": {
"lintFilePatterns": [
"packages/eslint-plugin-rxjs/package.json"
]
"lintFilePatterns": ["packages/eslint-plugin-rxjs/package.json"]
}
},
"test": {
"executor": "@nx/jest:jest",
"outputs": [
"{workspaceRoot}/coverage/{projectRoot}"
],
"outputs": ["{workspaceRoot}/coverage/{projectRoot}"],
"options": {
"jestConfig": "packages/eslint-plugin-rxjs/jest.config.ts"
}
}
},
"tags": [],
"release": {
"version": {
"generatorOptions": {
"packageRoot": "dist/{projectRoot}",
"currentVersionResolver": "git-tag"
}
}
},
"nxDependencyChecks": {
"ignoredDependencies": [
"typescript",
"@angular-eslint/test-utils"
]
}
}
Loading

0 comments on commit 7a65dcc

Please sign in to comment.