Skip to content

Latest commit

 

History

History
791 lines (576 loc) · 22.4 KB

README.md

File metadata and controls

791 lines (576 loc) · 22.4 KB

AsyncAPI Modelina License Npm latest version NPM Downloads homebrew downloads Chocolatey Downloads GitHub Downloads (specific asset, all releases) GitHub Downloads (specific asset, all releases) GitHub Downloads (specific asset, all releases) GitHub Downloads (specific asset, all releases) GitHub Downloads (specific asset, all releases) GitHub Downloads (specific asset, all releases)


NOTICE: If you are only working exclusively with AsyncAPI documents, using the AsyncAPI CLI is the preferred way to interact with Modelina as it has the exact same features.

Table of contents

Installation

Here are all the ways you can install and run the Modelina CLI.

MacOS

Brew
brew install modelina
MacOS x64

Install it through dedicated .pkg file as a MacOS Application

# Download latest release
curl -OL https://github.com/asyncapi/modelina/releases/latest/download/modelina.x64.pkg
# Install it
sudo installer -pkg modelina.pkg -target /
MacOS arm64

Install it through dedicated .pkg file as a MacOS Application for arm64

# Download latest release
curl -OL https://github.com/asyncapi/modelina/releases/latest/download/modelina.arm64.pkg
# Install it
sudo installer -pkg modelina.pkg -target /

Windows

Chocolatey
choco install modelina
Windows x64

Manually download and run modelina.x64.exe

Windows x32

Manually download and run the executable modelina.x86.exe

Linux

Debian
# Download
curl -OL https://github.com/asyncapi/modelina/releases/latest/download/modelina.deb

# Install
sudo apt install ./modelina.deb
Others
# Download
curl -OL https://github.com/asyncapi/modelina/releases/latest/download/modelina.tar.gz
# Install
tar -xzf modelina.tar.gz

Remember to symlink the binaries ln -s <absolute-path>/bin/modelina /user/local/bin/modelina to access the CLI anywhere.

Others

NPM
npm install -g @asyncapi/modelina-cli

Usage

$ npm install -g @asyncapi/modelina-cli
$ modelina COMMAND
running command...
$ modelina (--version)
@asyncapi/modelina-cli/4.0.0-next.65 linux-x64 node-v18.20.5
$ modelina --help [COMMAND]
USAGE
  $ modelina COMMAND
...

Commands

modelina autocomplete [SHELL]

Display autocomplete installation instructions.

USAGE
  $ modelina autocomplete [SHELL] [-r]

ARGUMENTS
  SHELL  (zsh|bash|powershell) Shell type

FLAGS
  -r, --refresh-cache  Refresh cache (ignores displaying instructions)

DESCRIPTION
  Display autocomplete installation instructions.

EXAMPLES
  $ modelina autocomplete

  $ modelina autocomplete bash

  $ modelina autocomplete zsh

  $ modelina autocomplete powershell

  $ modelina autocomplete --refresh-cache

See code: @oclif/plugin-autocomplete

modelina config

CLI config settings

USAGE
  $ modelina config

DESCRIPTION
  CLI config settings

See code: src/commands/config/index.ts

modelina config context

Manage short aliases for full paths to inputs

USAGE
  $ modelina config context

DESCRIPTION
  Manage short aliases for full paths to inputs

See code: src/commands/config/context/index.ts

modelina config context add CONTEXT-NAME SPEC-FILE-PATH

Add a context to the store

USAGE
  $ modelina config context add CONTEXT-NAME SPEC-FILE-PATH [-h] [-s]

ARGUMENTS
  CONTEXT-NAME    context name
  SPEC-FILE-PATH  file path of the spec file

FLAGS
  -h, --help         Show CLI help.
  -s, --set-current  Set context being added as the current context

DESCRIPTION
  Add a context to the store

See code: src/commands/config/context/add.ts

modelina config context current

Shows the current context that is being used

USAGE
  $ modelina config context current [-h]

FLAGS
  -h, --help  Show CLI help.

DESCRIPTION
  Shows the current context that is being used

See code: src/commands/config/context/current.ts

modelina config context edit CONTEXT-NAME NEW-SPEC-FILE-PATH

Edit a context in the store

