2.0.15 • Published 3 years ago

@spotter-app/core v2.0.15

Weekly downloads
-
License
ISC
Repository
-
Last release
3 years 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

3 years ago

2.0.2

3 years ago

2.0.5

3 years ago

2.0.4

3 years ago

2.0.7

3 years ago

2.0.6

3 years ago

2.0.9

3 years ago

2.0.8

3 years ago

2.0.1

3 years ago

2.0.0

3 years ago

2.0.15

3 years ago

2.0.13

3 years ago

2.0.14

3 years ago

2.0.11

3 years ago

2.0.12

3 years ago

2.0.10

3 years ago

2.0.0-beta.64

3 years ago

2.0.0-beta.63

3 years ago

2.0.0-beta.62

3 years ago

2.0.0-beta.61

3 years ago

2.0.0-beta.60

3 years ago

2.0.0-beta.51

3 years ago

2.0.0-beta.50

3 years ago

2.0.0-beta.55

3 years ago

2.0.0-beta.54

3 years ago

2.0.0-beta.53

3 years ago

2.0.0-beta.52

3 years ago

2.0.0-beta.57

3 years ago

2.0.0-beta.56

3 years ago

2.0.0-beta.42

3 years ago

2.0.0-beta.41

3 years ago

1.2.0

4 years ago

1.2.8

4 years ago

1.2.7

4 years ago

1.2.6

4 years ago

1.2.5

4 years ago

1.2.4

4 years ago

1.2.3

4 years ago

1.2.2

4 years ago

1.2.1

4 years ago

1.2.12

4 years ago

1.2.13

4 years ago

1.2.10

4 years ago

1.2.11

4 years ago

1.2.16

4 years ago

1.2.17

4 years ago

1.2.14

4 years ago

1.2.15

4 years ago

2.0.0-beta.9

4 years ago

2.0.0-beta.8

4 years ago

2.0.0-beta.7

4 years ago

2.0.0-beta.40

4 years ago

2.0.0-beta.2

4 years ago

2.0.0-beta.1

4 years ago

2.0.0-beta.0

4 years ago

2.0.0-beta.6

4 years ago

2.0.0-beta.5

4 years ago

1.1.15

4 years ago

2.0.0-beta.4

4 years ago

1.1.14

4 years ago

2.0.0-beta.3

4 years ago

1.1.13

4 years ago

2.0.0-beta.33

4 years ago

2.0.0-beta.32

4 years ago

2.0.0-beta.31

4 years ago

2.0.0-beta.30

4 years ago

1.2.9

4 years ago

2.0.0-beta.22

4 years ago

1.2.41

4 years ago

1.2.42

4 years ago

1.2.40

4 years ago

1.2.45

4 years ago

2.0.0-beta.25

4 years ago

1.2.46

4 years ago

2.0.0-beta.24

4 years ago

1.2.43

4 years ago

2.0.0-beta.23

4 years ago

1.2.44

4 years ago

1.2.49

4 years ago

2.0.0-beta.28

4 years ago

1.2.47

4 years ago

1.2.48

4 years ago

2.0.0-beta.11

4 years ago

1.2.52

4 years ago

2.0.0-beta.10

4 years ago

1.2.53

4 years ago

1.2.50

4 years ago

1.2.51

4 years ago

2.0.0-beta.15

4 years ago

1.2.56

4 years ago

2.0.0-beta.14

4 years ago

1.2.57

4 years ago

2.0.0-beta.13

4 years ago

1.2.54

4 years ago

2.0.0-beta.12

4 years ago

1.2.55

4 years ago

2.0.0-beta.19

4 years ago

2.0.0-beta.18

4 years ago

2.0.0-beta.17

4 years ago

1.2.58

4 years ago

2.0.0-beta.16

4 years ago

1.2.18

4 years ago

1.2.19

4 years ago

1.2.20

4 years ago

1.2.23

4 years ago

1.2.24

4 years ago

1.2.21

4 years ago

1.2.22

4 years ago

1.2.27

4 years ago

1.2.28

4 years ago

1.2.26

4 years ago

1.2.29

4 years ago

1.2.30

4 years ago

1.2.31

4 years ago

1.2.34

4 years ago

1.2.35

4 years ago

1.2.32

4 years ago

1.2.33

4 years ago

1.2.38

4 years ago

1.2.39

4 years ago

1.2.36

4 years ago

1.2.37

4 years ago

1.1.9

4 years ago

1.1.8

4 years ago

1.1.7

4 years ago

1.1.12

4 years ago

1.1.11

4 years ago

1.1.10

4 years ago

1.1.6

4 years ago

1.1.5

4 years ago

1.1.4

4 years ago

1.1.1

4 years ago

1.1.0

4 years ago

1.1.3

4 years ago

1.1.2

4 years ago

1.0.19

4 years ago

1.0.18

4 years ago

1.0.17

4 years ago

1.0.16

4 years ago

1.0.20-dev.2

4 years ago

1.0.20-dev.1

4 years ago

1.0.20-dev.4

4 years ago

1.0.20-dev.3

4 years ago

1.0.22

4 years ago

1.0.21

4 years ago

1.0.20

4 years ago

1.0.20-dev.5

4 years ago

1.0.23

4 years ago

1.0.15

4 years ago

1.0.14

4 years ago

1.0.13

4 years ago

1.0.11

4 years ago

1.0.12

4 years ago

1.0.2

4 years ago

1.0.1

4 years ago

1.0.0

4 years ago

1.0.9

4 years ago

1.0.8

4 years ago

1.0.7

4 years ago

1.0.6

4 years ago

1.0.5

4 years ago

1.0.4

4 years ago

1.0.3

4 years ago

1.0.41

4 years ago

0.0.9

4 years ago

1.0.10

4 years ago

0.0.8

5 years ago

0.0.5

5 years ago

0.0.7

5 years ago

0.0.6

5 years ago

0.0.4

5 years ago

0.0.3

5 years ago

0.0.21

5 years ago

0.0.2-beta.8

5 years ago

0.0.2-beta.7

5 years ago

0.0.2-beta.6

5 years ago

0.0.2-beta.5

5 years ago

0.0.2-beta.4

5 years ago

0.0.2-beta.3

5 years ago

0.0.2-beta.2

5 years ago

0.0.2-beta.1

5 years ago

0.0.1

5 years ago