Skip to content

Commit c03866f

Browse files
committed
fix: change stylelint configs to correct
1 parent d0d8d25 commit c03866f

File tree

6 files changed

+28
-17
lines changed

6 files changed

+28
-17
lines changed

src/categories/js/lint-staged/config/default.config.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,5 @@ import { Config } from './config.interface';
33

44
export const defaultConfig: Config = {
55
config: {},
6-
mutations: [prettierMutation, stylelintMutation, eslintMutation('*.js'), jestMutation('*.js')],
6+
mutations: [prettierMutation, stylelintMutation('*.css'), eslintMutation('*.js'), jestMutation('*.js')],
77
};

src/categories/js/lint-staged/config/node:ts.config.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,5 @@ import { Config } from './config.interface';
33

44
export const nodeTsConfig: Config = {
55
config: {},
6-
mutations: [prettierMutation, stylelintMutation, eslintMutation('*.ts'), jestMutation('*.ts')],
6+
mutations: [prettierMutation, stylelintMutation('*.css'), eslintMutation('*.ts'), jestMutation('*.ts')],
77
};
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import { eslintMutation, jestMutation, prettierMutation, stylelintMutation } from '../lint-staged.utils';
2+
import { Config } from './config.interface';
3+
4+
export const reactTsConfig: Config = {
5+
config: {},
6+
mutations: [
7+
prettierMutation,
8+
stylelintMutation('*.{ts,tsx}'),
9+
eslintMutation('*.{ts,tsx}'),
10+
jestMutation('*.{ts,tsx}'),
11+
],
12+
};
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
import { jsCategoryState } from 'src/states/categories';
22
import { defaultConfig } from './config/default.config';
33
import { nodeTsConfig } from './config/node:ts.config';
4+
import { reactTsConfig } from './config/react:ts.config';
45

56
export const [getConfig] = jsCategoryState.useConfigState({
67
default: defaultConfig,
78
'node:ts': nodeTsConfig,
9+
'react:ts': reactTsConfig,
810
});

src/categories/js/lint-staged/lint-staged.utils.ts

+10-13
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,9 @@ import { CLI_NAME as ESLINT_CLI_NAME } from '../eslint/eslint.const';
88
import { isJestInstalled } from '../jest/jest.utils';
99
import { isEslintInstalled } from '../eslint/eslint.utils';
1010
import { isStylelintInstalled } from '../stylelint/stylelint.utils';
11-
import { getPackageJson } from 'src/utils/npm';
1211
import { STYLELINT_CLI_NAME } from '../stylelint/stylelint.const';
1312

14-
type ScriptFileExtension = '*.js' | '*.ts';
13+
type ScriptFileExtension = '*.js' | '*.ts' | '*.css' | '*.{ts,tsx}';
1514

1615
interface OptionMutation {
1716
check: (config: LintStagedConfig, key: string, value: string) => boolean;
@@ -43,13 +42,13 @@ const undefinedOptionMutation: OptionMutation = {
4342
const optionMutations: OptionMutation[] = [arrayOptionMutation, stringOptionMutation, undefinedOptionMutation];
4443

4544
export const addOptionToLintStagedConfig = (config: LintStagedConfig, key: string, value: string) => {
46-
const finded = optionMutations.find(({ check }) => check(config, key, value));
45+
const found = optionMutations.find(({ check }) => check(config, key, value));
4746

48-
if (!finded) {
47+
if (!found) {
4948
throw new Error('option mutator is not found!');
5049
}
5150

52-
finded.mutate(config, key, value);
51+
found.mutate(config, key, value);
5352
};
5453

5554
export const huskyIntegration = async () => {
@@ -76,12 +75,10 @@ export const prettierMutation = async (config: LintStagedConfig) => {
7675
}
7776
};
7877

79-
export const stylelintMutation = async (config: LintStagedConfig) => {
80-
if (await isStylelintInstalled()) {
81-
const packageJson = await getPackageJson();
82-
const react = packageJson?.dependencies?.['react'];
83-
const extensions = react ? '*.{css,js,jsx,ts,tsx}' : '*.css';
84-
85-
addOptionToLintStagedConfig(config, extensions, `${STYLELINT_CLI_NAME} --fix`);
86-
}
78+
export const stylelintMutation = (fileExtension: ScriptFileExtension) => {
79+
return async (config: LintStagedConfig) => {
80+
if (await isStylelintInstalled()) {
81+
addOptionToLintStagedConfig(config, fileExtension, `${STYLELINT_CLI_NAME} --fix`);
82+
}
83+
};
8784
};

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

+2-2
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,8 @@ export const reactTsConfig: Config = {
4343
'@stylelint/postcss-css-in-js',
4444
],
4545
scripts: [
46-
{ name: 'csslint', script: 'stylelint "src/**/*.{css,js,jsx,ts,tsx}"' },
47-
{ name: 'csslint:fix', script: 'stylelint "src/**/*.{css,js,jsx,ts,tsx}" --fix' },
46+
{ name: 'csslint', script: 'stylelint "src/**/*.{css,ts,tsx}"' },
47+
{ name: 'csslint:fix', script: 'stylelint "src/**/*.{css,ts,tsx}" --fix' },
4848
],
4949
mutations: [prettierMutation],
5050
};

0 commit comments

Comments
 (0)