# messages-factory

> Define your log messages in a dedicated file, then use them by their code

Latest version **1.0.2** (published 2016-10-23) · MIT license · 0 weekly downloads

## Install

```sh
npm install messages-factory
pnpm add messages-factory
yarn add messages-factory
bun add messages-factory
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.2 |
| Published | 2016-10-23 |
| First published | 2016-10-23 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Node | >=6.0.0 |
| Dependencies | 0 |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | nauwep |
| Maintainers | nauwep |
| Keywords | message, log |

## Links

- npm: https://www.npmjs.com/package/messages-factory
- Repository: https://github.com/nauwep/messages-factory
- Homepage: https://github.com/nauwep/messages-factory#readme
- Issues: https://github.com/nauwep/messages-factory/issues
- npm.io page: https://npm.io/package/messages-factory

## Alternatives

- [cli-color](https://npm.io/package/cli-color.md) — 3.4M weekly downloads
- [log](https://npm.io/package/log.md) — 1.3M weekly downloads
- [logstash-client](https://npm.io/package/logstash-client.md) — 4.5K weekly downloads
- [@nocobase/plugin-logger](https://npm.io/package/@nocobase/plugin-logger.md) — 2.0K weekly downloads
- [child-process-debug](https://npm.io/package/child-process-debug.md) — 695 weekly downloads

## Recent versions

- 1.0.2 (latest) — 2016-10-23
- 1.0.1 — 2016-10-23
- 1.0.0 — 2016-10-23

## README

# MessagesFactory

Define your log messages in a dedicated file, then use them by their code

[![npm](https://img.shields.io/npm/v/messages-factory.svg)](https://www.npmjs.com/package/messages-factory)
[![node](https://img.shields.io/node/v/messages-factory.svg)]()
[![Travis](https://img.shields.io/travis/nauwep/messages-factory.svg)](https://travis-ci.org/nauwep/messages-factory)
[![Coveralls](https://img.shields.io/coveralls/nauwep/messages-factory.svg)](https://coveralls.io/github/nauwep/messages-factory)


## Overview

MessagesFactory allows defining a set of message in a centralized place (a JSON file, for instance) to, then, be used anywhere in your app.
It's especially useful when a same message is used multiple times, updating its content will be done once.

## Usage

Install from npm

```
npm install messages-factory
```

Require in your code

```javascript
const MessagesFactory = require('messages-factory');
```

Manage your messages in an Array with Objects providing a `code` and `message` properties

```javascript
const messageDefinitions = [{
    code: 'M001',
    message: '1st message'
}, {
    code: 'M002',
    message: '2nd message'
}];
```

Pass the message definitions to the factory

```javascript
const messages = new MessagesFactory(messageDefinitions);
```

Get the messages by its code

```javascript
console.log('This is the messages ' + messages.M001); // 'This is the message: 1st message'
```

Custom values can be integrated by getting the message with its function passing values as argument, the message template uses the arguments by their index and the syntax `{index}`

```javascript
const messages = new MessagesFactory([{
        code: 'M001',
        message: 'This is an {0} {1}!'
    }]);

messages.M001('Hello', 'World'); // 'This is an Hello World!'
```

## Example

```json
// messages.json
[{
    "code": "APP_001",
    "message": "Server ready"
}, {
    "code": "APP_002",
    "message": "Server listening on port {0}"
}]
```

```javascript
// app.js
const MessagesFactory = require('messages-factory');
const messages = new MessagesFactory(require('./messages.json'));

console.log(messages.APP_001());        // 'Server ready'
console.log(messages.APP_002(8080));    // 'Server listening on port 8080'
```

---
_Source: https://npm.io/package/messages-factory · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
