0.2.10 • Published 8 years ago

archy-sdk v0.2.10

Weekly downloads
48
License
-
Repository
github
Last release
8 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

8 years ago

0.2.9

8 years ago

0.2.8

8 years ago

0.2.7

8 years ago

0.2.6

8 years ago

0.2.5

8 years ago

0.2.4

8 years ago

0.2.3

8 years ago

0.2.2

8 years ago

0.2.1

8 years ago

0.2.0

8 years ago

0.1.3

8 years ago

0.1.2

8 years ago

0.1.1

8 years ago

0.1.0

8 years ago