Single-file components

Parse

Vize.parse_sfc(source)

Template, scripts, styles, and custom blocks, with locations.

Compile

Vize.compile_sfc(source,
  filename: "App.vue",
  scope_id: "7a7a37b1",
  vapor: false,
  ssr: false,
  strip_types: false,
  source_map: false,
  custom_renderer: false
)

Analyze

Vize.analyze_sfc(source, mode: :full)

%Vize.Croquis{} with props, bindings, and template expressions.

Lint

Vize.lint(source, "App.vue")

Declarations

Vize.generate_dts(source, filename: "App.vue")

Bundler helpers

Vize.SFC.scope_id("src/App.vue", root: root)
Vize.SFC.collect_template_assets(source)
Vize.SFC.rewrite_asset_references(code, assets)
Vize.SFC.external_sources(source)

Templates

Render function

Vize.compile_template(source,
  mode: "function",
  ssr: false
)

SSR

Vize.compile_ssr(source)

Vapor

Vize.compile_vapor(source,
  ssr: false,
  diagnostics: false,
  template_syntax: :standard
)

Vapor IR

Vize.vapor_ir(source)

Split for server rendering

{:ok, %{statics: statics, slots: slots}} = Vize.split_template(source)
Vize.split_template(source, root_attrs: true)

CSS

Compile

Vize.CSS.compile(css,
  minify: true,
  targets: %{chrome: 80, safari: 14},
  scoped: false,
  scope_id: "data-v-7a7a37b1",
  css_modules: false,
  filename: "app.css"
)

Targets apply only with minify: true.

Bundle

Vize.CSS.bundle(path,
  minify: true,
  targets: %{safari: 14},
  css_modules: false
)

Sass

Vize.CSS.compile_sass(scss,
  syntax: :scss,
  filename: path,
  load_paths: ["assets/css"],
  compressed: false
)

URLs

Vize.CSS.collect_urls(css)
Vize.CSS.rewrite_urls(css, fn url -> :keep end)
Vize.CSS.select(css, :dependencies)

AST

{:ok, %{ast: ast}} = Vize.CSS.parse_ast(css)
ast = Vize.CSS.postwalk(ast, & &1)
Vize.CSS.print_ast(ast, minify: true)