Packages
playwright
0.1.0-preview
1.49.1-alpha.2
1.49.1-alpha.1
1.44.0-alpha.4
1.44.0-alpha.3
1.44.0-alpha.2
1.44.0-alpha.1
1.18.0-alpha.1
0.1.17-preview-7
0.1.17-preview-6
0.1.17-preview-5
0.1.17-preview-4
0.1.17-preview-3
0.1.17-preview-2
0.1.17-preview-1
0.1.16-preview-3
0.1.16-preview-2
0.1.16-preview-1
0.1.1-preview
0.1.0-preview
Playwright is an Elixir library to automate Chromium, Firefox and WebKit browsers with a single API. Playwright delivers automation that is ever-green, capable, reliable and fast.
Current section
Files
Jump to
Current section
Files
lib/playwright/extra/map.ex
defmodule Playwright.Extra.Map do
@moduledoc false
alias Playwright.Extra.Atom
def deep_atomize_keys(map) when is_map(map) do
map
|> Map.new(fn
{k, v} when is_map(v) -> {Atom.from_string(k), deep_atomize_keys(v)}
{k, list} when is_list(list) -> {Atom.from_string(k), Enum.map(list, fn v -> deep_atomize_keys(v) end)}
{k, v} -> {Atom.from_string(k), v}
end)
end
def deep_atomize_keys(other), do: other
def deep_camelize_keys(list) when is_list(list) do
Enum.into(list, %{}) |> deep_camelize_keys()
end
def deep_camelize_keys(map) when is_map(map) do
Map.new(map, fn
{k, v} when is_map(v) ->
{camelize(k), deep_camelize_keys(v)}
{k, l} when is_list(l) ->
{camelize(k), Enum.map(l, fn v -> deep_camelize_keys(v) end)}
{k, v} ->
{camelize(k), v}
end)
end
def deep_camelize_keys(other), do: other
# private
# ----------------------------------------------------------------------------
defp camelize(key) do
Atom.to_string(key) |> Recase.to_camel()
end
end