xnotifications

0.0.3 • Public • Published

Getting Started

Usage: Creating Schema

const { Schema } = require('xnotifications')

const builder = new Schema()

builder.create('welcome', {
    en: () => `hello there!`,
    zh: () => `你好!`
})

builder.create('invalid', {
    en: (noun) => `invalid ${noun}!`,
    zh: noun => `${noun}有误!`
})

const schema = builder.export()

Usage: Creating Alert

const alert = new Alert(schema)

alert.create('invalid','username', [
    {
        label:'register', 
        url:'/account/register/'
    }
])

console.log(alert)
// output

{
  state: 'alert',
  lang: 'en',
  timeout: 0,
  message: 'invalid username!',
  actions: [
       {
           label: 'register', 
           url: '/account/register/'
       }
  ]
}

Usage: Creating Notification

const note = new Notification(schema)

note.create('invalid','username')

const withSate = note.create('invalid','username', 'info')

console.log(note)
console.log(withSate)
// output of note

{
  state: 'error',
  lang: 'en',
  timeout: 6000,
  message: 'invalid username!'
}

// output of withSate

{
  state: 'info',
  lang: 'en',
  timeout: 6000,
  message: 'invalid username!'
}

Usage: Creating Validation

const validation = new Validation(schema)

validation.load('invalid','username', 'username')
validation.load('invalid','password', 'password')
validation.load('invalid','userId', 'user_id')

console.log(validation)
// output of validation
{
  state: 'validation',
  lang: 'en',
  timeout: 6000,
  messages: [
    { message: 'invalid username!', key: 'username' },
    { message: 'invalid password!', key: 'password' },
    { message: 'invalid userId!', key: 'user_id' }
  ]
}

Usage in Express: Register on as middleware

const builder = new Schema()

// define shemas here ...

const schema = builder.export()
const notif = require('xnotifications')(schema)
app.use(notif)

Usage in Express: Access in routes

const someExpressRoute = (req, res, next) => {

    // notifications
    req.notify('invalid','username')

    // alert
    req.alert('invalid','username', [
        {
            label:'register', 
            url:'/account/register/'
        }
    ])

    // notifications
    req.validation.load('invalid','username')
    req.validation.load('invalid','password')

}

Readme

Keywords

none

Package Sidebar

Install

npm i xnotifications

Weekly Downloads

1

Version

0.0.3

License

MIT

Unpacked Size

7.05 kB

Total Files

9

Last publish

Collaborators

  • chen7david