eslint-plugin-tis-imports
Version:
Eslint plugin for precise control of architectural restrictions. FSD, public api, hierarchy of entities in the project.
31 lines (30 loc) • 1.2 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.normalizeFilePathFromImport = exports.checkRelativePath = exports.checkAbsolutePath = void 0;
const path_1 = __importDefault(require("path"));
const checkAbsolutePath = (args) => {
const { alias, path } = args;
return path.startsWith(alias);
};
exports.checkAbsolutePath = checkAbsolutePath;
const checkRelativePath = (args) => {
const { path } = args;
return path.startsWith('.');
};
exports.checkRelativePath = checkRelativePath;
const normalizeFilePathFromImport = (args) => {
const { importPath, currentFilePath, alias } = args;
if (!importPath)
return null;
if ((0, exports.checkAbsolutePath)({ path: importPath, alias })) {
return importPath.slice(alias.length + 1);
}
if ((0, exports.checkRelativePath)({ path: importPath })) {
return path_1.default.resolve(path_1.default.dirname(currentFilePath), importPath);
}
return null;
};
exports.normalizeFilePathFromImport = normalizeFilePathFromImport;