Volt.PluginRunner (Volt v0.9.1)

Copy Markdown View Source

Execute Volt plugin hooks.

Summary

Functions

Run compile hooks. Returns {:ok, compiled}, {:error, term}, or nil.

Collect plugin-provided compile-time replacements for a build mode.

Run extension hooks and return plugin-provided extensions for a kind.

Run import extraction hooks. Returns import metadata or nil.

Run load hooks. Returns {:ok, code, content_type}, {:ok, code}, or nil.

Resolve a plugin-provided canonical prebundle specifier.

Resolve a plugin-provided generated prebundle entry.

Run render_chunk hooks in sequence.

Run resolve hooks. Returns {:ok, path}, :skip, or nil.

Run transform hooks in sequence, piping code through each.

Functions

compile(plugins, path, source, opts)

@spec compile([module() | {module(), keyword()}], String.t(), String.t(), keyword()) ::
  {:ok, map()} | {:error, term()} | nil

Run compile hooks. Returns {:ok, compiled}, {:error, term}, or nil.

define(plugins, mode)

@spec define([module() | {module(), keyword()}], String.t()) :: %{
  required(String.t()) => String.t()
}

Collect plugin-provided compile-time replacements for a build mode.

extensions(plugins, kind)

@spec extensions([module() | {module(), keyword()}], atom()) :: [String.t()]

Run extension hooks and return plugin-provided extensions for a kind.

extract_imports(plugins, path, source, opts)

@spec extract_imports(
  [module() | {module(), keyword()}],
  String.t(),
  String.t(),
  keyword()
) ::
  {:ok, map()} | {:error, term()} | nil

Run import extraction hooks. Returns import metadata or nil.

load(plugins, path)

@spec load([module() | {module(), keyword()}], String.t()) ::
  {:ok, String.t(), String.t()} | {:ok, String.t()} | nil

Run load hooks. Returns {:ok, code, content_type}, {:ok, code}, or nil.

plugins(plugins)

prebundle_alias(plugins, specifier)

@spec prebundle_alias([module() | {module(), keyword()}], String.t()) :: String.t()

Resolve a plugin-provided canonical prebundle specifier.

prebundle_entry(plugins, specifier)

@spec prebundle_entry([module() | {module(), keyword()}], String.t()) ::
  {:source, String.t(), String.t()} | {:proxy, String.t(), keyword()} | nil

Resolve a plugin-provided generated prebundle entry.

render_chunk(plugins, code, chunk_info)

@spec render_chunk([module() | {module(), keyword()}], String.t(), map()) ::
  String.t()

Run render_chunk hooks in sequence.

resolve(plugins, specifier, importer)

@spec resolve([module() | {module(), keyword()}], String.t(), String.t() | nil) ::
  {:ok, String.t()} | :skip | nil

Run resolve hooks. Returns {:ok, path}, :skip, or nil.

transform(plugins, code, path)

@spec transform([module() | {module(), keyword()}], String.t(), String.t()) ::
  String.t()

Run transform hooks in sequence, piping code through each.