Skip to content

Commit

Permalink
remove hidden gitignore config (#252)
Browse files Browse the repository at this point in the history
Signed-off-by: Kangrui Johann Ye <[email protected]>
  • Loading branch information
strawberry-choco authored Nov 12, 2024
1 parent 6b59697 commit ebc7e06
Show file tree
Hide file tree
Showing 17 changed files with 126 additions and 52 deletions.
10 changes: 6 additions & 4 deletions CUSTOM_CONFIGURATION.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,12 @@ By default, only tsconfig files in the root directory are used. You can provide
// this applies to all configs, not just typescript
import { cloudflightTypescriptConfig } from '@cloudflight/eslint-plugin-typescript';

export default cloudflightTypescriptConfig({
rootDirectory: import.meta.dirname,
tsConfigFiles: ['./packages/*/tsconfig.json', './packages/*/tsconfig.spec.json'],
});
export default [
...cloudflightTypescriptConfig({
rootDirectory: import.meta.dirname,
tsConfigFiles: ['./packages/*/tsconfig.json', './packages/*/tsconfig.spec.json'],
}),
];
```
**Try to keep the list of TSConfig files as short as possible, they have a negative effect on performance**

Expand Down
7 changes: 7 additions & 0 deletions eslint.config.mjs
Original file line number Diff line number Diff line change
@@ -1,7 +1,14 @@
import {cloudflightTypescriptConfig} from '@cloudflight/eslint-plugin-typescript';
import {includeIgnoreFile} from '@eslint/compat';
import {dirname, normalize, resolve} from 'node:path';
import {fileURLToPath} from 'node:url';
import tseslint from 'typescript-eslint';

const directory = dirname(fileURLToPath(import.meta.url));
const gitignorePath = normalize(resolve(directory, '.gitignore'));

export default tseslint.config(
includeIgnoreFile(gitignorePath),
...cloudflightTypescriptConfig({
rootDirectory: import.meta.dirname,
tsConfigFiles: ['./packages/*/tsconfig.json', './packages/*/tsconfig.spec.json'],
Expand Down
16 changes: 13 additions & 3 deletions eslint.format.mjs
Original file line number Diff line number Diff line change
@@ -1,5 +1,15 @@
import {cloudflightTypescriptFormatConfig} from '@cloudflight/eslint-plugin-typescript';
import {includeIgnoreFile} from '@eslint/compat';
import {dirname, normalize, resolve} from 'node:path';
import {fileURLToPath} from 'node:url';
import tseslint from 'typescript-eslint';

export default cloudflightTypescriptFormatConfig({
rootDirectory: import.meta.dirname,
});
const directory = dirname(fileURLToPath(import.meta.url));
const gitignorePath = normalize(resolve(directory, '.gitignore'));

export default tseslint.config(
includeIgnoreFile(gitignorePath),
...cloudflightTypescriptFormatConfig({
rootDirectory: import.meta.dirname,
}),
);
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@cloudflight/eslint-plugin",
"version": "1.0.0-rc13",
"version": "1.0.0-rc14",
"private": true,
"volta": {
"node": "20.18.0",
Expand Down
17 changes: 13 additions & 4 deletions packages/eslint-plugin-angular/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,10 +37,19 @@ Now open your `eslint.config.mjs` and add one of the configurations:

```ts
import { cloudflightAngularConfig } from '@cloudflight/eslint-plugin-angular';

export default cloudflightAngularConfig({
rootDirectory: import.meta.dirname,
});
import { includeIgnoreFile } from '@eslint/compat';
import { dirname, normalize, resolve } from 'node:path';
import { fileURLToPath } from 'node:url';

const directory = dirname(fileURLToPath(import.meta.url));
const gitignorePath = normalize(resolve(directory, '.gitignore'));

export default [
includeIgnoreFile(gitignorePath),
...cloudflightAngularConfig({
rootDirectory: import.meta.dirname,
}),
];
```
See [Custom Configuration](../../CUSTOM_CONFIGURATION.md) for more complicated project setups.

Expand Down
2 changes: 1 addition & 1 deletion packages/eslint-plugin-angular/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@cloudflight/eslint-plugin-angular",
"version": "1.0.0-rc13",
"version": "1.0.0-rc14",
"description": "Cloudflight eslint-plugin & eslint-config for angular",
"volta": {
"extends": "../../package.json"
Expand Down
17 changes: 13 additions & 4 deletions packages/eslint-plugin-node/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,18 @@ Now open your `eslint.config.mjs` and add one of the configurations:

```ts
import { cloudflightNodeConfig } from '@cloudflight/eslint-plugin-node';

export default cloudflightNodeConfig({
rootDirectory: import.meta.dirname,
});
import { includeIgnoreFile } from '@eslint/compat';
import { dirname, normalize, resolve } from 'node:path';
import { fileURLToPath } from 'node:url';

const directory = dirname(fileURLToPath(import.meta.url));
const gitignorePath = normalize(resolve(directory, '.gitignore'));

export default [
includeIgnoreFile(gitignorePath),
...cloudflightNodeConfig({
rootDirectory: import.meta.dirname,
}),
];
```
See [Custom Configuration](../../CUSTOM_CONFIGURATION.md) for more complicated project setups.
2 changes: 1 addition & 1 deletion packages/eslint-plugin-node/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@cloudflight/eslint-plugin-node",
"version": "1.0.0-rc13",
"version": "1.0.0-rc14",
"description": "Cloudflight eslint-plugin & eslint-config for node",
"volta": {
"extends": "../../package.json"
Expand Down
6 changes: 6 additions & 0 deletions packages/eslint-plugin-node/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,12 @@ export function cloudflightNodeConfig(settings: CloudflightEslintPluginSettings)
...securityRules,
...importEslintRules,
},
languageOptions: {
parserOptions: {
project: settings.tsConfigFiles ?? ['tsconfig*(.*).json'],
tsconfigRootDir: settings.rootDirectory,
},
},
},
);
}
17 changes: 13 additions & 4 deletions packages/eslint-plugin-react/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,19 @@ Now open your `eslint.config.mjs` and add one of the configurations:

```ts
import { cloudflightReactConfig } from '@cloudflight/eslint-plugin-react';

export default cloudflightReactConfig({
rootDirectory: import.meta.dirname,
});
import { includeIgnoreFile } from '@eslint/compat';
import { dirname, normalize, resolve } from 'node:path';
import { fileURLToPath } from 'node:url';

const directory = dirname(fileURLToPath(import.meta.url));
const gitignorePath = normalize(resolve(directory, '.gitignore'));

export default [
includeIgnoreFile(gitignorePath),
...cloudflightReactConfig({
rootDirectory: import.meta.dirname,
}),
];
```
See [Custom Configuration](../../CUSTOM_CONFIGURATION.md) for more complicated project setups.

Expand Down
2 changes: 1 addition & 1 deletion packages/eslint-plugin-react/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@cloudflight/eslint-plugin-react",
"version": "1.0.0-rc13",
"version": "1.0.0-rc14",
"description": "Cloudflight eslint-plugin & eslint-config for React",
"volta": {
"extends": "../../package.json"
Expand Down
36 changes: 27 additions & 9 deletions packages/eslint-plugin-typescript/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,19 @@ Now open your `eslint.config.mjs` and add one of the configurations:

```ts
import { cloudflightTypescriptConfig } from '@cloudflight/eslint-plugin-typescript';

export default cloudflightTypescriptConfig({
rootDirectory: import.meta.dirname,
});
import { includeIgnoreFile } from '@eslint/compat';
import { dirname, normalize, resolve } from 'node:path';
import { fileURLToPath } from 'node:url';

const directory = dirname(fileURLToPath(import.meta.url));
const gitignorePath = normalize(resolve(directory, '.gitignore'));

export default [
includeIgnoreFile(gitignorePath),
...cloudflightTypescriptConfig({
rootDirectory: import.meta.dirname,
}),
];
```
See [Custom Configuration](../../CUSTOM_CONFIGURATION.md) for more complicated project setups.

Expand All @@ -54,11 +63,20 @@ In your `package.json` add the following:
Create a new file called `eslint.format.mjs` and add the following:

```ts
import {cloudflightTypescriptFormatConfig} from '@cloudflight/eslint-plugin-typescript';

export default cloudflightTypescriptFormatConfig({
rootDirectory: import.meta.dirname,
});
import { cloudflightTypescriptFormatConfig } from '@cloudflight/eslint-plugin-typescript';
import { includeIgnoreFile } from '@eslint/compat';
import { dirname, normalize, resolve } from 'node:path';
import { fileURLToPath } from 'node:url';

const directory = dirname(fileURLToPath(import.meta.url));
const gitignorePath = normalize(resolve(directory, '.gitignore'));

export default [
includeIgnoreFile(gitignorePath),
...cloudflightTypescriptFormatConfig({
rootDirectory: import.meta.dirname,
}),
];
```

With the command `eslint -c eslint.format.mjs .` your project can be checked for formatting violations.
Expand Down
2 changes: 1 addition & 1 deletion packages/eslint-plugin-typescript/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@cloudflight/eslint-plugin-typescript",
"version": "1.0.0-rc13",
"version": "1.0.0-rc14",
"description": "Cloudflight eslint-plugin & eslint-config for typescript",
"volta": {
"extends": "../../package.json"
Expand Down
17 changes: 3 additions & 14 deletions packages/eslint-plugin-typescript/src/index.ts
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@
import type {FlatConfig, SharedConfigurationSettings} from '@typescript-eslint/utils/ts-eslint';

import {fixupPluginRules, includeIgnoreFile} from '@eslint/compat';
import {fixupPluginRules} from '@eslint/compat';
import pluginJs from '@eslint/js';
import stylistic from '@stylistic/eslint-plugin';
import eslintPluginImportX from 'eslint-plugin-import-x';
import perfectionist from 'eslint-plugin-perfectionist';
import rxjs from 'eslint-plugin-rxjs';
import {resolve} from 'node:path';
import tseslint from 'typescript-eslint';

import {customRules} from './configs/custom';
Expand Down Expand Up @@ -90,13 +89,8 @@ export interface CloudflightEslintPluginSettings {
tsConfigFiles?: string[];
}

export function cloudflightTypescriptFormatConfig(
settings: CloudflightEslintPluginSettings,
): FlatConfig.ConfigArray {
const gitignorePath = resolve(settings.rootDirectory, '.gitignore');

export function cloudflightTypescriptFormatConfig(settings: CloudflightEslintPluginSettings): FlatConfig.ConfigArray {
return tseslint.config(
includeIgnoreFile(gitignorePath),
{
ignores: ['.yarn/**'],
},
Expand Down Expand Up @@ -126,13 +120,8 @@ export function cloudflightTypescriptFormatConfig(
);
}

export function cloudflightTypescriptConfig(
settings: CloudflightEslintPluginSettings,
): FlatConfig.ConfigArray {
const gitignorePath = resolve(settings.rootDirectory, '.gitignore');

export function cloudflightTypescriptConfig(settings: CloudflightEslintPluginSettings): FlatConfig.ConfigArray {
return tseslint.config(
includeIgnoreFile(gitignorePath),
// eslint-disable-next-line @typescript-eslint/no-deprecated
...cloudflightTypescriptBaseConfig,
// eslint-disable-next-line @typescript-eslint/no-deprecated
Expand Down
17 changes: 13 additions & 4 deletions packages/eslint-plugin-vue/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,19 @@ Now open your `eslint.config.mjs` and add one of the configurations:

```ts
import { cloudflightVueConfig } from '@cloudflight/eslint-plugin-vue';

export default cloudflightVueConfig({
rootDirectory: import.meta.dirname,
});
import { includeIgnoreFile } from '@eslint/compat';
import { dirname, normalize, resolve } from 'node:path';
import { fileURLToPath } from 'node:url';

const directory = dirname(fileURLToPath(import.meta.url));
const gitignorePath = normalize(resolve(directory, '.gitignore'));

export default [
includeIgnoreFile(gitignorePath),
...cloudflightVueConfig({
rootDirectory: import.meta.dirname,
}),
];
```

See [Custom Configuration](../../CUSTOM_CONFIGURATION.md) for more complicated project setups.
2 changes: 1 addition & 1 deletion packages/eslint-plugin-vue/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@cloudflight/eslint-plugin-vue",
"version": "1.0.0-rc13",
"version": "1.0.0-rc14",
"description": "Cloudflight eslint-plugin & eslint-config for vue",
"volta": {
"extends": "../../package.json"
Expand Down
6 changes: 6 additions & 0 deletions packages/eslint-plugin-vue/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,12 @@ export function cloudflightVueConfig(settings: CloudflightEslintPluginSettings):
...typescriptRules,
...vueRules,
},
languageOptions: {
parserOptions: {
project: settings.tsConfigFiles ?? ['tsconfig*(.*).json'],
tsconfigRootDir: settings.rootDirectory,
},
},
},
);
}

0 comments on commit ebc7e06

Please sign in to comment.