JSPM

  • Created
  • Published
  • Downloads 9
  • Score
    100M100P100Q60095F
  • License MIT

utility functions for ask-sdk

Package Exports

  • ask-utils

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (ask-utils) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

Utility functions for ask-sdk

Build Status npm version

Getting started

$ npm i -S ask-utils

Usage

const { randomResponse, intentHandlers, slotManager, getHandlerInput } = require('ask-utils')

some function can check example usage at wiki. (https://github.com/hideokamoto/ask-utils/wiki/Test-Utilities)[https://github.com/hideokamoto/ask-utils/wiki/Test-Utilities]

randomResponse

We can easy create random response in your Alexa skill using ask-sdk.

const { randomResponse } = require('ask-utils')
const errorMessages = [
  'I can not here what you say, please say again.',
  'Please say again.',
  "I'm sorry, please tell me again"
]

const ErrorHandler = {
  canHandle () {
    return true
  },
  handle (handlerInput, error) {
    console.log(`Error handled: ${error.message}`)
    const message = randomResponse.getRandomMessage(errorMessages)
    return handlerInput.responseBuilder
      .speak(message)
      .reprompt(message)
      .getResponse()
  }
}

intentHandlers

We can easy write canHandle function by using intentHandlers.canHandle function.

const HelpIntentHandler = {
  canHandle (handlerInput) {
    return intentHandlers.canHandle(handlerInput, 'IntentRequest', 'AMAZON.HelpIntent')
  },
  handle (handlerInput) {
    const speechText = 'This is example skill'

    return handlerInput.responseBuilder
      .speak(speechText)
      .reprompt(speechText)
      .withSimpleCard(SKILL_NAME, speechText)
      .getResponse()
  }
}

functions

const HelpIntentHandler = {
  canHandle (handlerInput) {
    return intentHandlers.canHandle(handlerInput, 'IntentRequest', 'AMAZON.HelpIntent')
  },
  handle (handlerInput) {
    // same as const request = handlerInput.requestEnvelope.request
    const request = getRequest(handlerInput)

    // same as const dialogState = handlerInput.requestEnvelope.request.dialogState
    const dialogState = getDialogState(handlerInput)

    // same as const intent = handlerInput.requestEnvelope.request.intent
    const intent = getIntent(handlerInput)

slotManager (Beta)

Easy to get intent slot value.

const ExampleIntentHandler = {
  canHandle (handlerInput) {
    return intentHandlers.canHandle(handlerInput, 'IntentRequest', 'ExampleIntent')
  },
  handle (handlerInput) {
    const yourName = slotManager.getSlotValueByName(handlerInput, 'nameSlot')
    const speechText = `Hello ${yourName} ! Welcome to our skill !`

    return handlerInput.responseBuilder
      .speak(speechText)
      .reprompt(speechText)
      .withSimpleCard(SKILL_NAME, speechText)
      .getResponse()
  }
}

development

$ git clone git@github.com:hideokamoto/ask-utils.git
$ cd ask-utils
$ npm i

test

$ npm test

Lint

$ npm run lint

or

$ npm run lint -- --fix