USAGE
  $ modelina config context edit CONTEXT-NAME NEW-SPEC-FILE-PATH [-h]

ARGUMENTS
  CONTEXT-NAME        context name
  NEW-SPEC-FILE-PATH  file path of the spec file

FLAGS
  -h, --help  Show CLI help.

DESCRIPTION
  Edit a context in the store

See code: src/commands/config/context/edit.ts

modelina config context init [CONTEXT-FILE-PATH]

Initialize context

USAGE
  $ modelina config context init [CONTEXT-FILE-PATH] [-h]

ARGUMENTS
  CONTEXT-FILE-PATH  Specify directory in which context file should be created:
                     - current directory          : modelina config context init . (default)
                     - root of current repository : modelina config context init ./
                     - user's home directory      : modelina config context init ~

FLAGS
  -h, --help  Show CLI help.

DESCRIPTION
  Initialize context

See code: src/commands/config/context/init.ts

modelina config context list

List all the stored contexts in the store

USAGE
  $ modelina config context list [-h]

FLAGS
  -h, --help  Show CLI help.

DESCRIPTION
  List all the stored contexts in the store

See code: src/commands/config/context/list.ts

modelina config context remove CONTEXT-NAME

Delete a context from the store

USAGE
  $ modelina config context remove CONTEXT-NAME [-h]

ARGUMENTS
  CONTEXT-NAME  Name of the context to delete

FLAGS
  -h, --help  Show CLI help.

DESCRIPTION
  Delete a context from the store

See code: src/commands/config/context/remove.ts

modelina config context use CONTEXT-NAME

Set a context as current

USAGE
  $ modelina config context use CONTEXT-NAME [-h]

ARGUMENTS
  CONTEXT-NAME  name of the saved context

FLAGS
  -h, --help  Show CLI help.

DESCRIPTION
  Set a context as current

See code: src/commands/config/context/use.ts

modelina generate LANGUAGE FILE

Generates typed models

USAGE
  $ modelina generate LANGUAGE FILE [-h] [-o <value>] [--packageName <value>] [--namespace <value>]
    [--tsModelType class|interface] [--tsEnumType enum|union] [--tsModuleSystem ESM|CJS] [--tsIncludeComments]
    [--tsExportType default|named] [--tsJsonBinPack] [--tsMarshalling] [--tsExampleInstance] [--tsRawPropertyNames]
    [--csharpAutoImplement] [--csharpNewtonsoft] [--csharpArrayType Array|List] [--csharpHashcode] [--csharpEqual]
    [--csharpSystemJson] [--goIncludeComments] [--goIncludeTags] [--javaIncludeComments] [--javaJackson]
    [--javaConstraints] [--javaArrayType Array|List] [--pyDantic]

ARGUMENTS
  LANGUAGE  (typescript|csharp|golang|java|javascript|dart|python|rust|kotlin|php|cplusplus|scala) The language you want
            the typed models generated for.
  FILE      Path or URL to the AsyncAPI document, or context-name

