Skip to content

worldsibu/convector-cli

Repository files navigation

Convector CLI

Convector CLI is the official Command-Line Interface for Convector Framework. It is an open source project under an Apache 2.0 license to help you create Convector projects easily.

Important

Recently malicious code was found in event-stream which is a dependency for ps-tree which is a dependency for npm-run-all, used in autogenerated projects created by convector-cli we took care of it and encourage people to upgrade their @worldsibu/convector-cli installation as soon as possible.

To upgrade:

npm update -g @worldsibu/convector-cli

Details on the incident.

Prerequisites

  • Node 8.11.0 (other versions might work, but this is the one we use for development)
  • Docker
  • You may want to install Hurley to manage your development environment as well. If it's not installed you can still create and manage your development environment through the NPM commands Convector-CLI generates for you.

Usage

npm install -g @worldsibu/convector-cli

Creating a new project with a chaincode ready

conv new PROJECT-NAME -c CHAINCODE-NAME
cd PROJECT-NAME
npm i
# Bring up a development blockchain in your computer
npm run env:restart
# Install the chaincode to the blockchain
npm run cc:start -- CHAINCODE-NAME 1
# Upgrade the code amazing code you build on top of the template
npm run cc:upgrade -- CHAINCODE-NAME 2

Details

conv new

The way to kickoff a new project. It includes the posibility to create a new project along a new Chaincode right out of the box. npm i and get a project working for you.

# New project
conv new <project-name> [-c -chaincode <chaincode-name>]

conv generate

The easiest way to include new chaincodes, and model and controller files.

# Creates a chaincode package with a `model` and `controller` default. This needs to be run inside a Convector project folder.
conv generate chaincode <chaincode-name>
# Creates the file in the current folder (by overriding the folder conventions).
conv generate model <chaincode-name> <model-name>

Tests 👷‍♂️

Fork Convector CLI repo, build it, link it to your global node_modules, and use it.

  1. First bring up all the source code dependencies by running npm i.
  2. Then run npm link to enable it globally.

Roadmap 🗺

Proposed current roadmap. Have ideas? Post them in the Issues section.

  1. Individual generators for:
    1. Project root structure - conv new
    2. Package structure - conv new -c <chaincode> conv generate
    3. Model file - conv generate model <model-name>
    4. Controller file - conv generate controller <controller-name> [DEPRECATED]
    5. Convector Tool: Dev Env and Chaincode Manager - npm run env:restart npm run cc:start -- <chaincode-name> <version>
  2. Log usage information to internet.
  3. [🤚 We are here] Unify other Convector CLIs into one.
  4. Test methods generation from controller.
  5. Error collection details - report.
  6. Versioning of cc creation, distribute different versions of dependencies.
  7. Download settings from the internet.

Important ⚗️

This project is currently under development and it's changing fast, but you can use it for your projects and if something doesn't work or would like new features provide feedback. We love community feedback!

Support

  • For recommendations, feature requests, or bugs go to our issues section.
  • News on Convector, subscribe to our Newsletter.
  • Need support? Chat directly with our team, join our Discord.