Skip to content

Commit 40d0822

Browse files
committed
feat: add eslintignore to eslint
1 parent 1cfa4e1 commit 40d0822

10 files changed

+31
-12
lines changed

.eslintignore

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
node_modules
2+
dist
3+
bin

__tests__/categories/js/eslint/eslint-test.utils.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,9 @@ import { Config } from 'src/categories/js/eslint/config/config.interface';
33
export const createConfig = ({
44
dependencies = [],
55
eslintConfig = {},
6+
ignore = [],
67
scripts = [],
78
mutations = [],
89
}: Partial<Config> = {}) => {
9-
return { dependencies, eslintConfig, scripts, mutations };
10+
return { dependencies, eslintConfig, ignore, scripts, mutations };
1011
};

__tests__/categories/js/eslint/eslint.entrypoint.test.ts

+9
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,15 @@ describe('eslint', () => {
6161
expect(fsMocked.addJsonFileToRoot).toBeCalledWith('.eslintrc.json', config.eslintConfig);
6262
});
6363

64+
test('should add .eslintignore to root', async () => {
65+
const config = createConfig({ ignore: ['node_modules', 'dist'] });
66+
configMocked.getConfig.mockReturnValueOnce(config);
67+
68+
await eslint();
69+
70+
expect(fsMocked.addFileToRoot).toBeCalledWith('.eslintignore', 'node_modules\ndist');
71+
});
72+
6473
test('should add npm script to package.json', async () => {
6574
const config = createConfig({ scripts: [{ name: 'test', script: '__test__' }] });
6675
configMocked.getConfig.mockReturnValueOnce(config);

package.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@
1818
"release:minor": "standard-version --release-as minor --tag-prefix=",
1919
"release:patch": "standard-version --release-as patch --tag-prefix=",
2020
"release:major": "standard-version --release-as major --tag-prefix=",
21-
"lint": "eslint \"src/**/*.ts\"",
22-
"lint:fix": "eslint \"src/**/*.ts\" --fix",
21+
"lint": "eslint \"**/*.ts\"",
22+
"lint:fix": "eslint \"**/*.ts\" --fix",
2323
"test": "jest",
2424
"test:watch": "jest --watch",
2525
"test:coverage": "jest --coverage"

src/categories/js/eslint/config/config.interface.ts

+1
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ export interface EslintConfig {
2323
export interface Config {
2424
dependencies: string[];
2525
eslintConfig: EslintConfig;
26+
ignore: string[];
2627
scripts: { name: string; script: string }[];
2728
mutations: Mutation<Config>[];
2829
}

src/categories/js/eslint/config/default.config.ts

+3-2
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,10 @@ export const defaultConfig: Config = {
1616
root: true,
1717
extends: ['eslint:recommended'],
1818
},
19+
ignore: ['node_modules', 'dist'],
1920
scripts: [
20-
{ name: 'lint', script: 'eslint "src/**/*.js"' },
21-
{ name: 'lint:fix', script: 'eslint "src/**/*.js" --fix' },
21+
{ name: 'lint', script: 'eslint "**/*.js"' },
22+
{ name: 'lint:fix', script: 'eslint "**/*.js" --fix' },
2223
],
2324
mutations: [prettierMutation, jestMutation],
2425
};

src/categories/js/eslint/config/node:ts.config.ts

+3-2
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,10 @@ export const nodeTsConfig: Config = {
3232
],
3333
},
3434
},
35+
ignore: ['node_modules', 'dist'],
3536
scripts: [
36-
{ name: 'lint', script: 'eslint "src/**/*.ts"' },
37-
{ name: 'lint:fix', script: 'eslint "src/**/*.ts" --fix' },
37+
{ name: 'lint', script: 'eslint "**/*.ts"' },
38+
{ name: 'lint:fix', script: 'eslint "**/*.ts" --fix' },
3839
],
3940
mutations: [prettierMutation, jestMutation],
4041
};

src/categories/js/eslint/config/react:ts.config.ts

+3-2
Original file line numberDiff line numberDiff line change
@@ -52,9 +52,10 @@ export const reactTsConfig: Config = {
5252
],
5353
},
5454
},
55+
ignore: ['node_modules', 'dist'],
5556
scripts: [
56-
{ name: 'lint', script: 'eslint "src/**/*.{ts,tsx}"' },
57-
{ name: 'lint:fix', script: 'eslint "src/**/*.{ts,tsx}" --fix' },
57+
{ name: 'lint', script: 'eslint "**/*.{ts,tsx}"' },
58+
{ name: 'lint:fix', script: 'eslint "**/*.{ts,tsx}" --fix' },
5859
],
5960
mutations: [prettierMutation, jestMutation],
6061
};

src/categories/js/eslint/eslint.const.ts

+1
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,4 @@ export const SCRIPT_NAME = 'eslint';
22
export const PACKAGE_NAME = SCRIPT_NAME;
33
export const CLI_NAME = PACKAGE_NAME;
44
export const CONFIG_FILE_NAME = '.eslintrc.json';
5+
export const CONFIG_IGNORE_FILE_NAME = '.eslintignore';
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,17 @@
11
import { getConfig } from './eslint.config';
2-
import { addJsonFileToRoot } from 'src/utils/fs';
2+
import { addFileToRoot, addJsonFileToRoot } from 'src/utils/fs';
33
import { addScripts, installDevelopmentDependencies } from 'src/utils/npm';
4-
import { CONFIG_FILE_NAME, PACKAGE_NAME } from './eslint.const';
4+
import { CONFIG_FILE_NAME, CONFIG_IGNORE_FILE_NAME, PACKAGE_NAME } from './eslint.const';
55
import { applyMutations } from 'src/utils/mutation';
66

77
export const eslint = async () => {
88
const config = getConfig();
99
await applyMutations(config, config.mutations);
1010

11-
const { dependencies, eslintConfig, scripts } = config;
11+
const { dependencies, eslintConfig, scripts, ignore } = config;
1212

1313
await installDevelopmentDependencies(PACKAGE_NAME, ...dependencies);
1414
await addJsonFileToRoot(CONFIG_FILE_NAME, eslintConfig);
15+
await addFileToRoot(CONFIG_IGNORE_FILE_NAME, ignore.join('\n'));
1516
await addScripts(...scripts);
1617
};

0 commit comments

Comments
 (0)