0.2.10 • Published 10 years ago

archy-sdk v0.2.10

Weekly downloads
48
License
-
Repository
github
Last release
10 years ago

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();

Try command

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();

Try command

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'
  }]
}
0.2.10

10 years ago

0.2.9

10 years ago

0.2.8

10 years ago

0.2.7

10 years ago

0.2.6

10 years ago

0.2.5

10 years ago

0.2.4

10 years ago

0.2.3

10 years ago

0.2.2

10 years ago

0.2.1

10 years ago

0.2.0

10 years ago

0.1.3

10 years ago

0.1.2

10 years ago

0.1.1

10 years ago

0.1.0

10 years ago