hapi-stateless-notifications

4.1.0 • Public • Published

hapi-stateless-notifications

A plugin to handle saving notifications to pass to a following page, so you can redirect after post and all those niceties without having to fall back to session-associated flash messages.

Use

// step 0: set up a plugin that gives a request.redis property that's a
// client connection, ready to use for this request. We steal the
// connection from `catbox-redis`.

server.register({
    register: require('hapi-stateless-notifications'),
    options: {
        queryParameter: 'notice',
        prefix: 'notice:',
        timeout: 3600
    }
});

The options are optional.

options.queryParameter controls which query parameter will cause the plugin to look up a token and defaults to 'notice' options.prefix controls the key prefix in redis, and defaults to 'notice:' options.timeout controls the the expiration timeout of the key in redis, in seconds. The default is 3600, that is, one hour.

Then in a handler:

reply.saveNotifications([
    Promise.resolve('Success message here ...'),
    Promise.reject(new Error('Error message here ...')),
]).then(function (token) {
    // if there's a token, put it in the query of the page you load next as `notice={token}`
    // Otherwise, there's nothing to do.
});

Or more completely:

reply.redirectAndNotify([
    Promise.resolve('Success message here ...'),
    Promise.reject(new Error('Error message here ...')),
], '/next-page')

or if the failure path leads a different place:

reply.redirectAndNotify([
    Promise.resolve('Success message here ...'),
    Promise.reject(new Error('Error message here ...')),
], { success: '/next-page', failure: '/this-page' })

/hapi-stateless-notifications/

    Package Sidebar

    Install

    npm i hapi-stateless-notifications

    Weekly Downloads

    7

    Version

    4.1.0

    License

    ISC

    Last publish

    Collaborators

    • shmam
    • dipeshpatel01
    • kartykp
    • jithinpg
    • reggi
    • karenjli
    • tayvongh
    • navin22
    • dhei
    • tiagonbotelho
    • hashtagchris
    • nishantms
    • feelepxyz.github
    • monishcm
    • jumoel
    • trevrosen
    • fritzy
    • npm
    • npmci
    • saquibkhan
    • gar
    • mylesborins