cerebro-command-router
TypeScript icon, indicating that this package has built-in type declarations

2.0.0 • Public • Published

Cerebro-Command-Router

A tool for CerebroApp developers

What's cerebro-command-router?

This is a utility for developing cerebro plugins.

Install & Use

Install the package in your project:

npm install cerebro-command-router
or
yarn add cerebro-command-router

Initial configuration

Import the CerebroRouter utility:

import CerebroRouter from "cerebro-command-router";

//or

const CerebroRouter = require("cerebro-command-router");

Configure the router by creating an instance with:

  • command: string - The main command of your app (one word)
  • term: string - The complete string query (view Cerebro documentation)
  • display: function - The cerebro display function (view Cerebro documentation)
const myRouter = new CerebroRouter({
	command: "your_command_here",
	term,
	display,
});

Create the routes for your subcommands

/*
CerebroRouter.route(command: string,
			displayElement: see_cerebro_documentation,
			options: object)
*/

myRouter.route("your_first_subcommand", {
	icon: icon,
	title: `Your title here`,
	getPreview: () => <OneGreatReactComponent />,
});

myRouter.route("your_second_subcommand", {
	icon: icon,
	title: `Other title here too :)`,
	getPreview: () => <OtherGreatReactComponent />,
});

The "Options" object.

For now, you can configure one interesting parameter: the autocompletion when you use the tab key. By default, when the subcommand is written with subcommand text, if tab key is pressed nothing will happen (term = term), but if autocompleteAll: false the result when tab key is pressed will be only command + subcommand.

Example:

With autocompleteAll deafult (true):

command + subcommand + some text —> command + subcommand + some text

Text written by user

Untitled

tab key pressed Resultant text

Untitled

With autocompleteAll false:

command + subcommand + some text —> command + subcommand

Text written by user

Untitled

tab key pressed

Resultant text

Untitled

Invalid subcommand routing

You can choose whether to show a bad subcommand message or to show nothing. By default, nothing will simply appear. To display a message you can use CerebroRouter.invalidRoute(displayElement: see_cerebro_documentation)

myRouter.invalidRoute({
	icon: icon,
	title: `Invalid Command :( `,
});

Untitled

⚠️ This method must be at the end of the plugin (after all the normal subcommand routes)

Get the text of a subcommand so that you can work with it

Sometimes, to work with a subcommand, you will need to know the rest of the text that the user has written. For example, in the cerebro-todoist plugin, after the command "tds new << rest of text >>", the rest of the text is added to a note. To do this, you can use the "getSubCommandText" function that you can import from the package itself.

import { getSubCommandText } from "cerebro-command-router";

//or

const { getSubCommandText } = require("cerebro-command-router");

console.log(getSubCommandText("ex com1 text and emoji 💫")); //"text and emoji 💫"

Full Example

You can consult a complete example in the "Examples" folder. Another real example can be found in the cerebro-todoist plugin repository

Related

License

MIT © Dubisdev

Package Sidebar

Install

npm i cerebro-command-router

Weekly Downloads

2

Version

2.0.0

License

MIT

Unpacked Size

13.7 kB

Total Files

7

Last publish

Collaborators

  • dubisdev