alexa-ability

0.12.0 • Public • Published

alexa-ability Build Status

An Alexa Skills Kit framework for node.

Features

  • Asynchronous middleware and intent handlers
  • Robust error handling
  • Easy access to session and slots data
  • Well tested
  • Integrates well with any framework

Related packages

Example (es5 version)

import { Ability, events } from 'alexa-ability';
import { handleAbility } from 'alexa-ability-lambda-handler';
 
// create our skill
const app = new Ability({
    applicationId: 'my-application-id'
});
 
 
// add middleware function that run before every request
app.use(function(req, next) {
    console.log('Handling:', req);
    next();
});
 
 
// handle LaunchRequest - "Alexa, launch MyApp"
app.on(events.launch, function(req, next) {
    const cardTitle = 'Greetings';
    const cardContent = 'Hello world!';
    const speech = (`
        <speak>
            Hello <break time="100ms" /> world
        </speak>
    `);
 
    req.show(cardTitle, cardContent).say('ssml', speech).send();
});
 
 
// handle SessionEndedRequest - "Alexa stop"
app.on(events.end, function(req, next) {
    console.log(`Session ended because: ${req.reason}`);
    req.say('Goodbye!').end();
});
 
 
// handle custom intents
app.on('MeaningOfLifeIntent', function(req, next) {
    asyncRequest(function(err) {
        if (err) return next(err);
        req.say('42').end();
    });
});
 
 
// catches any unhandled requests
app.use(function(req, next) {
    req.say('I don\'t know what to say').end();
});
 
 
// gracefully handles any uncaught errors
app.use(function(err, req, next) {
    req.say('Uhoh, something went wrong').end();
});
 
 
// export as a lambda handler
export const handler = handleAbility(app);

Package Sidebar

Install

npm i alexa-ability

Weekly Downloads

32

Version

0.12.0

License

MIT

Last publish

Collaborators

  • nickclaw