eslint-plugin-stratified-design 0.10.0 → 0.11.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.
@@ -167,6 +167,8 @@ module.exports = {
167
167
  const isFileIndex = isFileIndexOfModule(options, fileDir, filePath);
168
168
 
169
169
  const report = (node) => {
170
+ if (node.importKind === "type") return;
171
+
170
172
  if (isExcludedFile) return;
171
173
 
172
174
  const { modulePath, isModuleExcluded } = createModulePath(
@@ -124,6 +124,8 @@ module.exports = {
124
124
  * @returns
125
125
  */
126
126
  const report = (node) => {
127
+ if (node.importKind === "type") return;
128
+
127
129
  if (!isStructureValid) {
128
130
  reportError(node, "invalid-json");
129
131
  return;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "eslint-plugin-stratified-design",
3
- "version": "0.10.0",
3
+ "version": "0.11.0",
4
4
  "description": "ESlint rules for stratified design",
5
5
  "keywords": [
6
6
  "eslint",
@@ -27,6 +27,7 @@
27
27
  "requireindex": "^1.2.0"
28
28
  },
29
29
  "devDependencies": {
30
+ "@typescript-eslint/parser": "^7.1.0",
30
31
  "eslint": "^8.19.0",
31
32
  "eslint-plugin-eslint-plugin": "^5.0.0",
32
33
  "eslint-plugin-node": "^11.1.0",
@@ -9,7 +9,8 @@
9
9
  //------------------------------------------------------------------------------
10
10
 
11
11
  const rule = require("../../../lib/rules/lower-level-imports"),
12
- RuleTester = require("eslint").RuleTester;
12
+ RuleTester = require("eslint").RuleTester,
13
+ path = require("path");
13
14
 
14
15
  //------------------------------------------------------------------------------
15
16
  // Tests
@@ -28,7 +29,10 @@ const structure = [
28
29
  ];
29
30
 
30
31
  const ruleTester = new RuleTester({
31
- parserOptions: { ecmaVersion: 2022, sourceType: "module" },
32
+ parser: path.resolve(
33
+ "./node_modules/@typescript-eslint/parser/dist/parser.js"
34
+ ),
35
+ parserOptions: { ecmaVersion: "latest", sourceType: "module" },
32
36
  });
33
37
 
34
38
  ruleTester.run("lower-level-imports", rule, {
@@ -232,6 +236,11 @@ ruleTester.run("lower-level-imports", rule, {
232
236
  filename: "./src/layer1/subLayer2.js",
233
237
  options: [{ structure, root: "./src", aliases: { "@/": "./src/" } }],
234
238
  },
239
+ {
240
+ code: "import type { SomeType } from '@/layer2/subLayer2'",
241
+ filename: "./src/layer1/subLayer2.js",
242
+ options: [{ structure, root: "./src", aliases: { "@/": "./src/" } }],
243
+ },
235
244
  ],
236
245
  invalid: [
237
246
  {
@@ -10,6 +10,7 @@
10
10
 
11
11
  const rule = require("../../../lib/rules/stratified-imports");
12
12
  const RuleTester = require("eslint").RuleTester;
13
+ const path = require("path");
13
14
 
14
15
  //------------------------------------------------------------------------------
15
16
  // Tests
@@ -57,7 +58,10 @@ const RuleTester = require("eslint").RuleTester;
57
58
  */
58
59
 
59
60
  const ruleTester = new RuleTester({
60
- parserOptions: { ecmaVersion: 2022, sourceType: "module" },
61
+ parser: path.resolve(
62
+ "./node_modules/@typescript-eslint/parser/dist/parser.js"
63
+ ),
64
+ parserOptions: { ecmaVersion: "latest", sourceType: "module" },
61
65
  });
62
66
 
63
67
  ruleTester.run("stratified-imports", rule, {
@@ -162,6 +166,11 @@ ruleTester.run("stratified-imports", rule, {
162
166
  filename: "./mocked/stratified-imports/layerA.js",
163
167
  options: [{ aliases: { "@/": "./mocked/stratified-imports/" } }],
164
168
  },
169
+ {
170
+ code: "import type { SomeType } from './layerA'",
171
+ filename: "./mocked/stratified-imports/layerB.js",
172
+ options: [],
173
+ },
165
174
  ],
166
175
  invalid: [
167
176
  {