defmodule BenchmarkWeb do def static_paths, do: ~w(assets fonts images favicon.ico robots.txt) def router do quote do use Phoenix.Router, helpers: false import Plug.Conn import Phoenix.Controller import Phoenix.LiveView.Router end end def channel do quote do use Phoenix.Channel end end def controller do quote do use Phoenix.Controller, formats: [:html, :json], layouts: [html: BenchmarkWeb.Layouts] import Plug.Conn end end def live_view do quote do use Phoenix.LiveView, layout: {BenchmarkWeb.Layouts, :app} end end def live_component do quote do use Phoenix.LiveComponent end end def html do quote do use Phoenix.Component import Phoenix.Controller, only: [get_csrf_token: 0, view_module: 1, view_template: 1] unquote(html_helpers()) end end defp html_helpers do quote do import Phoenix.HTML import Phoenix.HTML.Form import BenchmarkWeb.CoreComponents alias Phoenix.LiveView.JS use Phoenix.VerifiedRoutes, endpoint: BenchmarkWeb.Endpoint, router: BenchmarkWeb.Router, statics: BenchmarkWeb.static_paths() end end defmacro __using__(which) when is_atom(which) do apply(__MODULE__, which, []) end end