@cloudops/generator-cloudmc-plugin

Generate the template for a CloudMC Service Plugin

Usage no npm install needed!

<script type="module">
  import cloudopsGeneratorCloudmcPlugin from 'https://cdn.skypack.dev/@cloudops/generator-cloudmc-plugin';
</script>

README

generator-cloudmc-plugin

Generate a CloudMC Service Plugin template

Installation

First, install Yeoman and generator-cloudmc-plugin using npm (we assume you have pre-installed node.js).

npm install -g yo
npm install -g @cloudops/generator-cloudmc-plugin

Then generate your new project:

yo @cloudops/cloudmc-plugin

Sub-generators (in beta mode)

Entity generator

Generates a new service entity, the Fetcher and the ListViewBuilder for this entity. You only need to specify a name and the fields you want in the entity.

  • Navigate to the package directory where you want the new entity to be created
    (e.g.: ~/cloudmc-todoist-plugin/src/main/java/com/cloudops/mc/plugin)
  • Run the generator as follows
> yo @cloudops/cloudmc-plugin:entity

? Entity Name (e.g.: Instance): Project

     _-----_     ╭──────────────────────────╮
    |       |    │  [id] and [name] fields  │
    |--(o)--|    │   are added to the new   │
   `---------´   │   entity - Project - by  │
    ( _´U`_ )    │          default         │
    /___A___\   /╰──────────────────────────╯
     |  ~  |     
   __'.___.'__   
 ´   `  |° ´ Y `

? Do you want to add a field (e.g.: networkId, cpus)? Yes
? Field name: parentId
? Field type: (Use arrow keys)
❯ UUID 
  String 
  int 
  boolean 
  Long 
  float 
  Date 
(Move up and down to reveal more choices)

? Do you want to add a field (e.g.: networkId, cpus)? No

     _-----_     ╭──────────────────────────╮
    |       |    │   Generated new entity   │
    |--(o)--|    │ Project with classes for │
   `---------´   │ its Fetcher and ListView │
    ( _´U`_ )    ╰──────────────────────────╯
    /___A___\   /
     |  ~  |     
   __'.___.'__   
 ´   `  |° ´ Y ` 

Operation generator

Generates the Operation and the ViewBuilder classes for an operation on a selected entity. You only need to specify the name of the operation.

  • Navigate to any directory in the project where there is an entity class annotated with @Entity
    (e.g.: ~/cloudmc-todoist-plugin/src/main/java/com/cloudops/mc/plugin/project)
  • Run the generator as follows
> yo @cloudops/cloudmc-plugin:operation

? Operation (e.g.: create, addNetwork): create
? Is it an operation for a CRUD action (i.e.: CREATE, DELETE, UPDATE)? Yes
? What is the specific CRUD operation? (Use arrow keys)
❯ CREATE 
  DELETE 
  UPDATE 
  NONE

     _-----_     ╭──────────────────────────╮
    |       |    │   Generated classes for  │
    |--(o)--|    │   operation [Create] on  │
   `---------´   │     entity [Project]     │
    ( _´U`_ )    ╰──────────────────────────╯
    /___A___\   /
     |  ~  |     
   __'.___.'__   
 ´   `  |° ´ Y `

? Operation (e.g.: create, addNetwork): setAsRecurring
? Is it an operation for a CRUD action (i.e.: CREATE, DELETE, UPDATE)? No

     _-----_     ╭──────────────────────────╮
    |       |    │   Generated classes for  │
    |--(o)--|    │         operation        │
   `---------´   │    [SetAsRecurring] on   │
    ( _´U`_ )    │     entity [Project]     │
    /___A___\   /╰──────────────────────────╯
     |  ~  |     
   __'.___.'__   
 ´   `  |° ´ Y ` 

Getting To Know Yeoman

  • Yeoman has a heart of gold.
  • Yeoman is a person with feelings and opinions, but is very easy to work with.
  • Yeoman can be too opinionated at times but is easily convinced not to be.
  • Feel free to learn more about Yeoman.

License

© CloudOps Inc.