FLAGS
  -h, --help                      Show CLI help.
  -o, --output=<value>            The output directory where the models should be written to. Omitting this flag will
                                  write the models to `stdout`.
      --csharpArrayType=<option>  [default: Array] C# specific, define which type of array needs to be generated.
                                  <options: Array|List>
      --csharpAutoImplement       C# specific, define whether to generate auto-implemented properties or not.
      --csharpEqual               C# specific, generate the models with the Equal method overwritten
      --csharpHashcode            C# specific, generate the models with the GetHashCode method overwritten
      --csharpNewtonsoft          C# specific, generate the models with newtonsoft serialization support
      --csharpSystemJson          C# specific, generate the models with System.Text.Json serialization support
      --goIncludeComments         Golang specific, if enabled add comments while generating models.
      --goIncludeTags             Golang specific, if enabled add tags while generating models.
      --javaArrayType=<option>    [default: Array] Java specific, define which type of array needs to be generated.
                                  <options: Array|List>
      --javaConstraints           Java specific, generate the models with constraints
      --javaIncludeComments       Java specific, if enabled add comments while generating models.
      --javaJackson               Java specific, generate the models with Jackson serialization support
      --namespace=<value>         C#, C++ and PHP specific, define the namespace to use for the generated models. This
                                  is required when language is `csharp`,`c++` or `php`.
      --packageName=<value>       Go, Java and Kotlin specific, define the package to use for the generated models. This
                                  is required when language is `go`, `java` or `kotlin`.
      --pyDantic                  Python specific, generate the Pydantic models.
      --tsEnumType=<option>       [default: enum] TypeScript specific, define which type of enums needs to be generated.
                                  <options: enum|union>
      --tsExampleInstance         Typescript specific, generate example of the model.
      --tsExportType=<option>     [default: default] TypeScript specific, define which type of export needs to be
                                  generated.
                                  <options: default|named>
      --tsIncludeComments         TypeScript specific, if enabled add comments while generating models.
      --tsJsonBinPack             TypeScript specific, define basic support for serializing to and from binary with
                                  jsonbinpack.
      --tsMarshalling             TypeScript specific, generate the models with marshalling functions.
      --tsModelType=<option>      [default: class] TypeScript specific, define which type of model needs to be
                                  generated.
                                  <options: class|interface>
      --tsModuleSystem=<option>   [default: ESM] TypeScript specific, define the module system to be used.
                                  <options: ESM|CJS>
      --tsRawPropertyNames        Typescript specific, generate the models using raw property names.

DESCRIPTION
  Generates typed models

See code: src/commands/generate.ts

modelina help [COMMAND]

Display help for modelina.

USAGE
  $ modelina help [COMMAND...] [-n]

ARGUMENTS
  COMMAND...  Command to show help for.

FLAGS
  -n, --nested-commands  Include all nested commands in the output.

DESCRIPTION
  Display help for modelina.

See code: @oclif/plugin-help

modelina plugins

List installed plugins.

USAGE
  $ modelina plugins [--json] [--core]

FLAGS
  --core  Show core plugins.

GLOBAL FLAGS
  --json  Format output as json.

DESCRIPTION
  List installed plugins.

EXAMPLES
  $ modelina plugins

See code: @oclif/plugin-plugins

modelina plugins add PLUGIN

Installs a plugin into modelina.

USAGE
  $ modelina plugins add PLUGIN... [--json] [-f] [-h] [-s | -v]

ARGUMENTS
  PLUGIN...  Plugin to install.

FLAGS
  -f, --force    Force npm to fetch remote resources even if a local copy exists on disk.
  -h, --help     Show CLI help.
  -s, --silent   Silences npm output.
  -v, --verbose  Show verbose npm output.

GLOBAL FLAGS
  --json  Format output as json.

DESCRIPTION
  Installs a plugin into modelina.

  Uses bundled npm executable to install plugins into /home/runner/.local/share/@asyncapi/modelina-cli

  Installation of a user-installed plugin will override a core plugin.

  Use the MODELINA_NPM_LOG_LEVEL environment variable to set the npm loglevel.
  Use the MODELINA_NPM_REGISTRY environment variable to set the npm registry.

ALIASES
  $ modelina plugins add

EXAMPLES
  Install a plugin from npm registry.

    $ modelina plugins add myplugin

  Install a plugin from a github url.

    $ modelina plugins add https://github.com/someuser/someplugin

  Install a plugin from a github slug.

    $ modelina plugins add someuser/someplugin

modelina plugins:inspect PLUGIN...

Displays installation properties of a plugin.

USAGE
  $ modelina plugins inspect PLUGIN...

ARGUMENTS
  PLUGIN...  [default: .] Plugin to inspect.

FLAGS
  -h, --help     Show CLI help.
  -v, --verbose

GLOBAL FLAGS
  --json  Format output as json.

DESCRIPTION
  Displays installation properties of a plugin.

EXAMPLES
  $ modelina plugins inspect myplugin

See code: @oclif/plugin-plugins

modelina plugins install PLUGIN

Installs a plugin into modelina.

USAGE
  $ modelina plugins install PLUGIN... [--json] [-f] [-h] [-s | -v]

ARGUMENTS
  PLUGIN...  Plugin to install.

FLAGS
  -f, --force    Force npm to fetch remote resources even if a local copy exists on disk.
  -h, --help     Show CLI help.
  -s, --silent   Silences npm output.
  -v, --verbose  Show verbose npm output.

