-
Notifications
You must be signed in to change notification settings - Fork 3
/
ember-addon.mjs
127 lines (122 loc) · 2.49 KB
/
ember-addon.mjs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
/**
* Debugging:
* https://eslint.org/docs/latest/use/configure/debug
* ----------------------------------------------------
*
* Print a file's calculated configuration
*
* npx eslint --print-config path/to/file.js
*
* Inspecting the config
*
* npx eslint --inspect-config
*
*/
import babelParser from "@babel/eslint-parser";
import js from "@eslint/js";
import ember from "eslint-plugin-ember/recommended";
import n from "eslint-plugin-n";
import prettier from "eslint-plugin-prettier/recommended";
import qunit from "eslint-plugin-qunit";
import globals from "globals";
import adfinisConfig from "./index.mjs";
const esmParserOptions = {
ecmaFeatures: { modules: true },
ecmaVersion: "latest",
requireConfigFile: false,
babelOptions: {
plugins: [
["@babel/plugin-proposal-decorators", { decoratorsBeforeExport: true }],
],
},
};
export default [
js.configs.recommended,
prettier,
ember.configs.base,
ember.configs.gjs,
...adfinisConfig,
/**
* Ignores must be in their own object
* https://eslint.org/docs/latest/use/configure/ignore
*/
{
ignores: ["dist/", "node_modules/", "coverage/", "!**/.*"],
},
/**
* https://eslint.org/docs/latest/use/configure/configuration-files#configuring-linter-options
*/
{
linterOptions: {
reportUnusedDisableDirectives: "error",
},
},
{
files: ["**/*.js"],
languageOptions: {
parser: babelParser,
},
},
{
files: ["**/*.{js,gjs}"],
languageOptions: {
parserOptions: esmParserOptions,
globals: {
...globals.browser,
},
},
},
{
files: ["tests/**/*-test.{js,gjs}"],
plugins: {
qunit,
},
},
/**
* CJS node files
*/
{
files: [
"**/*.cjs",
"config/**/*.js",
"blueprints/**/*.js",
"testem.js",
"testem*.js",
".prettierrc.js",
".stylelintrc.js",
".template-lintrc.js",
"ember-cli-build.js",
// Missing in ember-addon-output
"**/config/**/*.js",
"blueprints/**/*.js",
"index.js",
],
plugins: {
n,
},
languageOptions: {
sourceType: "script",
ecmaVersion: "latest",
globals: {
...globals.node,
},
},
},
/**
* ESM node files
*/
{
files: ["**/*.mjs"],
plugins: {
n,
},
languageOptions: {
sourceType: "module",
ecmaVersion: "latest",
parserOptions: esmParserOptions,
globals: {
...globals.node,
},
},
},
];