Co-authored-by: Eve832 <eve.meelan@grafana.com>
Co-authored-by: Francisco Montes de Oca <nevermind89x@gmail.com>
Co-authored-by: Ildar Iskhakov <ildar.iskhakov@grafana.com>
Co-authored-by: Innokentii Konstantinov <innokenty.konstantinov@grafana.com>
Co-authored-by: Julia <ferril.darkdiver@gmail.com>
Co-authored-by: maskin25 <kengurek@gmail.com>
Co-authored-by: Matias Bordese <mbordese@gmail.com>
Co-authored-by: Matvey Kukuy <motakuk@gmail.com>
Co-authored-by: Michael Derynck <michael.derynck@grafana.com>
Co-authored-by: Richard Hartmann <richih@richih.org>
Co-authored-by: Robby Milo <robbymilo@fastmail.com>
Co-authored-by: Timur Olzhabayev <timur.olzhabayev@grafana.com>
Co-authored-by: Vadim Stepanov <vadimkerr@gmail.com>
Co-authored-by: Yulia Shanyrova <yulia.shanyrova@grafana.com>
56 lines
1.4 KiB
JavaScript
56 lines
1.4 KiB
JavaScript
const path = require('path');
|
|
|
|
function isParentFolder(path) {
|
|
return path.startsWith('../');
|
|
}
|
|
|
|
function isSameFolder(path) {
|
|
return path.startsWith('./');
|
|
}
|
|
|
|
function getAbsolutePath(relativePath, context) {
|
|
return path.relative(`${context.getCwd()}/src`, path.join(path.dirname(context.getFilename()), relativePath));
|
|
}
|
|
|
|
const message = 'import statements should have an absolute path';
|
|
|
|
module.exports = {
|
|
meta: {
|
|
type: 'layout',
|
|
fixable: 'code',
|
|
},
|
|
create: function (context) {
|
|
const { allowSameFolder } = context.options[0] || {};
|
|
|
|
return {
|
|
ImportDeclaration: function (node) {
|
|
const path = node.source.value;
|
|
if (isParentFolder(path)) {
|
|
context.report({
|
|
node,
|
|
message: message,
|
|
fix: function (fixer) {
|
|
return fixer.replaceTextRange(
|
|
[node.source.range[0] + 1, node.source.range[1] - 1],
|
|
getAbsolutePath(path, context)
|
|
);
|
|
},
|
|
});
|
|
}
|
|
|
|
if (isSameFolder(path) && !allowSameFolder) {
|
|
context.report({
|
|
node,
|
|
message: message,
|
|
fix: function (fixer) {
|
|
return fixer.replaceTextRange(
|
|
[node.source.range[0] + 1, node.source.range[1] - 1],
|
|
getAbsolutePath(path, context)
|
|
);
|
|
},
|
|
});
|
|
}
|
|
},
|
|
};
|
|
},
|
|
};
|