Skip to content

Commit f19bb17

Browse files
committed
✨ add default TypeScript ESLint config if TypeScript is installed
1 parent c6e629b commit f19bb17

File tree

3 files changed

+889
-347
lines changed

3 files changed

+889
-347
lines changed

config/eslint/.eslintrc.js

Lines changed: 23 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,28 @@
1+
const { has } = require('@blakek/deep');
12
const { projectPackageJson } = require('../../src/utils');
23

3-
const isReactInstalled =
4-
projectPackageJson &&
5-
projectPackageJson.dependencies &&
6-
projectPackageJson.dependencies.react;
4+
function isDependentOn(dependencyName) {
5+
return (
6+
has(['dependencies', dependencyName], projectPackageJson) ||
7+
has(['devDependencies', dependencyName], projectPackageJson)
8+
);
9+
}
10+
11+
function getBaseConfig() {
12+
if (isDependentOn('typescript')) {
13+
return 'gsandf-typescript';
14+
}
15+
16+
if (isDependentOn('react')) {
17+
return 'gsandf-react';
18+
}
19+
20+
return 'gsandf';
21+
}
722

823
module.exports = {
9-
extends: [isReactInstalled ? 'gsandf-react' : 'gsandf']
24+
extends: [getBaseConfig()],
25+
parserOptions: {
26+
project: './tsconfig.json'
27+
}
1028
};

package.json

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,14 +24,16 @@
2424
},
2525
"version": "1.1.0",
2626
"dependencies": {
27+
"@blakek/deep": "^2.2.0",
2728
"babel-eslint": "^10.1.0",
2829
"common-tags": "^1.8.0",
29-
"eslint": "^7.17.0",
30-
"eslint-config-gsandf": "^2.0.0",
31-
"eslint-config-gsandf-react": "^2.0.1",
32-
"execa": "^5.0.0",
30+
"eslint": "^7.29.0",
31+
"eslint-config-gsandf": "^3.0.0",
32+
"eslint-config-gsandf-react": "^3.0.0",
33+
"eslint-config-gsandf-typescript": "^1.0.2",
34+
"execa": "^5.1.1",
3335
"listr": "^0.14.3",
34-
"prettier": "^2.2.1",
36+
"prettier": "^2.3.2",
3537
"read-pkg-up": "^7.0.1"
3638
}
3739
}

0 commit comments

Comments
 (0)