@kayako/kit

Kayako command line tool for creating custom apps

Stats

StarsIssuesVersionUpdatedCreatedSize
@kayako/kit
1.0.114 years ago4 years agoMinified + gzip package size for @kayako/kit in KB

Readme

KIT CLI

The KIT Cli is the command line tool to create, manage and publish custom apps with Kayako.

Requirements

This project makes use of adonis ace and requires atleast Node.js version 8.0 or greater since this project makes use of async/await.

Setup

Follow below defined steps to setup this project.

  1. Clone the repo from Github.
  2. Run npm install to install all required dependencies.
  3. Run node index.js to make sure all existing commands runs fine.

Creating new command

All commands lives inside src/Commands directory and automatically get's registered with ace.

Also there is an example command saved inside example/Command.js file as a reference.

Ace reference

All ace commands are ES6 classes with couple of mandatory static properties and handle method.

'use strict'

const { Command } = require('@adonisjs/ace')

class MyCommand extends Command {
  static get signature () {
    return 'command:name'
  }

  static get description () {
    return 'Command description'
  }

  async handle (args, options) {
  }
}

module.exports = MyCommand



Signature

Signature defines the command name and it's requirements. All required/optional arguments and flags are defined within the signature.

For example:

Required argument

static get signature () {
  return 'new { projectPath }'
}

Optional argument

static get signature () {
  return 'new { projectPath? }'
}

Argument Description

static get signature () {
  return 'new { projectPath : Path to directory where to create the project }'
}

Flags

Flags starts with --.

static get signature () {
  return `
    new
    { projectPath }
    { --skip-install : Do not install dependencies }
  `
}



Description

The command description shown within help output.

Handle method

The handle method is called when the command is executed. It will receive all the arguments and flags as parameters.

await handle (args, options) {
  console.log(args.projectName)
  console.log(options.skipInstall)
}

If you find any bugs or have a feature request, please open an issue on github!

The npm package download data comes from npm's download counts api and package details come from npms.io.