Skip to content

Lay3rLabs/wavs-wizard

Repository files navigation

Getting Started

Make sure you have all the required tooling: Rust, Taskfile, wasm-pack, npm, Docker, etc.

First time

task setup

Developing

Frontend is straightforward:

task frontend:dev

Developing the project generation pipeline is typically easier in the terminal:

  1. Create some project in the frontend
  2. Copy/paste the JSON into the .gitignored ./debug-files/example.json files
  3. Set the TASK_CLI_DEV_MODE var in taskfile/config.yml to cargo
  4. Run:
task cli:generate && task cli:unzip

This will create .debug-files/example.zip and unzip it into .debug-files/project/

Notes

Frontend uses Rust/WASM in a web-worker in order to:

  1. Not tie up the UI while packing/compressing/etc.
  2. Allow for sharing code between frontend and CLI

Uses Askama templating engine for generating the files from source with a bit of logic.

Flow

Blocks (UI)
-> Project (must be valid)
-> ProjectTemplate (converted template)
-> Zip