Packages
surface
0.9.2
0.12.3
0.12.2
0.12.1
0.12.0
0.11.5
0.11.4
0.11.3
0.11.2
0.11.1
0.11.0
0.10.0
0.9.5
0.9.4
0.9.3
0.9.2
0.9.1
0.9.0
0.8.4
0.8.3
0.8.2
0.8.1
0.8.0
0.7.6
0.7.5
0.7.4
0.7.3
0.7.2
0.7.1
0.7.0
0.6.1
0.6.0
0.5.2
0.5.1
0.5.0
0.4.1
0.4.0
0.3.2
0.3.1
0.3.0
0.2.1
0.2.0
0.1.1
0.1.0
0.1.0-alpha.2
0.1.0-alpha.1
0.1.0-alpha.0
A component based library for Phoenix LiveView
Current section
Files
Jump to
Current section
Files
lib/mix/tasks/surface/surface.init/file_patchers/js.ex
defmodule Mix.Tasks.Surface.Init.FilePatchers.JS do
@moduledoc false
def add_import(code, import_code) do
already_patched? = Regex.match?(to_regex(import_code), code)
import_toolbar_regex = to_regex(~S[import topbar from "../vendor/topbar"])
patchable? = Regex.match?(import_toolbar_regex, code)
cond do
already_patched? ->
{:already_patched, code}
patchable? ->
{:patched, Regex.replace(import_toolbar_regex, code, ~s[\\0\n#{import_code}])}
true ->
{:cannot_patch, code}
end
end
defp to_regex(string) do
Regex.compile!("^#{Regex.escape(string)}$", "m")
end
end