UNPKG

eslint-plugin-readable-tailwind

Version:

auto-wraps tailwind classes after a certain print width or class count into multiple lines to improve readability.

40 lines 2.31 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getLiteralsByESNodeAndRegex = getLiteralsByESNodeAndRegex; const readable_tailwind_parsers_es_js_1 = require("../parsers/es.js"); function getLiteralsByESNodeAndRegex(ctx, node, regexCallee) { if (!(0, readable_tailwind_parsers_es_js_1.hasESNodeParentExtension)(node)) { return []; } const [containerRegexString, stringLiteralRegexString] = regexCallee; const sourceCode = ctx.sourceCode.getText(node); const containerRegex = new RegExp(containerRegexString, "gdm"); const stringLiteralRegex = new RegExp(stringLiteralRegexString, "gdm"); const containers = sourceCode.matchAll(containerRegex); const matchedLiterals = []; for (const container of containers) { if (!container.indices || container.indices.length < 2) { continue; } for (const [containerStartIndex] of container.indices.slice(1)) { const containerNode = ctx.sourceCode.getNodeByRangeIndex((node.range?.[0] ?? 0) + containerStartIndex); if (!containerNode) { continue; } const literalNodes = (0, readable_tailwind_parsers_es_js_1.getLiteralNodesByRegex)(ctx, containerNode, stringLiteralRegex); for (const literalNode of literalNodes) { if ((0, readable_tailwind_parsers_es_js_1.isESSimpleStringLiteral)(literalNode)) { const literal = (0, readable_tailwind_parsers_es_js_1.getStringLiteralByESStringLiteral)(ctx, literalNode); literal && matchedLiterals.push(literal); } if ((0, readable_tailwind_parsers_es_js_1.isESTemplateElement)(literalNode) && (0, readable_tailwind_parsers_es_js_1.hasESNodeParentExtension)(literalNode)) { const templateLiteralNode = (0, readable_tailwind_parsers_es_js_1.findParentESTemplateLiteralByESTemplateElement)(literalNode); const literals = templateLiteralNode && (0, readable_tailwind_parsers_es_js_1.getLiteralsByESTemplateLiteral)(ctx, templateLiteralNode); literals && matchedLiterals.push(...literals); } } } } return matchedLiterals; } //# sourceMappingURL=regex.js.map