@nomad-xyz/config
TypeScript icon, indicating that this package has built-in type declarations

0.1.0-rc.1 • Public • Published

Nomad Config file

This is a crate for working with nomad configuration files. These config files contain information about the state of Nomad deployments.

It also includes an auto-generated TS/WASM library.

Design Notes

The core library is mostly a JSON config file format. We define Rust structs and TS types for all parts of this config.

In TS, the object is a native JS object. It is not a reference to a wasm type. Assignment and access can be done as normal. However, we have also exported functions that perform consistency-critical operations like addNetwork and addCore. We strongly recommend using these instead of assigning to the relevant sections.

Building

  • $ cargo build

To build the wasm library:

wasm-pack docs are found here.

Testing

  • $ cargo test

Documenting

  • $ cargo docs --open

Publishing

  • $ cargo publish
  • $ ./publish_it.sh

Development note

To work around some wasm-bindgen limitations, we currently (unfortunately) have to manually define TS types for the rust structs. These are found in the data directory. When a rust struct is updated or added, the corresponding definitions should be added in data/definitions.ts and data/types.rs. At compile-time these files are combind to src/wasm/types.rs.

In the future it'd be cool to auto-generate this code :)

Readme

Keywords

none

Package Sidebar

Install

npm i @nomad-xyz/config

Weekly Downloads

0

Version

0.1.0-rc.1

License

MIT OR Apache-2.0

Unpacked Size

866 kB

Total Files

9

Last publish

Collaborators

  • rswanson
  • annascarroll
  • prestwich
  • erinhales