@e2/core
Enterprise Application Framework
Last updated a year ago by e2tox .
Original npm · Tarball · package.json
$ cnpm install @e2/core 
SYNC missed versions from official npm registry.

Enterprise Application Framework

What is this?

  • [x] Read configuration from conf/settings.yaml
  • [x] Merge configuration from conf/${NODE_ENV}.yaml, conf/${NODE_ENV}.local.yaml and environment variables. (if have)
  • [x] Merge configuration from data/settings.json (only when DATA_DIR was defined )
  • [x] Print merged configuration on application start
  • [x] Do not print sensitive configuration name with _URL, _KEY, _PASSWORD, _SECRET or _TOKEN postfix
  • [x] Auto create missing dir if the configuration name ends with _DIR. (e.g. LOG_DIR folder)
  • [x] Configuration with _DIR or _FILE will resolve to absolute path automatically
  • [x] Provide a app.settings object for application to access the final configuration
  • [x] Provide a app.logger object for application to use, available transporters: Console, File or Webhook
  • [x] Provide nested error object Exception which will concat all the stacktrace for nested errors
  • [x] When transporter itself got errors. It will automatically fallback to another available transporter
  • [x] Trap linux signals SIGHUP, SIGINT, SIGQUIT, SIGTERM
  • [x] Log nodejs process events uncaughtException
  • [x] Provide universal application event beforeExit, exiting, exit
  • [x] The original log called on failed transporter will logged using fallback logger

Why doing this?

  • Because the things above is required for most enterprise applications. It should be shared across projects.
  • It's very important. But it's not as important as application logic. It can save your time to bootstrap a new project.
  • The same structure will make DevOps happy when doing deployment/monitoring on many projects. It should be standardized.
  • Together with Agent Framework; it can be automatically inject into other classes when required. It should be easy to use.

Installation

npm install @e2/core --save

OR

yarn add @e2/core

Show me the code

// TypeScript 2.2+
import { Application } from '@e2/core';

// enable config, logger support
const app = new Application(); // default, same with `Application({ confDir: 'conf', root: process.cwd() })`
// or
const app = new Application({ confDir: 'settings' }); // if your configuration folder is not 'conf' 
// or
const app = new Application({ confDir: 'settings', root: '/usr/share/myapp' }); // if your root folder is not current working folder 

console.log(app.settings);
app.logger.info('Hi, I am agent stack'); // the log will be automatically save in `LOG_DIR` folder 
// Node 6+
var Application = require('@e2/core').Application;

// enable config, logger support
var app = new Application(); // default, same with `Application({ confDir: 'conf', root: process.cwd() })`
// or
var app = new Application({ confDir: 'settings' }); // if your configuration folder is not 'conf' 
// or
var app = new Application({ confDir: 'settings', root: '/usr/share/myapp' }); // if your root folder is not current working folder 

console.log(app.settings);
app.logger.info('Hi, I am agent stack'); // the log will be automatically save in `LOG_DIR` folder 

Others

How do I rotate log files?

Consider we output our logs to /usr/share/myapp/logs/agent.log

We would rotate our log files with logrotate, by adding the following to /etc/logrotate.d/myapp:

/usr/share/myapp/logs/agent.log {
       su root
       daily
       rotate 7
       delaycompress
       compress
       notifempty
       missingok
       copytruncate
}

Current Tags

  • 1.2.20                                ...           latest (a year ago)

49 Versions

  • 1.2.20                                ...           a year ago
  • 1.2.18                                ...           a year ago
  • 1.2.17                                ...           a year ago
  • 1.2.16                                ...           a year ago
  • 1.2.15                                ...           a year ago
  • 1.2.13                                ...           a year ago
  • 1.2.12                                ...           a year ago
  • 1.2.11                                ...           a year ago
  • 1.2.10                                ...           a year ago
  • 1.2.9                                ...           a year ago
  • 1.2.8                                ...           a year ago
  • 1.2.6                                ...           a year ago
  • 1.2.5                                ...           a year ago
  • 1.2.4                                ...           a year ago
  • 1.2.3                                ...           a year ago
  • 1.2.2                                ...           a year ago
  • 1.2.1                                ...           a year ago
  • 1.2.0                                ...           a year ago
  • 1.1.51                                ...           a year ago
  • 1.1.50                                ...           a year ago
  • 1.1.44                                ...           2 years ago
  • 1.1.43                                ...           2 years ago
  • 1.1.42                                ...           2 years ago
  • 1.1.41                                ...           2 years ago
  • 1.1.40                                ...           2 years ago
  • 1.1.36                                ...           2 years ago
  • 1.1.35                                ...           2 years ago
  • 1.1.34                                ...           2 years ago
  • 1.1.33                                ...           2 years ago
  • 1.1.32                                ...           2 years ago
  • 1.1.30                                ...           2 years ago
  • 1.1.29                                ...           2 years ago
  • 1.1.28                                ...           2 years ago
  • 1.1.27                                ...           2 years ago
  • 1.1.26                                ...           2 years ago
  • 1.1.25                                ...           2 years ago
  • 1.1.24                                ...           2 years ago
  • 1.1.22                                ...           2 years ago
  • 1.1.21                                ...           2 years ago
  • 1.1.20                                ...           2 years ago
  • 1.1.12                                ...           2 years ago
  • 1.1.11                                ...           2 years ago
  • 1.1.10                                ...           2 years ago
  • 1.1.9                                ...           2 years ago
  • 1.1.8                                ...           2 years ago
  • 1.1.7                                ...           2 years ago
  • 1.1.6                                ...           2 years ago
  • 1.1.5                                ...           2 years ago
  • 1.0.0                                ...           2 years ago
Maintainers (2)
Downloads
Today 0
This Week 0
This Month 0
Last Day 0
Last Week 0
Last Month 1
Dependencies (3)
Dev Dependencies (0)
None

Copyright 2014 - 2017 © taobao.org |