sonus icon indicating copy to clipboard operation
sonus copied to clipboard

registerCommand Method: annayang

Open sharmmoh1983 opened this issue 6 years ago • 3 comments

Hey

I am trying to add commands using Sonus.annyang.addCommands(commands);

const commands = {
'hello': function () {
console.log('You will obey');
},
'(give me) :flavor ice cream': function (flavor) {
console.log('Fetching some ' + flavor + ' ice ceam for you sr')
},
'turn (the)(lights) :state (the)(lights)': function (state) {
console.log('Turning the lights', (state == 'on') ? state : 'off')
}
}

This is working fine. But in my one of my application, I am not able to create above commands JSON object dynamically or static way because of some limitation so wanted to have a method in lib/annyang-core to add Commands to annyang:

file : lib/annyang-core.js

method : registerCommand(phrase , callback function)

which will add commands one by one to annayang

sharmmoh1983 avatar Sep 14 '17 05:09 sharmmoh1983

Pretty sure you can use the addCommands() function multiple time with a single command object. They will not be overwritten. For example

const command1 = {
  'hello': function () {
    console.log('You will obey');
  }
}

Sonus.annyang.addCommands(command1)

const command2 = {
  '(give me) :flavor ice cream': function (flavor) {
    console.log('Fetching some ' + flavor + ' ice ceam for you sr')
  }
}

Sonus.annyang.addCommands(command2)

Does that satisfy what you're trying to accomplish?

evancohen avatar Sep 14 '17 05:09 evancohen

No .. The issue is command1 structure is not getting created and added properly because of explicit callback function in json I want to explicitly send phrase and callback in a function to add the command

sharmmoh1983 avatar Sep 14 '17 06:09 sharmmoh1983

That will help me to add commands at runtime

sharmmoh1983 avatar Sep 14 '17 06:09 sharmmoh1983