Learn about our RFC process, Open RFC meetings & more.Join in the discussion! »

message-dictionary

2.0.4 • Public • Published

message-dictionary

NPM

npm version Build Status Coverage Status Known Vulnerabilities dependencies Status License NPM download/month NPM download total
A Simple Message Dictionary Manager for NodeJS (Multi Language)

Background

When we create a Rest API, sometimes we need to standardize the default app messages (ex. the error messages) which is support namespace and internationalization.

Install using NPM

$ npm install message-dictionary

Usage

const message = require('message-dictionary');
 
var config = {
    dirPath: require('path').join('./locales'),  // Required
    namespace: 'app'
}
 
// Load Synchronous
message.init(config).load();
 
// Or Load Asynchronous
message.init(config).reload();

Note:

  • dirPath is required.
  • init(object) is to set the configuration.
  • load() is to load locales file data into memory (Synchronous).
  • reload(callback) is to load locales file data into memory (Asynchronous). Callback is optional.
  • This library is working like singleton. Once this called, this will shared globally, so you don't need to always load and re-init.

Get List

console.log(message.list());
 
// Output
// []

The result output above is [] because you have no any exists data messages.
So let's us create one data. See below.

Add Message

message.addMessage('EX001','en','Just example data!','',function(err,data) {
    if(data.status == true) {
        console.log(msg.list());
 
        // output
        // [ { code:'EX001', message: { en: 'Just example data!' } } ]
    }
});
 
// or with more information
message.addMessage('EX001','en','Just example data!',{user:'john'},function(err,data) {
   if(data.status == true) {
        console.log(message.list());
 
        // output
        // [ { code:'EX001', message: { en: 'Just example data!' }, user: 'john' } ]
    }
});

Update Message

message.updateMessage('EX001','en','Just update data!','',function(err,data) {
    if(data.status == true) {
        console.log(message.list());
 
        // output
        // [ { code:'EX001', message: { en: 'Just update data!' } } ]
    } 
});
 
// or with more information
message.updateMessage('EX001','en','Just update data!',{user:'doe'},function(err,data) {
    if(data.status == true) {
        console.log(message.list());
 
        // output
        // [ { code:'EX001', message: { en: 'Just update data!' }, user:'doe' } ]
    }
});

Get Message

console.log(message.get('EX001', 'en'));
 
// output
// { code:'EX001', message: 'Just update data!', user:'doe' }

Delete Message Locale

message.deleteMessageLocale('EX001', 'en',function(err,data) {
    if(data && data.status == true) {
        console.log(message.list());
 
        // output
        // if you have only one records and only one locale, then it will return 
        // [ { code:'EX001', message: {}, user: 'doe' } ]
    } 
});

Delete Message

message.deleteMessage('EX001',function(err,data) {
    if(data && data.status == true) {
        console.log(message.list());
 
        // output
        // if you have only one records, then it will return []
    } 
});

Documentation

For more features, updates and examples, Please see here.

Unit Test

If you want to play around with test

$ npm test

Install

npm i message-dictionary

DownloadsWeekly Downloads

3

Version

2.0.4

License

MIT

Unpacked Size

35 kB

Total Files

9

Last publish

Collaborators

  • avatar