New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

correspondent

Package Overview
Dependencies
Maintainers
1
Versions
6
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

correspondent

Keep text consistent across your app.

  • 1.0.1
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
2
decreased by-84.62%
Maintainers
1
Weekly downloads
 
Created
Source

What?

Correspondent helps you keep user-facing text consistent across your application by allowing you to store that text in a single JSON file.

This approach works especially well for:

  • API response messages
  • Notification text
  • Error/success messages

Why?

More specifically....

Why do I need this?

I made this because I need to keep text consistent across a large app that I'm working on. If you don't have that need, you might not need this!

Why not just import a JSON file?

Correspondent introduces a few advantages over a static JSON files:

  • Variables, Prefixes & Postfixes!
  • Safety. If you reference a message that doesn't exist, Correspondent will fallback to an default message.
  • Multiple message types in a single file.

Installation

npm install correspondent --save

Usage & Demo

The idea behind Correspondent is best expressed through a demo.

Let's say you want to create some response messages for your API. You could define them in a file called success.json like this:

{
  "prefix":"Success! ",
  "messages":[
    {"USER_CREATED":"User: {0} was created"},
    {"USER_UPDATED":"User: {0} was updated"}
  ],
  "postfix": ".",
  "unknown":"The action was completed"
}

By keeping all user-facing success messages in this file, it's easy to ensure that they maintain consistent content and style.

Accessing the messages you've just defined is easy:

//Note that the path to success.json is relative to your project, not the location of the Correspondent module.
let success = require('correspondent')('./success.json')

success('USER_CREATED','alex') // Returns: "Success! User: Alex was created."

While the gist of the message we're sending is clear to the programmer, its actual text is handled by Correspondent through the JSON file defined outside of the code.

What if you wanted to store more than just success messages with Correspondent?

You could just create another instance of Correspondent for that new message type. For example, building off of our earlier code:

//What we had before
let success = require('correspondent')('./success.json')
let err = require('correspondent')('./error.json')

success('USER_CREATED','alex') // Returns: "Success! User: Alex was created."

err('NOT_FOUND') // Returns: the message in error.json that has the key 'NOT_FOUND'

Or better yet, you can keep both success and error messages in a single JSON file. To do that, we need to modify our JSON just a bit. Let's make a new file called messages.json

{
  "success":{
    "prefix":"Success! ",
    "messages":[
      {"USER_CREATED":"User: {0} was created"},
      {"USER_UPDATED":"User: {0} was updated"}
    ],
    "postfix": ".",
    "unknown":"The action was completed"
  },
  "error":{
    "prefix":"Error! ",
    "messages":[
      {"NOT_FOUND":"The user could not be found"}
    ],
    "postfix": ".",
    "unknown":"Something went wrong"
  }
}

Now, here's how we'd access both message types:

let msg = require('correspondent')('./messages.json')

msg('success','USER_CREATED','alex') // Returns: "Success! User: Alex was created."

msg('error','NOT_FOUND') // Returns: "Error! The user could not be found."

You can use either method mentioned above to store an arbitrary number of message types.

Etc.

Philosophy

As I mentioned above, Correspondent was created to meet my own needs. Any updates to the module will be consistent with that goal, as I am using it in production.

Because Correspondent is basically an incremental improvement over using a plain JSON file, I don't want to introduce the problems associated with additional dependencies including lack of control, stability, bloat, etc. Thus, it will never make us of any dependencies.

Coming Eventually

  • Tests, so that its more production-friendly.
  • Probably nothing else... there's just not that much to it.

License

Correspondent is distributed under the MIT license by Alex Arena.

FAQs

Package last updated on 02 Mar 2017

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc