module Pagy::StandaloneExtra::QueryUtils

def build_nested_query(value, prefix = nil)

def build_nested_query(value, prefix = nil)
  case value
  when Array
    value.map { |v| build_nested_query(v, "#{prefix}[]") }.join('&')
  when Hash
    value.map do |k, v|
      build_nested_query(v, prefix ? "#{prefix}[#{escape(k)}]" : escape(k))
    end.delete_if(&:empty?).join('&')
  when nil
    prefix
  else
    raise ArgumentError, 'value must be a Hash' if prefix.nil?
    "#{prefix}=#{escape(value)}"
  end
end

def escape(str)

def escape(str)
  URI.encode_www_form_component(str)
end