eslint-plugin-tis-imports
Version:
Eslint plugin for precise control of architectural restrictions. FSD, public api, hierarchy of entities in the project.
30 lines (29 loc) • 1.06 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getSubfolderAfterLayer = exports.getLayer = exports.createLayersOrderMap = void 0;
const createLayersOrderMap = (layers) => {
const layersOrderMap = new Map();
layers.forEach((layer, index) => {
layersOrderMap.set(layer, index);
});
return layersOrderMap;
};
exports.createLayersOrderMap = createLayersOrderMap;
const getLayer = (args) => {
const { filePath, layersSet } = args;
if (!filePath)
return null;
const normalized = filePath.replace(/\\/g, '/');
const layer = normalized.split('/').find((item) => layersSet.has(item));
return layer ?? null;
};
exports.getLayer = getLayer;
const getSubfolderAfterLayer = (absolutePath, layer) => {
const normalized = absolutePath.replace(/\\/g, '/');
const parts = normalized.split(`${layer}/`);
if (parts.length < 2)
return null;
const rest = parts[1].split('/');
return rest[0] ?? null;
};
exports.getSubfolderAfterLayer = getSubfolderAfterLayer;