@lvce-editor/eslint-config 1.18.0 → 1.20.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.
Files changed (4) hide show
  1. package/index.d.ts +2 -0
  2. package/index.js +12 -2
  3. package/package.json +2 -1
  4. package/rules.js +159 -0
package/index.d.ts CHANGED
@@ -1,8 +1,10 @@
1
1
  declare const config: readonly any[] & {}
2
2
  declare const recommendedNode: readonly any[] & {}
3
3
  declare const recommendedFolderStructure: readonly any[] & {}
4
+ declare const recommendedTsconfig: readonly any[] & {}
4
5
 
5
6
  export { recommendedNode }
6
7
  export { recommendedFolderStructure }
8
+ export { recommendedTsconfig }
7
9
 
8
10
  export default config
package/index.js CHANGED
@@ -9,6 +9,10 @@ import process from 'node:process'
9
9
  import tseslint from 'typescript-eslint'
10
10
  import packageJson from 'eslint-plugin-package-json/configs/recommended'
11
11
  import eslintPluginUnicorn from 'eslint-plugin-unicorn'
12
+ // @ts-ignore
13
+
14
+ const uri = './rules.js'
15
+ const tsconfigPlugin = (await import(uri)).default
12
16
 
13
17
  const root = process.cwd()
14
18
 
@@ -47,7 +51,6 @@ const fileCompositionConfig = createFileComposition({
47
51
  ],
48
52
  })
49
53
 
50
- tseslint.configs.recommendedTypeChecked
51
54
  /**
52
55
  * @type {any}
53
56
  */
@@ -124,8 +127,12 @@ const defaultConfig = tseslint.config(
124
127
  files: ['**/package.json'],
125
128
  extends: [packageJson],
126
129
  },
