Run `npm ci` instead of `npm install` when deploying To ensure reproducible builds.
fidlbolt is web app for exploring FIDL code and bytes, inspired by Matt Godbolt's Compiler Explorer.
To run a local fidlbolt server:
fx build host_x64/{fidlc,fidlgen_{llcpp,hlcpp,rust,go,dart}} zircon/tools.make run.http://localhost:8080.If you don't want changes in the fuchsia tree (e.g. rebuilding fidlc or changing FIDL libraries) to affect the running fidlbolt, use make run COPY=1 instead.
The backend is written in Go 1.13. It uses net/http to serve static files and handle POST requests.
The frontend is written in Elm and TypeScript. It uses webpack for bundling.
To set up the frontend:
sudo apt-get install nodejs.cd frontend && npm installThen, use one of the commands listed in npm run:
npm run dev: build in development modenpm run watch: rebuild in development mode on every file changenpm run tc: typecheck TypeScript filesnpm run lint: run eslint on TypeScript filesnpm run fix: format and fix lint issues in TypeScript and Elm filesnpm run build: build in production modeThe build commands read files in frontend/src/ and generate output in frontend/dist/.
Before making a CL, always run make format.
The project uses Docker for containerized deployment.
To build and run a new image locally:
sudo apt-get install docker-ce../copy_fuchsia_files.sh to get the latest FIDL files and binaries from your Fuchsia repository.docker image build -t fidlbolt .docker container run --publish 8080:8080 --detach --name fb fidlboltYou might need to use sudo with the Docker commands.