@repositive/apigen
v0.3.0
Published
Generate code from OpenAPI specs
Downloads
8
Keywords
Readme
Generate API definitions from OpenAPI YAML specs
Install
npm install --save-dev @repositive/apigenAdd the apigen script to your "scripts" section in package.json:
"apigen": "apigen ts -o ./src/openapiUsage
npm run apigenOutput 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:
Run:
# Generates Typescript types into `./rendered/typescript`
cargo run -- ts /path/to/api.yaml -o ./rendered/typescriptView docs:
cargo doc --openBuild 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:
# Ensure Rust targets are added
rustup target add x86_64-unknown-linux-gnu x86_64-unknown-linux-musl x86_64-apple-darwin
# Install cross compilation tools (Debian/Ubuntu/Mint)
apt install musl musl-tools clang gcc g++ zlib1g-dev libmpc-dev libmpfr-dev libgmp-dev
# Install osxcross toolchain (requires sudo)
./osxcross-setup.shReleasing to NPM
# Make sure we're deploying up to date master
git checkout master && git pull
# (optional) login to NPM
npm login
# Increment NPM version number
npm version major|minor|patch
# Publish to NPM (builds binaries for targets)
npm publish
# Push generated tag to Github
git push --tags