mirror of
https://github.com/trailbaseio/trailbase.git
synced 2026-01-05 17:30:13 -06:00
Better development instructions for the Admin UI.
This commit is contained in:
@@ -1,17 +1,39 @@
|
||||
# TrailBase Admin Dashboard UI
|
||||
|
||||
## Codegen proto code
|
||||
This directory contains TrailBase's admin dashboard UI. It is an SPA, i.e. it's
|
||||
static content embedded into the TrailBase binary that executes in the browser
|
||||
using TrailBase's privileged admin APIs.
|
||||
|
||||
We're using https://github.com/stephenh/ts-proto#usage for typescript generation.
|
||||
For development one case use the vite dev-server with hot module reload. First
|
||||
start the TrailBase binary in dev mode (permissive CORS and cookie policies):
|
||||
|
||||
$ pnpm run proto
|
||||
```bash
|
||||
$ cargo run -- --data-dir client/testfixture run --dev
|
||||
```
|
||||
|
||||
Make sure to install:
|
||||
and then vite:
|
||||
|
||||
* protobuf-compiler, for protoc
|
||||
* libprotobuf-dev, for meta files such as descriptor.proto.
|
||||
```bash
|
||||
$ pnpm run dev
|
||||
```
|
||||
|
||||
## Codegen Rust-TypeScript bindings
|
||||
## Protobuf codegen
|
||||
|
||||
They are currently created on `cargo test` and copied to `/bindings` on `cargo
|
||||
build` where they're being picked up.
|
||||
We're using [ts-proto](https://github.com/stephenh/ts-proto#usage) for
|
||||
protobuf code generation. Run
|
||||
|
||||
```bash
|
||||
$ pnpm run proto
|
||||
```
|
||||
|
||||
, which requires the following system dependencies:
|
||||
|
||||
* **protoc**, e.g. via the `protobuf-compiler` Debian/Ubuntu package
|
||||
* **descriptor.proto**, e.g. via the `libprotobuf-dev` Debian/Ubuntu package.
|
||||
|
||||
## Rust-TypeScript codegen
|
||||
|
||||
The TypeScript bindings for the admin APIs are checked into the repository
|
||||
under `/trailbase-core/bindings`. They're generated via `ts-rs` and written
|
||||
every time the Rust tests execute, i.e. `cargo test`. They're checked in only
|
||||
to avoid having Rust depend on TypesScript and TypeScript depend on Rust tests.
|
||||
|
||||
Reference in New Issue
Block a user