eslint-plugin-tis-imports
Version:
Eslint plugin for precise control of architectural restrictions. FSD, public api, hierarchy of entities in the project.
36 lines (35 loc) • 1.28 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getAllowedFolderInfo = exports.createAllowedFoldersMap = void 0;
const createAllowedFoldersMap = (imports) => {
const allowedFoldersMap = new Map();
imports.forEach((importItem) => {
importItem.allowedFolders.forEach((folder) => {
const oldFolder = allowedFoldersMap.get(folder);
if (oldFolder) {
oldFolder.add(importItem.checkingImport);
}
else {
allowedFoldersMap.set(folder, new Set([importItem.checkingImport]));
}
});
});
return allowedFoldersMap;
};
exports.createAllowedFoldersMap = createAllowedFoldersMap;
const getAllowedFolderInfo = (args) => {
const { filename, allowedFoldersMap } = args;
const entries = Array.from(allowedFoldersMap.entries());
let allowedImports = [];
for (let i = 0; i < entries.length; i++) {
const [key, value] = entries[i];
const include = filename.includes(key);
if (include) {
allowedImports = [...allowedImports, ...Array.from(value)];
}
}
return {
allowedImportsSet: new Set(allowedImports),
};
};
exports.getAllowedFolderInfo = getAllowedFolderInfo;