index-main/kirby/src/Query/AST/ArrayListNode.php
2025-10-03 07:46:23 +02:00

37 lines
786 B
PHP

<?php
namespace Kirby\Query\AST;
use Kirby\Query\Visitors\Visitor;
/**
* Represents a (array) list of elements in the AST
*
* @package Kirby Query
* @author Roman Steiner <roman@toastlab.ch>,
* Nico Hoffmann <nico@getkirby.com>
* @link https://getkirby.com
* @license https://opensource.org/licenses/MIT
* @since 5.1.0
* @unstable
*/
class ArrayListNode extends Node
{
public function __construct(
public array $elements,
) {
}
public function resolve(Visitor $visitor): array|string
{
// Resolve each array element
$elements = array_map(
fn ($element) => $element->resolve($visitor),
$this->elements
);
// Keep as array or convert to string
// depending on the visitor type
return $visitor->arrayList($elements);
}
}