@spotter-app/core v2.0.15
@spotter-app/core
This library contains methods for communication between external plugins and Spotter.
Plugins are cli applications, Spotter calls their cli commands and parses a response.
Prerequisites
Usage
- Initialize plugin
mkdir spotter-example-plugin && cd $_ && touch index.js
- Install
@spotter-app/core
npm init && npm i --save @spotter-app/core
- Add
"bin": "index.js"
and"type": "module"
to package.json - Add
@spotter-app/core
imports toindex.js
and do your thing (see example bellow). - Publish package to npm
npm publish
- Install plugin in Spotter:
plugins <tab> spotter-example-plugin <enter>
Example
import { onInit, registerOptions, onAction } from '@spotter-app/core';
onInit(() => {
registerOptions([{
title: 'Have a go',
action: 'haveAGoAction',
}]);
});
onAction('haveAGoAction', () => {
// Have a go logic here
});
API
onInit((command: InputCommand) => Option[] | Promise<Option[]> | void)
Runs when Spotter is first opened.
onInit(() => {
//
});
onPrefix(prefix: string | string[], callback(command: InputCommand) => Option[] | Promise<Option[]>)
Runs when Spotter query starts with prefix. Callback should return options to render.
registerOptions(Option[])
Registers options in Spotter database
Option
Displays in Spotter results
interface Option {
title: string,
icon: string | { uri: string },
action: string | {
name: string,
arguments: any[],
},
onQueryAction: string | {
name: string,
arguments: any[],
},
}
onAction(actionName: string, (...args: any[] | query: string) => void)
Runs when option with action
selected and pressed
Runs callback when passed action name has been selected in Spotter options.
Callback runs with query: string
if no arguments were passed.
/* Action without arguments (with query argument by default):
* {
* title: 'Have a go',
* action: 'haveAGoAction'
* }
*/
onAction('haveAGoAction', (query) => {
//
});
/* Action with arguments:
* {
* title: 'Have a go',
* action: {
* name: 'haveAGoAction'
* arguments: ['myArgument']
* }
* }
*/
onAction('haveAGoAction', (myArgument) => {
//
});
onQueryAction (actionName: string, (...args: any[] | query: string) => void)
Runs when option with onQueryAction
selected and pressed (uses to "open" child option menu)
Runs callback when passed action name has been selected in Spotter options.
Callback runs with query: string
if no arguments were passed.
/* Action without arguments (with query argument by default):
* {
* title: 'Have a go',
* onQueryAction: 'haveAGoAction'
* }
*/
onQueryAction('haveAGoAction', (query) => {
//
});
/* Action with arguments:
* {
* title: 'Have a go',
* onQueryAction: {
* name: 'haveAGoAction'
* arguments: ['myArgument']
* }
* }
*/
onQueryAction('haveAGoAction', (myArgument) => {
//
});
2 years ago
2 years ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
2 years ago
2 years ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago