surrealguard
v0.5.3
Published
Static analyzer and type-inference engine for SurrealQL — run the surrealguard CLI via npx.
Downloads
592
Maintainers
Readme
surrealguard
The surrealguard CLI: a static analyzer and type-inference engine for
SurrealQL. It checks your queries against your .surql schema and generates
TypeScript types for them.
The CLI itself is written in Rust. This npm package is a launcher: on first run
it detects your platform, downloads the matching prebuilt binary from the
GitHub Release for this
package's version, caches it inside the package directory (binaries/<target>/),
and execs it. Later runs skip straight to the cached binary. Because the version
pins the release tag, npx [email protected] always gets the 0.4.0 binary — the
launcher and the binary can never drift apart.
Use
npx surrealguard --helpOr add it to a project, which is what you usually want so that CI and every developer run the same version:
npm i -D surrealguard
npx surrealguard init # writes a commented surrealguard.toml
npx surrealguard check # analyze; non-zero exit if errors remain
npx surrealguard generate # emit the typed TypeScript clientcheck also takes --json for machine-readable diagnostics, and generate
takes --out <path>. Run surrealguard <command> --help for the flags your
installed version has.
Requirements
Node >= 16, plus tar (present on macOS and Linux) or PowerShell's
Expand-Archive on Windows — used once, to unpack the downloaded archive.
Nothing else is installed.
Supported platforms
| platform | arch | target triple | | -------- | ----- | ------------------------- | | macOS | arm64 | aarch64-apple-darwin | | macOS | x64 | x86_64-apple-darwin | | Linux | x64 | x86_64-unknown-linux-gnu | | Linux | arm64 | aarch64-unknown-linux-gnu | | Windows | x64 | x86_64-pc-windows-msvc |
On anything else the launcher exits with a message naming your platform; build from source instead.
Without npm
The same prebuilt binaries, via
cargo binstall:
cargo binstall surrealguardOr from source:
cargo install surrealguardDocs
Full documentation, including the TypeScript packages this generates types for, is at github.com/DrewRidley/surrealguard.
License
MIT OR Apache-2.0
