UNPKG

eslint-plugin-gamut

Version:

Shared eslint plugin for Gamut applications

69 lines 2.81 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const createRule_1 = require("./createRule"); exports.default = (0, createRule_1.createRule)({ create(context) { return { 'ImportDeclaration[source.value=/(^@)codecademy(\\u002F)gamut/]': function (node) { const filename = context.getFilename(); const importPath = node.source.value; const fileDirectory = filename.split('/packages/')[1].split('/')[0]; const importPackage = importPath .split('@codecademy/')[1] .split('/')[0]; if (fileDirectory === importPackage) { context.report({ messageId: 'useRelativeImport', node, }); return; } if (importPath.includes('/src')) { const indexOfSrc = node.source.range[0] + importPath.search('/src'); context.report({ ...(importPath.endsWith('/src') && { fix: (fixer) => { return fixer.removeRange([indexOfSrc + 1, node.range[1] - 2]); }, }), messageId: 'removeSrc', node, }); return; } if (importPath.includes('/dist')) { const indexOfDist = node.source.range[0] + importPath.search('/dist'); context.report({ ...(importPath.endsWith('/dist') && { fix: (fixer) => { return fixer.removeRange([ indexOfDist + 1, node.range[1] - 2, ]); }, }), messageId: 'removeDist', node, }); } }, }; }, defaultOptions: [], meta: { docs: { description: 'Ensure Gamut import statements have proper module paths.', recommended: 'error', }, fixable: 'code', messages: { removeDist: 'There is no need to append /dist to the end of this module path.', removeSrc: 'There is no need to append /src to the end of this module path.', useRelativeImport: 'Use a relative path for this import statement.', }, type: 'suggestion', schema: [], }, name: 'gamut-import-paths', }); //# sourceMappingURL=gamut-import-paths.js.map