0.3.0 • Published 5 years ago

@repositive/apigen v0.3.0

Weekly downloads
1
License
UNLICENSED
Repository
github
Last release
5 years ago

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:

# Generates Typescript types into `./rendered/typescript`
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:

# 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.sh

Releasing 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
0.3.0

5 years ago

0.2.5

5 years ago

0.2.4

5 years ago

0.1.5-alpha.0

5 years ago

0.1.5

5 years ago

0.2.3

5 years ago

0.2.2

5 years ago

0.2.1

5 years ago

0.2.0

5 years ago

0.1.4

5 years ago

0.1.3

6 years ago

0.1.2

6 years ago

0.1.1

6 years ago

0.1.0

6 years ago