@conarti/eslint-plugin-feature-sliced
Version:
Feature-sliced design methodology plugin
19 lines (18 loc) • 888 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.extractSegment = void 0;
const config_1 = require("../../config");
const layersUnion = config_1.layersWithSlices.join('|');
const segmentsUnion = config_1.segments.join('|');
const fsdPartsRegExp = new RegExp(`(?<=(?<layer>${layersUnion}))\\/(?<slice>([\\w-]*\\/)+?)(?<segment>(${segmentsUnion})(\\.\\w+)?)(\\/(?<segmentFiles>.*))?`);
function extractSegment(targetPath) {
const fsdParts = targetPath.match(fsdPartsRegExp);
if (fsdParts === null) {
return [null, null];
}
const { segment = null, segmentFiles = null, } = fsdParts.groups || {};
const fileExtensionRegExp = /\.[^/.]+$/;
const segmentWithoutFileExtension = segment?.replace(fileExtensionRegExp, '') || null;
return [segmentWithoutFileExtension, segmentFiles];
}
exports.extractSegment = extractSegment;