Current section
Files
Jump to
Current section
Files
lib/helpers/create_react_app.ex
defmodule PhoenixReactify.Helpers.CreateReactApp do
@spec available? :: {:ok, String.t()}
def available? do
{version, _} = System.cmd("npm", ["view", "create-react-app", "version"])
version
end
def run(project_name \\ "spa", opts \\ [typescript: false]) do
build_opts = ["create-react-app", "#{project_name}"]
conditions = [
{opts[:typescript], "--template=typescript"},
{!opts[:verbose], "--silent"}
]
build_opts =
build_opts ++
Enum.reduce(conditions, [], fn
{true, item}, list ->
[item | list]
_, list ->
list
end)
{output, _} = System.cmd("npx", build_opts)
output
end
end