@conarti/eslint-plugin-feature-sliced
Version:
Feature-sliced design methodology plugin
22 lines (21 loc) • 1.18 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.shouldBeFromPublicApi = void 0;
const feature_sliced_1 = require("../../../lib/feature-sliced");
const rule_1 = require("../../../lib/rule");
const is_segments_public_api_1 = require("./is-segments-public-api");
const is_slice_public_api_1 = require("./is-slice-public-api");
function shouldBeFromSlicePublicApi(pathsInfo) {
const isFromAnotherSlice = !pathsInfo.isSameSlice;
return isFromAnotherSlice && !(0, is_slice_public_api_1.isSlicePublicApi)(pathsInfo);
}
function shouldBeFromSegmentsPublicApi(pathsInfo, validateOptions) {
const needValidateSegments = validateOptions.level === "segments";
return needValidateSegments && !(0, is_segments_public_api_1.isSegmentsPublicApi)(pathsInfo);
}
function shouldBeFromPublicApi(node, context, optionsWithDefault) {
const pathsInfo = (0, feature_sliced_1.extractPathsInfo)(node, context);
const ruleOptions = (0, rule_1.extractRuleOptions)(optionsWithDefault);
return shouldBeFromSlicePublicApi(pathsInfo) || shouldBeFromSegmentsPublicApi(pathsInfo, ruleOptions);
}
exports.shouldBeFromPublicApi = shouldBeFromPublicApi;