eslint-plugin-module-resolver
Advanced tools
Comparing version 0.17.0 to 1.0.0
@@ -27,2 +27,4 @@ "use strict"; | ||
var createFixer = require('../helpers/create-fixer'); | ||
var values = Object.values || function (obj) { | ||
@@ -45,4 +47,3 @@ return Object.keys(obj).map(function (e) { | ||
}, | ||
fixable: null, | ||
// or "code" or "whitespace" | ||
fixable: 'code', | ||
schema: [{ | ||
@@ -125,3 +126,3 @@ type: 'object', | ||
var hasError = function hasError(val) { | ||
if (!val) return; // template literals will have undefined val | ||
if (!val) return false; // template literals will have undefined val | ||
@@ -137,6 +138,9 @@ var ignoreDepth = options.ignoreDepth, | ||
allowDepthMoreOrLessThanEquality: allowDepthMoreOrLessThanEquality | ||
})) return; // Error if projectRoot option specified but cannot be resolved. | ||
})) return false; // Error if projectRoot option specified but cannot be resolved. | ||
if (projectRoot && !projectRootAbsolutePath) { | ||
return true; | ||
return { | ||
suggestFix: false, | ||
message: 'Invalid project root specified' | ||
}; | ||
} | ||
@@ -157,12 +161,36 @@ | ||
}); | ||
return isAliased && pathExists && val.match(/\.\.\//); // matches, exists, and starts with ../ | ||
var error = isAliased && pathExists && val.match(/\.\.\//); // matches, exists, and starts with ../, | ||
return error && { | ||
suggestFix: true, | ||
message: 'Do not use relative path for aliased modules' | ||
}; | ||
}; | ||
var reportError = function reportError(_ref) { | ||
var node = _ref.node, | ||
source = _ref.source, | ||
error = _ref.error; | ||
context.report({ | ||
node: node, | ||
message: error.message, | ||
loc: source.loc, | ||
fix: error.suggestFix && createFixer({ | ||
alias: alias, | ||
filePath: filePath, | ||
cwd: cwd, | ||
node: node | ||
}) | ||
}); | ||
}; | ||
return { | ||
ImportDeclaration: function ImportDeclaration(node) { | ||
if (hasError(node.source.value)) { | ||
context.report({ | ||
var error = hasError(node.source.value); | ||
if (error) { | ||
reportError({ | ||
node: node, | ||
message: 'Do not use relative path for aliased modules', | ||
loc: node.source.loc | ||
source: node.source, | ||
error: error | ||
}); | ||
@@ -175,8 +203,23 @@ } | ||
if (val === 'Import' || val === 'require') { | ||
hasError(node.arguments[0].value) && context.report({ | ||
var error = hasError(node.arguments[0].value); | ||
error && reportError({ | ||
node: node, | ||
message: 'Do not use relative path for aliased modules', | ||
loc: node.arguments[0].loc | ||
source: node.arguments[0], | ||
error: error | ||
}); | ||
} | ||
}, | ||
ImportExpression: function ImportExpression(node) { | ||
// dynamic import was erroneously using visitorKey for | ||
// call expressions https://github.com/babel/babel/pull/10828 | ||
// adding ImportExpression for new versions of @babel/eslint-parser | ||
var error = hasError(node.source.value); | ||
if (error) { | ||
reportError({ | ||
node: node, | ||
source: node.source, | ||
error: error | ||
}); | ||
} | ||
} | ||
@@ -183,0 +226,0 @@ }; |
{ | ||
"name": "eslint-plugin-module-resolver", | ||
"version": "0.17.0", | ||
"version": "1.0.0", | ||
"description": "Warn when using relative paths to modules aliased", | ||
@@ -20,2 +20,3 @@ "repository": "HeroProtagonist/eslint-plugin-module-resolver", | ||
"test:coverage": "jest --coverage", | ||
"test:inspect": "node --inspect node_modules/.bin/jest --runInBand", | ||
"prebuild": "yarn clean", | ||
@@ -46,7 +47,8 @@ "build": "babel lib --out-dir dist", | ||
"@babel/core": "^7.7.7", | ||
"@babel/eslint-parser": "^7.11.0", | ||
"@babel/eslint-plugin": "^7.11.0", | ||
"@babel/preset-env": "^7.7.7", | ||
"babel-core": "^6.26.3", | ||
"babel-eslint": "^10.0.3", | ||
"codecov": "^3.6.4", | ||
"eslint": "^6.8.0", | ||
"eslint": "^7.6.0", | ||
"eslint-config-prettier": "^6.9.0", | ||
@@ -59,5 +61,5 @@ "eslint-config-standard": "^14.1.0", | ||
"husky": "^4.2.1", | ||
"jest": "^25.1.0", | ||
"jest": "^26.2.2", | ||
"lint-staged": "^10.0.7", | ||
"prettier": "^1.19.1", | ||
"prettier": "^2.0.5", | ||
"regenerator-runtime": "^0.13.3", | ||
@@ -64,0 +66,0 @@ "rimraf": "^3.0.0" |
@@ -5,3 +5,3 @@ # eslint-plugin-module-resolver | ||
[![npm downloads](https://img.shields.io/npm/dm/eslint-plugin-module-resolver.svg)](https://www.npmjs.com/package/eslint-plugin-module-resolver) | ||
[![Build Status](https://travis-ci.com/HeroProtagonist/eslint-plugin-module-resolver.svg?branch=master)](https://travis-ci.com/HeroProtagonist/eslint-plugin-module-resolver) | ||
[![CircleCI](https://circleci.com/gh/HeroProtagonist/eslint-plugin-module-resolver.svg?style=shield)](https://app.circleci.com/pipelines/github/HeroProtagonist/eslint-plugin-module-resolver) | ||
[![codecov](https://codecov.io/gh/HeroProtagonist/eslint-plugin-module-resolver/branch/master/graph/badge.svg)](https://codecov.io/gh/HeroProtagonist/eslint-plugin-module-resolver) | ||
@@ -8,0 +8,0 @@ |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
No v1
QualityPackage is not semver >=1. This means it is not stable and does not support ^ ranges.
Found 1 instance in 1 package
21103
9
310
1
20