GLOBAL FLAGS
  --json  Format output as json.

DESCRIPTION
  Installs a plugin into modelina.

  Uses bundled npm executable to install plugins into /home/runner/.local/share/@asyncapi/modelina-cli

  Installation of a user-installed plugin will override a core plugin.

  Use the MODELINA_NPM_LOG_LEVEL environment variable to set the npm loglevel.
  Use the MODELINA_NPM_REGISTRY environment variable to set the npm registry.

ALIASES
  $ modelina plugins add

EXAMPLES
  Install a plugin from npm registry.

    $ modelina plugins install myplugin

  Install a plugin from a github url.

    $ modelina plugins install https://github.com/someuser/someplugin

  Install a plugin from a github slug.

    $ modelina plugins install someuser/someplugin

See code: @oclif/plugin-plugins

modelina plugins link PATH

Links a plugin into the CLI for development.

USAGE
  $ modelina plugins link PATH [-h] [--install] [-v]

ARGUMENTS
  PATH  [default: .] path to plugin

FLAGS
  -h, --help          Show CLI help.
  -v, --verbose
      --[no-]install  Install dependencies after linking the plugin.

DESCRIPTION
  Links a plugin into the CLI for development.
  Installation of a linked plugin will override a user-installed or core plugin.

  e.g. If you have a user-installed or core plugin that has a 'hello' command, installing a linked plugin with a 'hello'
  command will override the user-installed or core plugin implementation. This is useful for development work.


EXAMPLES
  $ modelina plugins link myplugin

See code: @oclif/plugin-plugins

modelina plugins remove [PLUGIN]

Removes a plugin from the CLI.

USAGE
  $ modelina plugins remove [PLUGIN...] [-h] [-v]

ARGUMENTS
  PLUGIN...  plugin to uninstall

FLAGS
  -h, --help     Show CLI help.
  -v, --verbose

DESCRIPTION
  Removes a plugin from the CLI.

ALIASES
  $ modelina plugins unlink
  $ modelina plugins remove

EXAMPLES
  $ modelina plugins remove myplugin

modelina plugins reset

Remove all user-installed and linked plugins.

USAGE
  $ modelina plugins reset [--hard] [--reinstall]

FLAGS
  --hard       Delete node_modules and package manager related files in addition to uninstalling plugins.
  --reinstall  Reinstall all plugins after uninstalling.

See code: @oclif/plugin-plugins

modelina plugins uninstall [PLUGIN]

Removes a plugin from the CLI.

USAGE
  $ modelina plugins uninstall [PLUGIN...] [-h] [-v]

ARGUMENTS
  PLUGIN...  plugin to uninstall

FLAGS
  -h, --help     Show CLI help.
  -v, --verbose

DESCRIPTION
  Removes a plugin from the CLI.

ALIASES
  $ modelina plugins unlink
  $ modelina plugins remove

EXAMPLES
  $ modelina plugins uninstall myplugin

See code: @oclif/plugin-plugins

modelina plugins unlink [PLUGIN]

Removes a plugin from the CLI.

USAGE
  $ modelina plugins unlink [PLUGIN...] [-h] [-v]

ARGUMENTS
  PLUGIN...  plugin to uninstall

FLAGS
  -h, --help     Show CLI help.
  -v, --verbose

DESCRIPTION
  Removes a plugin from the CLI.

ALIASES
  $ modelina plugins unlink
  $ modelina plugins remove

EXAMPLES
  $ modelina plugins unlink myplugin

modelina plugins update

Update installed plugins.

USAGE
  $ modelina plugins update [-h] [-v]

FLAGS
  -h, --help     Show CLI help.
  -v, --verbose

DESCRIPTION
  Update installed plugins.

See code: @oclif/plugin-plugins

modelina version

USAGE
  $ modelina version [--json] [--verbose]

FLAGS
  --verbose  Show additional information about the CLI.

GLOBAL FLAGS
  --json  Format output as json.

FLAG DESCRIPTIONS
  --verbose  Show additional information about the CLI.

    Additionally shows the architecture, node version, operating system, and versions of plugins that the CLI is using.

See code: @oclif/plugin-version