Skip to content

open-rpc/generator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

def2121 · Mar 4, 2025
May 10, 2024
Mar 19, 2019
Mar 4, 2025
Mar 4, 2025
Mar 17, 2019
Mar 4, 2025
Mar 3, 2025
Mar 3, 2025
Mar 3, 2025
Feb 10, 2020
Mar 4, 2025
Jul 2, 2021
Mar 20, 2024
Mar 3, 2025
Mar 4, 2025
May 2, 2019
Mar 4, 2025
Mar 4, 2025
Feb 10, 2020
Mar 4, 2025

Repository files navigation

OpenRPC Generator

CircleCI branch npm GitHub release GitHub commits since latest release

A Generator tool for open-rpc APIs.

Need help or have a question? Join us on Discord!

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

npm install -g @open-rpc/generator

open-rpc-generator init
open-rpc-generator generate -c open-rpc-generator-config.json

Generating an individual component

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