defmodule Vize.Native do
native_version = Mix.Project.config()[:version]
local_dev? = Mix.env() == :dev and Mix.Project.config()[:build_path] == "../../_build"
build_from_source =
local_dev? or System.get_env("DUSKMOON_BUILD_NATIVE_FROM_SOURCE") in ["1", "true"]
use RustlerPrecompiled,
otp_app: :duskmoon_vize,
crate: "vize_ex_nif",
base_url:
"https://github.com/duskmoon-dev/phoenix-duskmoon-ui/releases/download/v#{native_version}",
force_build: build_from_source or System.get_env("VIZE_EX_BUILD") in ["1", "true"],
targets: ~w(
aarch64-apple-darwin
aarch64-unknown-linux-gnu
x86_64-apple-darwin
x86_64-pc-windows-gnu
x86_64-unknown-freebsd
x86_64-unknown-linux-gnu
),
version: native_version
@spec parse_sfc_nif(String.t()) :: {:ok, map()} | {:error, String.t()}
def parse_sfc_nif(_source), do: :erlang.nif_error(:nif_not_loaded)
@spec analyze_sfc_nif(String.t(), String.t()) :: {:ok, map()} | {:error, String.t()}
def analyze_sfc_nif(_source, _mode), do: :erlang.nif_error(:nif_not_loaded)
@spec compile_sfc_nif(
String.t(),
String.t(),
String.t(),
boolean(),
boolean(),
boolean(),
boolean()
) :: {:ok, map()} | {:error, String.t()}
def compile_sfc_nif(
_source,
_filename,
_scope_id,
_vapor,
_ssr,
_custom_renderer,
_strip_types
),
do: :erlang.nif_error(:nif_not_loaded)
@spec compile_template_nif(String.t(), String.t(), boolean()) ::
{:ok, map()} | {:error, list()}
def compile_template_nif(_source, _mode, _ssr), do: :erlang.nif_error(:nif_not_loaded)
@spec compile_ssr_nif(String.t()) :: {:ok, map()} | {:error, list()}
def compile_ssr_nif(_source), do: :erlang.nif_error(:nif_not_loaded)
@spec compile_vapor_nif(String.t(), boolean(), boolean(), String.t()) ::
{:ok, map()} | {:error, list()}
def compile_vapor_nif(_source, _ssr, _diagnostics, _template_syntax),
do: :erlang.nif_error(:nif_not_loaded)
@spec vapor_ir_nif(String.t()) :: {:ok, map()} | {:error, list()}
def vapor_ir_nif(_source), do: :erlang.nif_error(:nif_not_loaded)
@spec vapor_split_nif(String.t()) :: {:ok, map()} | {:error, list()}
def vapor_split_nif(_source), do: :erlang.nif_error(:nif_not_loaded)
@spec lint_nif(String.t(), String.t()) :: {:ok, list()}
def lint_nif(_source, _filename), do: :erlang.nif_error(:nif_not_loaded)
@spec select_css_nif(String.t(), String.t(), boolean(), boolean(), list()) ::
{:ok, [map()]} | {:error, [String.t()]}
def select_css_nif(_source, _filename, _custom_media, _css_modules, _selector),
do: :erlang.nif_error(:nif_not_loaded)
@spec parse_css_ast_nif(String.t(), String.t(), boolean(), boolean()) :: {:ok, map()}
def parse_css_ast_nif(_source, _filename, _custom_media, _css_modules),
do: :erlang.nif_error(:nif_not_loaded)
@spec print_css_ast_nif(map(), boolean(), integer(), integer(), integer()) :: {:ok, map()}
def print_css_ast_nif(_ast, _minify, _chrome, _firefox, _safari),
do: :erlang.nif_error(:nif_not_loaded)
@spec compile_css_nif(
String.t(),
boolean(),
boolean(),
String.t(),
String.t(),
integer(),
integer(),
integer(),
boolean()
) :: {:ok, map()}
def compile_css_nif(
_source,
_minify,
_scoped,
_scope_id,
_filename,
_chrome,
_firefox,
_safari,
_css_modules
),
do: :erlang.nif_error(:nif_not_loaded)
@spec bundle_css_nif(
String.t(),
boolean(),
integer(),
integer(),
integer(),
boolean()
) :: {:ok, map()}
def bundle_css_nif(_entry_path, _minify, _chrome, _firefox, _safari, _css_modules),
do: :erlang.nif_error(:nif_not_loaded)
@spec generate_dts_nif(String.t(), String.t()) :: {:ok, map()} | {:error, String.t()}
def generate_dts_nif(_source, _filename), do: :erlang.nif_error(:nif_not_loaded)
end