Skip to content

Commit e7970af

Browse files
committed
chore(frontend): configure linting for typescript
1 parent 499f2be commit e7970af

File tree

2 files changed

+102
-40
lines changed

2 files changed

+102
-40
lines changed

frontend/.eslintrc.js

+101-11
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,107 @@
11
"use-strict";
22

33
module.exports = {
4-
extends: ["@adfinis/eslint-config/ember-app"],
4+
root: true,
5+
parser: "@typescript-eslint/parser",
6+
parserOptions: {
7+
ecmaVersion: "latest",
8+
},
9+
plugins: ["ember", "@typescript-eslint", "import"],
10+
extends: [
11+
"eslint:recommended",
12+
"plugin:ember/recommended",
13+
"plugin:prettier/recommended",
14+
],
15+
env: {
16+
browser: true,
17+
},
518
rules: {
6-
"ember/no-actions-hash": "warn",
7-
"ember/no-component-lifecycle-hooks": "warn",
8-
"ember/no-mixins": "warn",
9-
"ember/no-new-mixins": "warn",
10-
"ember/no-classic-classes": "warn",
11-
"ember/no-classic-components": "warn",
12-
"ember/no-get": "warn",
13-
"ember/no-observers": "warn",
14-
"qunit/no-assert-equal": "warn",
15-
"ember/require-tagless-components": "warn",
19+
// possible errors
20+
"no-await-in-loop": "error",
21+
22+
// best practices
23+
"array-callback-return": "error",
24+
"dot-notation": "error",
25+
eqeqeq: "error",
26+
"no-alert": "error",
27+
"no-else-return": "error",
28+
"no-eval": "error",
29+
"no-extend-native": "error",
30+
"no-extra-bind": "error",
31+
"no-floating-decimal": "error",
32+
"one-var": ["error", "never"],
33+
curly: ["error", "multi-line"],
34+
35+
// ES6
36+
"no-var": "error",
37+
"object-shorthand": "error",
38+
"prefer-const": "error",
39+
"prefer-destructuring": [
40+
"error",
41+
{ AssignmentExpression: { array: false, object: false } },
42+
],
43+
"prefer-rest-params": "error",
44+
"prefer-spread": "error",
45+
"prefer-template": "error",
46+
47+
// import
48+
"import/no-duplicates": "error",
49+
"import/no-unresolved": "off",
50+
"import/order": [
51+
"error",
52+
{
53+
"newlines-between": "always",
54+
alphabetize: { order: "asc", caseInsensitive: true },
55+
},
56+
],
57+
58+
// tooling
59+
"no-console": ["error", { allow: ["warn", "error"] }],
60+
"no-debugger": "error",
1661
},
62+
overrides: [
63+
// js files
64+
{
65+
files: ["**/*.js"],
66+
extends: [
67+
"plugin:@typescript-eslint/eslint-recommended",
68+
"plugin:@typescript-eslint/recommended",
69+
],
70+
rules: {},
71+
},
72+
// ts files
73+
{
74+
files: ["**/*.ts"],
75+
extends: [
76+
"plugin:@typescript-eslint/eslint-recommended",
77+
"plugin:@typescript-eslint/recommended",
78+
],
79+
rules: {},
80+
},
81+
// node files
82+
{
83+
files: [
84+
"./.eslintrc.js",
85+
"./.prettierrc.js",
86+
"./.stylelintrc.js",
87+
"./.template-lintrc.js",
88+
"./ember-cli-build.js",
89+
"./testem.js",
90+
"./blueprints/*/index.js",
91+
"./config/**/*.js",
92+
"./lib/*/index.js",
93+
"./server/**/*.js",
94+
],
95+
env: {
96+
browser: false,
97+
node: true,
98+
},
99+
extends: ["plugin:n/recommended"],
100+
},
101+
{
102+
// test files
103+
files: ["tests/**/*-test.{js,ts}"],
104+
extends: ["plugin:qunit/recommended"],
105+
},
106+
],
17107
};

frontend/pnpm-lock.yaml

+1-29
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)