Path: blob/main/src/rules/no-self-import.js
829 views
/**1* @fileOverview Forbids a module from importing itself2* @author Gio d'Amelio3*/45import resolve from 'eslint-module-utils/resolve';6import moduleVisitor from 'eslint-module-utils/moduleVisitor';7import docsUrl from '../docsUrl';89function isImportingSelf(context, node, requireName) {10const filePath = context.getPhysicalFilename ? context.getPhysicalFilename() : context.getFilename();1112// If the input is from stdin, this test can't fail13if (filePath !== '<text>' && filePath === resolve(requireName, context)) {14context.report({15node,16message: 'Module imports itself.',17});18}19}2021module.exports = {22meta: {23type: 'problem',24docs: {25description: 'Forbid a module from importing itself',26recommended: true,27url: docsUrl('no-self-import'),28},2930schema: [],31},32create(context) {33return moduleVisitor((source, node) => {34isImportingSelf(context, node, source.value);35}, { commonjs: true });36},37};383940