/voice-assistant-js

one client library for "alexa" "api-ai" "google-actions"

Primary LanguageTypeScriptMIT LicenseMIT

voice-assistant-js

one client library to rule them all (api-ai, google-action, alexa, ...)

Build Status Coverage Status npm GitHub license

Installation

$ yarn add voice-assistant-js

then you should install the client library you want.

  • actions-on-google and express if you want to use api-ai or google-actions

  • alexa-sdk if you want to use alexa

Usage

Implementations

  • alexa sdk
  • google action sdk
  • api-ai over google-action

on aws lamda

make sure you use at least node-6.10

require('reflect-metadata')
const lambda = require('voice-assistant-js').lambda

class IntentClass {
  /**
   * @param {IEvent} event
   */
  say (event) {
    event.tell('say')
  }
  
  /**
   * @param {IEvent} event
   */
  ask (event) {
    event.ask('ask')
  }
}

const mapping = {
  say: IntentClass,
  ask: IntentClass
}

exports.handler = lambda(mapping)

so if you the lamda is invoked with the intent ask the function IntentClass.ask is called...

on google-cloud-functions

//TODO

Test

$ yarn test

TODOS

  • event construction with DI factory (so we can get rid of the specific handler classes)
  • i18n
  • cards
  • forms
  • dialogs
  • error-handling
  • google-cloud-function