Metastatic.Adapters.JavaScript.Subprocess (Metastatic v0.29.0)

View Source

Subprocess management for JavaScript/TypeScript parser and unparser.

Handles communication with Node.js scripts via temporary files/stdin with JSON serialization. Automatically ensures npm packages in priv/parsers/javascript are installed on demand when needed.

Summary

Functions

Parse JS/TS source code to Babel AST JSON.

Unparse Babel AST JSON back to JS/TS source code.

Functions

parse(source)

@spec parse(String.t()) :: {:ok, map()} | {:error, String.t()}

Parse JS/TS source code to Babel AST JSON.

Examples

iex> Metastatic.Adapters.JavaScript.Subprocess.parse("const x = 5;")
{:ok, %{"type" => "File", ...}}

iex> Metastatic.Adapters.JavaScript.Subprocess.parse("const x =")
{:error, "SyntaxError: ..."}

unparse(ast)

@spec unparse(map()) :: {:ok, String.t()} | {:error, String.t()}

Unparse Babel AST JSON back to JS/TS source code.

Examples

iex> ast = %{"type" => "File", ...}
iex> Metastatic.Adapters.JavaScript.Subprocess.unparse(ast)
{:ok, "const x = 5;"}