eslint-plugin-perfectionist
Version:
ESLint plugin for sorting various data such as objects, imports, types, enums, JSX props, etc.
75 lines (74 loc) • 1.93 kB
JavaScript
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' })
const matches = require('./matches.js')
let doesCustomGroupMatch = props => {
if ('anyOf' in props.customGroup) {
return props.customGroup.anyOf.some(subgroup =>
doesSingleCustomGroupMatch({
...props,
customGroup: subgroup,
}),
)
}
return doesSingleCustomGroupMatch({
...props,
customGroup: props.customGroup,
})
}
let doesSingleCustomGroupMatch = ({
elementValue,
customGroup,
elementName,
decorators,
selectors,
modifiers,
}) => {
if (
customGroup.selector &&
!(selectors == null ? void 0 : selectors.includes(customGroup.selector))
) {
return false
}
if (customGroup.modifiers) {
for (let modifier of customGroup.modifiers) {
if (!(modifiers == null ? void 0 : modifiers.includes(modifier))) {
return false
}
}
}
if ('elementNamePattern' in customGroup && customGroup.elementNamePattern) {
let matchesElementNamePattern = matches.matches(
elementName,
customGroup.elementNamePattern,
)
if (!matchesElementNamePattern) {
return false
}
}
if ('elementValuePattern' in customGroup && customGroup.elementValuePattern) {
let matchesElementValuePattern = matches.matches(
elementValue ?? '',
customGroup.elementValuePattern,
)
if (!matchesElementValuePattern) {
return false
}
}
if (
'decoratorNamePattern' in customGroup &&
customGroup.decoratorNamePattern
) {
let decoratorPattern = customGroup.decoratorNamePattern
let matchesDecoratorNamePattern =
decorators == null
? void 0
: decorators.some(decorator =>
matches.matches(decorator, decoratorPattern),
)
if (!matchesDecoratorNamePattern) {
return false
}
}
return true
}
exports.doesCustomGroupMatch = doesCustomGroupMatch