Packages
playwright
0.1.16-preview-2
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/runner/helpers/url_matcher.ex
defmodule Playwright.Runner.Helpers.URLMatcher do
@moduledoc false
defstruct([:regex])
def new(base_url, pattern) do
new(Enum.join([base_url, pattern], "/"))
end
def new(pattern) do
%__MODULE__{
regex: Regex.compile!(translate(pattern))
}
end
# ---
def matches(%__MODULE__{} = instance, url) do
String.match?(url, instance.regex)
end
# private
# ---------------------------------------------------------------------------
# WARN: `translate` implementations are super naïve at the moment...
# "**" -> ".*"
defp translate(pattern) do
String.replace(pattern, ~r/\*{2,}/, ".*")
end
end