notis

schema.js ```js module.exports = {

Usage no npm install needed!

<script type="module">
  import notis from 'https://cdn.skypack.dev/notis';
</script>

README

Notis

1. Defining a new Schema

schema.js

module.exports = {

    /* CRUD */ 

    created: (noun) =>`successfully created new ${noun}!`,
    create_failed: (noun) =>`faild to create new ${noun}!`,
    updated: (noun) =>`successfully updated ${noun}!`,
    update_faild: (noun) =>`faild to update ${noun}!`,
    deleted: (noun) =>`successfully deleted ${noun}!`,
    delete_faild: (noun) =>`faild to delete ${noun}!`,
}

2. Initialize Notis

const { Notis, schema, notisexpress, cargoexpress } = require('notis')

const notis = new Notis(schema.join())

3. note()

note returns a message obeject.

const inform = notis('names','david', 'info')

console.log(inform)

output


inform: { 
    state: 'info', 
    lang: 'zh', 
    timeout: 30, 
    message: '你好david!'
}

4. validation

alerts is an object that has a load() and render() method.


for(let item of list){
    const {code, data, label} = item
    notis.load(code, data, label)
}

console.log(validation)

  • output:

validation: {
  state: 'validation',
  messages: [
    { message: '你好some-name!', key: 'username' },
    { message: 'some-password有误!', key: 'password' }
  ]
}

5. Express Middleware Example

Note: if you wish to set the langue you will have set a lang property on your request object before instantiating notis.


// mount on express app
// app.use(config) this route is used to set req.lang to your lang choice on each request.
app.use(notisexpress(schema.joi))

- note()

// accessing in express route

const SomeExpressRoute = async (req, res, next) => {
    
    const message = req.notis('invalid', 'username')
    
    next()
}

  • output:

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

- validation()

// accessing in express route

const SomeExpressRoute = async (req, res, next) => {
    
    
    for(let errof errors){
        req.notis.laod(err.name, err.label, err.key)
    }
    
    next()
}

  • output:

{
  "state": "validation",
  "status": 422,
  "messages": [
    {
      "key": "miln",
      "message": "name is already in use!"
    },
    {
      "key": "miln",
      "message": "name is already in use!"
    }
  ]
}