archy-sdk
v0.2.10
Published
```bash $ npm i archy-sdk ``` ## Using ### Creating command To create command you can just specify function, that returns array of objects you want to show in app ```js const archy = require('archy-sdk');
Downloads
7
Readme
Installation
$ npm i archy-sdk
Using
Creating command
To create command you can just specify function, that returns array of objects you want to show in app
const archy = require('archy-sdk');
archy.Server(() => [{
body: {
text: 'hello world'
}
}]).start();
Multiple commands
archy.Server({
commands: {
first: () => []
second: () => []
}
});
will host two command on host/first and host/second urls
Default command
archy.Server({
commands: {
first: () => []
second: () => []
}
defaultCommand: 'second'
});
Here is explanation of what default command means to developer
Providing argument to command
const archy = require('archy-sdk');
archy.Server({
commands: {
cmd: {
handler: (request) => {
const {args} = request;
switch(args.type) {
case 'arg':
return [{
title: `arg = ${args.value}`
}];
default:
return [{
title: 'no arguments'
}];
}
},
args: {
arg: ['value', 'another value'],
}
}
}
}).start();
Provide argument suggestions based on user request
{
commands: {
handler: ({args}) => {
switch (args.type) {
case 'arg':
return [1,2,3].map(i => i+args.value)
default:
return [1,2,3]
},
//by default this argument has no valid values
args: {
arg: []
},
//result will be [1,2,3] for call without arguments
//in this example every item is passed as suggestion for argument value
genSuggestedArgs: (request, result) => ({
arg: result
}),
//this function will be called for each item returned from handler
mapResultToArchy: d => ({title: d}),
}
}
Share suggestions between different commands
you can declare common arguments in root object and link them to commands by name
{
args: {
shared: ['shared','values']
}
commands: {
first: {
handler: () => []
args: {
a1: ['value'],
a2: 'shared'
}
}
second: {
handler: () => [],
args: {
shared: 'shared'
}
}
}
}
split argument value and view
args: {
entity: [{
value: 'entityId',
displayValue: 'entityName'
}]
}