UNPKG

@adguard/agtree

Version:
42 lines (39 loc) 1.31 kB
/* * AGTree v4.1.1 (build date: Thu, 23 Apr 2026 09:15:37 GMT) * (c) 2026 Adguard Software Ltd. * Released under the MIT license * https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme */ import { EMPTY, COMMA, SPACE } from '../../../utils/constants.js'; import { BaseGenerator } from '../../base-generator.js'; import { ComplexSelectorGenerator } from './complex-selector-generator.js'; /** * Selector list generator. */ class SelectorListGenerator extends BaseGenerator { /** * Generates a string representation of the selector list. * * @param node Selector list node. * * @returns String representation of the selector list. * * @throws Error if the `node` is invalid. */ static generate(node) { if (node.children.length === 0) { throw new Error('Selector list cannot be empty'); } const result = []; for (let i = 0; i < node.children.length; i += 1) { const complexSelector = node.children[i]; if (i > 0) { result.push(COMMA); result.push(SPACE); } result.push(ComplexSelectorGenerator.generate(complexSelector)); } return result.join(EMPTY); } } export { SelectorListGenerator };