2.0.15 • Published 1 year ago

@spotter-app/core v2.0.15

Weekly downloads
-
License
ISC
Repository
-
Last release
1 year ago

@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

You need Node.js and Spotter.

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 to index.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.0.3

2 years ago

2.0.2

2 years ago

2.0.5

1 year ago

2.0.4

1 year ago

2.0.7

1 year ago

2.0.6

1 year ago

2.0.9

1 year ago

2.0.8

1 year ago

2.0.1

2 years ago

2.0.0

2 years ago

2.0.15

1 year ago

2.0.13

1 year ago

2.0.14

1 year ago

2.0.11

1 year ago

2.0.12

1 year ago

2.0.10

1 year ago

2.0.0-beta.64

2 years ago

2.0.0-beta.63

2 years ago

2.0.0-beta.62

2 years ago

2.0.0-beta.61

2 years ago

2.0.0-beta.60

2 years ago

2.0.0-beta.51

2 years ago

2.0.0-beta.50

2 years ago

2.0.0-beta.55

2 years ago

2.0.0-beta.54

2 years ago

2.0.0-beta.53

2 years ago

2.0.0-beta.52

2 years ago

2.0.0-beta.57

2 years ago

2.0.0-beta.56

2 years ago

2.0.0-beta.42

2 years ago

2.0.0-beta.41

2 years ago

1.2.0

2 years ago

1.2.8

2 years ago

1.2.7

2 years ago

1.2.6

2 years ago

1.2.5

2 years ago

1.2.4

2 years ago

1.2.3

2 years ago

1.2.2

2 years ago

1.2.1

2 years ago

1.2.12

2 years ago

1.2.13

2 years ago

1.2.10

2 years ago

1.2.11

2 years ago

1.2.16

2 years ago

1.2.17

2 years ago

1.2.14

2 years ago

1.2.15

2 years ago

2.0.0-beta.9

2 years ago

2.0.0-beta.8

2 years ago

2.0.0-beta.7

2 years ago

2.0.0-beta.40

2 years ago

2.0.0-beta.2

2 years ago

2.0.0-beta.1

2 years ago

2.0.0-beta.0

2 years ago

2.0.0-beta.6

2 years ago

2.0.0-beta.5

2 years ago

1.1.15

2 years ago

2.0.0-beta.4

2 years ago

1.1.14

2 years ago

2.0.0-beta.3

2 years ago

1.1.13

2 years ago

2.0.0-beta.33

2 years ago

2.0.0-beta.32

2 years ago

2.0.0-beta.31

2 years ago

2.0.0-beta.30

2 years ago

1.2.9

2 years ago

2.0.0-beta.22

2 years ago

1.2.41

2 years ago

1.2.42

2 years ago

1.2.40

2 years ago

1.2.45

2 years ago

2.0.0-beta.25

2 years ago

1.2.46

2 years ago

2.0.0-beta.24

2 years ago

1.2.43

2 years ago

2.0.0-beta.23

2 years ago

1.2.44

2 years ago

1.2.49

2 years ago

2.0.0-beta.28

2 years ago

1.2.47

2 years ago

1.2.48

2 years ago

2.0.0-beta.11

2 years ago

1.2.52

2 years ago

2.0.0-beta.10

2 years ago

1.2.53

2 years ago

1.2.50

2 years ago

1.2.51

2 years ago

2.0.0-beta.15

2 years ago

1.2.56

2 years ago

2.0.0-beta.14

2 years ago

1.2.57

2 years ago

2.0.0-beta.13

2 years ago

1.2.54

2 years ago

2.0.0-beta.12

2 years ago

1.2.55

2 years ago

2.0.0-beta.19

2 years ago

2.0.0-beta.18

2 years ago

2.0.0-beta.17

2 years ago

1.2.58

2 years ago

2.0.0-beta.16

2 years ago

1.2.18

2 years ago

1.2.19

2 years ago

1.2.20

2 years ago

1.2.23

2 years ago

1.2.24

2 years ago

1.2.21

2 years ago

1.2.22

2 years ago

1.2.27

2 years ago

1.2.28

2 years ago

1.2.26

2 years ago

1.2.29

2 years ago

1.2.30

2 years ago

1.2.31

2 years ago

1.2.34

2 years ago

1.2.35

2 years ago

1.2.32

2 years ago

1.2.33

2 years ago

1.2.38

2 years ago

1.2.39

2 years ago

1.2.36

2 years ago

1.2.37

2 years ago

1.1.9

3 years ago

1.1.8

3 years ago

1.1.7

3 years ago

1.1.12

3 years ago

1.1.11

3 years ago

1.1.10

3 years ago

1.1.6

3 years ago

1.1.5

3 years ago

1.1.4

3 years ago

1.1.1

3 years ago

1.1.0

3 years ago

1.1.3

3 years ago

1.1.2

3 years ago

1.0.19

3 years ago

1.0.18

3 years ago

1.0.17

3 years ago

1.0.16

3 years ago

1.0.20-dev.2

3 years ago

1.0.20-dev.1

3 years ago

1.0.20-dev.4

3 years ago

1.0.20-dev.3

3 years ago

1.0.22

3 years ago

1.0.21

3 years ago

1.0.20

3 years ago

1.0.20-dev.5

3 years ago

1.0.23

3 years ago

1.0.15

3 years ago

1.0.14

3 years ago

1.0.13

3 years ago

1.0.11

3 years ago

1.0.12

3 years ago

1.0.2

3 years ago

1.0.1

3 years ago

1.0.0

3 years ago

1.0.9

3 years ago

1.0.8

3 years ago

1.0.7

3 years ago

1.0.6

3 years ago

1.0.5

3 years ago

1.0.4

3 years ago

1.0.3

3 years ago

1.0.41

3 years ago

0.0.9

3 years ago

1.0.10

3 years ago

0.0.8

4 years ago

0.0.5

4 years ago

0.0.7

4 years ago

0.0.6

4 years ago

0.0.4

4 years ago

0.0.3

4 years ago

0.0.21

4 years ago

0.0.2-beta.8

4 years ago

0.0.2-beta.7

4 years ago

0.0.2-beta.6

4 years ago

0.0.2-beta.5

4 years ago

0.0.2-beta.4

4 years ago

0.0.2-beta.3

4 years ago

0.0.2-beta.2

4 years ago

0.0.2-beta.1

4 years ago

0.0.1

4 years ago