Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/open-rpc/generator
Multi-Component & Multi-Language Generators for OpenRPC
https://github.com/open-rpc/generator
open-rpc openrpc openrpc-document openrpc-generator rpc
Last synced: 3 months ago
JSON representation
Multi-Component & Multi-Language Generators for OpenRPC
- Host: GitHub
- URL: https://github.com/open-rpc/generator
- Owner: open-rpc
- License: apache-2.0
- Created: 2019-01-22T23:20:51.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2024-03-20T12:17:03.000Z (8 months ago)
- Last Synced: 2024-04-14T06:50:02.917Z (7 months ago)
- Topics: open-rpc, openrpc, openrpc-document, openrpc-generator, rpc
- Language: TypeScript
- Homepage:
- Size: 6.27 MB
- Stars: 62
- Watchers: 5
- Forks: 30
- Open Issues: 19
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# OpenRPC Generator
A Generator tool for [open-rpc](https://github.com/open-rpc/spec) APIs.
Need help or have a question? Join us on [Discord](https://discord.gg/gREUKuF)!
## Features:
- Built in components for:
- Clients
- Server
- Documentation
- Easy to create new components## Usage
The generator CLI has a generate command which takes a config to run. The config specifies what components you want to make, as well as the configuration for each component.
Using the CLI's `init` command, you can walk though an interactive config builder.
### Quick start
```sh
npm install -g @open-rpc/generatoropen-rpc-generator init
open-rpc-generator generate -c open-rpc-generator-config.json
```### Generating an individual component
```shell
open-rpc-generator generate \
-t client \
-l typescript \
-n petstoreClientTs \
-d https://raw.githubusercontent.com/open-rpc/examples/master/service-descriptions/petstore-openrpc.json \
-o ./generated
```
### Custom Component Generation Configuration
Here for customComponent we specify the module that exports as
default the type IComponentModule see custom-test-component.js as an example. It is easy to also refer to an npm package as well as a plain js file. customType is can be anything , it is not restricted to client | server | doc naming.
```
{
"openrpcDocument": "./src/awesome-custom-client_openrpc.json",
"outDir": "generated-client",
"components": [
{
"type": "custom",
"name": "awesome-custom-client",
"language": "typescript",
"customComponent": "./src/custom-test-component.js",
"customType": "client"
}
]
}
```
## Resources- [@open-rpc/generator package](https://www.npmjs.com/package/@open-rpc/generator)
- [example open-rpc documents](https://github.com/open-rpc/examples/tree/master/service-descriptions)