@discourse/lint-configs 2.29.0 → 2.31.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,42 @@
1
+ export default {
2
+ meta: {
3
+ type: "suggestion",
4
+ docs: {
5
+ description: "Use the correct import paths",
6
+ },
7
+ fixable: "code",
8
+ schema: [], // no options
9
+ },
10
+
11
+ create(context) {
12
+ return {
13
+ ImportDeclaration(node) {
14
+ if (node.source.value === "discourse/helpers/get-url") {
15
+ context.report({
16
+ node,
17
+ message:
18
+ "Use 'discourse/lib/get-url' instead of 'discourse/helpers/get-url'",
19
+ fix(fixer) {
20
+ return fixer.replaceText(node.source, `"discourse/lib/get-url"`);
21
+ },
22
+ });
23
+ } else if (
24
+ node.source.value === "discourse/helpers/html-safe" &&
25
+ node.specifiers[0]?.local.name === "htmlSafe"
26
+ ) {
27
+ context.report({
28
+ node,
29
+ message:
30
+ "Use '@ember/template' instead of 'discourse/helpers/html-safe'",
31
+ fix(fixer) {
32
+ return fixer.replaceText(
33
+ node,
34
+ `import { htmlSafe } from "@ember/template";`
35
+ );
36
+ },
37
+ });
38
+ }
39
+ },
40
+ };
41
+ },
42
+ };
@@ -0,0 +1,24 @@
1
+ export default {
2
+ meta: {
3
+ type: "suggestion",
4
+ docs: {
5
+ description: "Avoid the `onclick` attribute",
6
+ },
7
+ fixable: "code",
8
+ schema: [], // no options
9
+ },
10
+
11
+ create(context) {
12
+ return {
13
+ GlimmerAttrNode(node) {
14
+ if (node.name === "onclick") {
15
+ context.report({
16
+ node,
17
+ message:
18
+ 'Do not use `onclick` attribute. Use `{{on "click" ...}}` modifier instead.',
19
+ });
20
+ }
21
+ },
22
+ };
23
+ },
24
+ };
package/eslint.mjs CHANGED
@@ -13,6 +13,7 @@ import SimpleImportSort from "eslint-plugin-simple-import-sort";
13
13
  import SortClassMembers from "eslint-plugin-sort-class-members";
14
14
  import globals from "globals";
15
15
  import capitalComponents from "./eslint-rules/capital-components.mjs";
16
+ import deprecatedImports from "./eslint-rules/deprecated-imports.mjs";
16
17
  import deprecatedLookups from "./eslint-rules/deprecated-lookups.mjs";
17
18
  import deprecatedPluginApis from "./eslint-rules/deprecated-plugin-apis.mjs";
18
19
  import discourseCommonImports from "./eslint-rules/discourse-common-imports.mjs";
@@ -22,6 +23,7 @@ import lineAfterImports from "./eslint-rules/line-after-imports.mjs";
22
23
  import lineBeforeDefaultExport from "./eslint-rules/line-before-default-export.mjs";
23
24
  import linesBetweenClassMembers from "./eslint-rules/lines-between-class-members.mjs";
24
25
  import noCurlyComponents from "./eslint-rules/no-curly-components.mjs";
26
+ import noOnclick from "./eslint-rules/no-onclick.mjs";
25
27
  import noSimpleQuerySelector from "./eslint-rules/no-simple-query-selector.mjs";
26
28
  import pluginApiNoVersion from "./eslint-rules/plugin-api-no-version.mjs";
27
29
  import serviceInjectImport from "./eslint-rules/service-inject-import.mjs";
@@ -124,12 +126,14 @@ export default [
124
126
  "no-simple-query-selector": noSimpleQuerySelector,
125
127
  "deprecated-lookups": deprecatedLookups,
126
128
  "discourse-common-imports": discourseCommonImports,
129
+ "deprecated-imports": deprecatedImports,
127
130
  "lines-between-class-members": linesBetweenClassMembers,
128
131
  "deprecated-plugin-apis": deprecatedPluginApis,
129
132
  "line-after-imports": lineAfterImports,
130
133
  "line-before-default-export": lineBeforeDefaultExport,
131
134
  "no-curly-components": noCurlyComponents,
132
135
  "capital-components": capitalComponents,
136
+ "no-onclick": noOnclick,
133
137
  },
134
138
  },
135
139
  },
@@ -297,12 +301,14 @@ export default [
297
301
  "discourse/no-simple-query-selector": ["error"],
298
302
  "discourse/deprecated-lookups": ["error"],
299
303
  "discourse/discourse-common-imports": ["error"],
304
+ "discourse/deprecated-imports": ["error"],
300
305
  "discourse/lines-between-class-members": ["error"],
301
306
  "discourse/deprecated-plugin-apis": ["error"],
302
307
  "discourse/line-after-imports": ["error"],
303
308
  "discourse/line-before-default-export": ["error"],
304
309
  "discourse/no-curly-components": ["error"],
305
310
  "discourse/capital-components": ["error"],
311
+ "discourse/no-onclick": ["error"],
306
312
  },
307
313
  },
308
314
  {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@discourse/lint-configs",
3
- "version": "2.29.0",
3
+ "version": "2.31.0",
4
4
  "description": "Shareable lint configs for Discourse core, plugins, and themes",
5
5
  "author": "Discourse",
6
6
  "license": "MIT",