Generate API definitions from OpenAPI YAML specs
Install
npm install --save-dev @repositive/apigen
Add the apigen
script to your "scripts"
section in package.json
:
"apigen": "apigen ts -o ./src/openapi
Usage
npm run apigen
Output is rendered to a folder at the path specified in the NPM scripts command (./src/openapi
). If the folder (or its parents) don't exist, they will be created. Any other non-target files in the folder will be kept. It's good practice to add ./src/openapi
to .gitignore
.
Development
Setup:
- Install Rust with Rustup
- Install Node with NVM
npm install
Run:
cargo run -- ts /path/to/api.yaml -o ./rendered/typescript
View docs:
cargo doc --open
Build dependencies
The following targets are supported by apigen:
- x86_64-unknown-linux-gnu
- x86_64-unknown-linux-musl
- x86_64-apple-darwin
To build for these targets on a Linux machine, make sure you have the correct build dependencies:
rustup target add x86_64-unknown-linux-gnu x86_64-unknown-linux-musl x86_64-apple-darwin
apt install musl musl-tools clang gcc g++ zlib1g-dev libmpc-dev libmpfr-dev libgmp-dev
./osxcross-setup.sh
Releasing to NPM
git checkout master && git pull
npm login
npm version major|minor|patch
npm publish
git push --tags