127
- eslintPluginUnicorn.configs['flat/recommended'],
128
130
  {
131
+ files: ['**/*.ts'],
132
+ ...eslintPluginUnicorn.configs['flat/recommended'],
133
+ },
134
+ {
135
+ files: ['**/*.ts'],
129
136
  rules: {
130
137
  'unicorn/filename-case': 'off',
131
138
  'unicorn/prefer-event-target': 'off',
@@ -171,6 +178,7 @@ const defaultConfig = tseslint.config(
171
178
  export const recommendedNode = [
172
179
  nodePlugin.configs['flat/recommended'],
173
180
  {
181
+ files: ['**/*.ts'],
174
182
  rules: {
175
183
  'n/prefer-node-protocol': 'error',
176
184
  'n/no-unpublished-import': 'off', // TODO enable this for some node packages, which don't bundle dependencies
@@ -200,4 +208,6 @@ export const recommendedFolderStructucture = [
200
208
  },
201
209
  ]
202
210
 
211
+ export const recommendedTsconfig = [...tsconfigPlugin]
212
+
203
213
  export default defaultConfig
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lvce-editor/eslint-config",
3
- "version": "1.18.0",
3
+ "version": "1.20.0",
4
4
  "main": "index.js",
5
5
  "type": "module",
6
6
  "types": "index.d.ts",
@@ -21,6 +21,7 @@
21
21
  "dependencies": {
22
22
  "@eslint/css": "^0.2.0",
23
23
  "@eslint/js": "^9.19.0",
24
+ "@eslint/json": "^0.10.0",
24
25
  "eslint-plugin-jest": "^28.11.0",
25
26
  "eslint-plugin-n": "^17.15.1",
26
27
  "eslint-plugin-package-json": "^0.21.1",
package/rules.js ADDED
@@ -0,0 +1,159 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __export = (target, all) => {
3
+ for (var name in all)
4
+ __defProp(target, name, { get: all[name], enumerable: true });
5
+ };
6
+
7
+ // src/index.ts
8
+ import json from "@eslint/json";
9
+
10
+ // src/tsconfig-allow-importing-ts-extensions.ts
11
+ var tsconfig_allow_importing_ts_extensions_exports = {};
12
+ __export(tsconfig_allow_importing_ts_extensions_exports, {
13
+ create: () => create2,
14
+ meta: () => meta
15
+ });
16
+
17
+ // src/tsconfig-compiler-option.ts
18
+ var create = (context, name) => {
19
+ return {
20
+ Member(node) {
21
+ if (node.name.type === "String" && node.name.value === "compilerOptions" && node.value.type === "Object") {
22
+ const members = node.value.members;
23
+ for (const member of members) {
24
+ if (member.name.type === "String" && member.name.value === name) {
25
+ if (member.value.value === true) {
26
+ return;
27
+ }
28
+ if (member.value.value === false) {
29
+ context.report({
30
+ loc: member.name.loc,
31
+ messageId: name
32
+ });
33
+ }
34
+ return;
35
+ }
36
+ }
37
+ context.report({
38
+ loc: node.name.loc,
39
+ messageId: name
40
+ });
41
+ }
42
+ }
43
+ };
44
+ };
45
+
46
+ // src/tsconfig-allow-importing-ts-extensions.ts
47
+ var meta = {
48
+ type: "problem",
49
+ docs: {
50
+ description: "Ensure that the allowImportingTsExtensions is enabled"
51
+ },
52
+ messages: {
53
+ allowImportingTsExtensions: "allowImportingTsExtensions rule should be enabled"
54
+ }
55
+ };
56
+ var create2 = (context) => {
57
+ return create(context, "allowImportingTsExtensions");
58
+ };
59
+
60
+ // src/tsconfig-force-consistent-casing-in-file-names.ts
61
+ var tsconfig_force_consistent_casing_in_file_names_exports = {};
62
+ __export(tsconfig_force_consistent_casing_in_file_names_exports, {
63
+ create: () => create3,
64
+ meta: () => meta2
65
+ });
66
+ var meta2 = {
67
+ type: "problem",
68
+ docs: {
69
+ description: "Ensure that the forceConsistentCasingInFileNames rule is enabled"
70
+ },
71
+ messages: {
72
+ forceConsistentCasingInFileNames: "forceConsistentCasingInFileNames rule should be enabled"
73
+ }
74
+ };
75
+ var create3 = (context) => {
76
+ return create(context, "forceConsistentCasingInFileNames");
77
+ };
78
+
79
+ // src/tsconfig-no-unchecked-side-effect-imports.ts
80
+ var tsconfig_no_unchecked_side_effect_imports_exports = {};
81
+ __export(tsconfig_no_unchecked_side_effect_imports_exports, {
82
+ create: () => create4,
83
+ meta: () => meta3
84
+ });
85
+ var meta3 = {
86
+ type: "problem",
87
+ docs: {
88
+ description: "Disallow not allowed keys in JSON objects"
89
+ },
90
+ messages: {
91
+ noUncheckedSideEffectImports: "noUncheckedSideEffectImports rule should be enabled"
92
+ }
93
+ };
94
+ var create4 = (context) => {
95
+ return create(context, "noUncheckedSideEffectImports");
96
+ };
97
+
98
+ // src/tsconfig-strict.ts
99
+ var tsconfig_strict_exports = {};
100
+ __export(tsconfig_strict_exports, {
101
+ create: () => create5,
102
+ meta: () => meta4
103
+ });
104
+ var meta4 = {
105
+ type: "problem",
106
+ docs: {
107
+ description: "Ensure that the strict mode is enabled"
108
+ },
109
+ messages: {
110
+ strict: "strict mode should be enabled"
111
+ }
112
+ };
113
+ var create5 = (context) => {
114
+ return create(context, "strict");
115
+ };
116
+
117
+ // src/index.ts
118
+ var plugin = {
119
+ meta: {
120
+ name: "tsconfig",
121
+ version: "0.0.1"
122
+ },
123
+ rules: {
124
+ "no-unchecked-side-effect-imports": tsconfig_no_unchecked_side_effect_imports_exports,
125
+ "force-consistent-casing-in-file-names": tsconfig_force_consistent_casing_in_file_names_exports,
126
+ strict: tsconfig_strict_exports,
127
+ "allow-importing-ts-extensions": tsconfig_allow_importing_ts_extensions_exports
128
+ },
129
+ configs: {}
130
+ };
131
+ var recommended = [
132
+ {
133
+ plugins: {
134
+ json
135
+ }
136
+ },
137
+ {
138
+ files: ["**/*.json"],
139
+ language: "json/json",
140
+ rules: {}
141
+ },
142
+ {
143
+ plugins: {
144
+ tsconfig: plugin
145
+ }
146
+ },
147
+ {
148
+ rules: {
149
+ "tsconfig/no-unchecked-side-effect-imports": "error",
150
+ "tsconfig/force-consistent-casing-in-file-names": "error",
151
+ "tsconfig/strict": "error",
152
+ "tsconfig/allow-importing-ts-extensions": "error"
153
+ }
154
+ }
155
+ ];
156
+ var index_default = recommended;
157
+ export {
158
+ index_default as default
159
+ };