Skip to content

Koa with superpowers! Effortless clustering, logging, response time & colors with Koa.

License

Notifications You must be signed in to change notification settings

TheDanielMoli/koa-power

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

koa-power npm

Koa with superpowers! Effortless clustering, CLI logging, response time & colors with Koa.

Koa Power

Installation

Install Koa Power with npm:

npm install --save koa-power

Usage & Examples

Minimal example - examples/minimal.js

const Power = require('koa-power');
const {log} = Power;

const main = app => {
    app.listen(80, () => log(`App listening on port ${'80'.green}.`));
};

Power.load(main);

Extended Example - examples/extended.js

const Power = require('koa-power');
const {log} = Power;

let options = {
    appName: 'Lorem Ipsum Dolor Sit Amet',
    appNameColor: 'rainbow',
    mid: [], // Koa middleware array - e.g. [ compress(), bodyParser() ]
    numWorkers: 3,
    enableLog: true
};

const main = app => {
    app.use(ctx => {
        ctx.status = 200;
        ctx.body = 'Hello, world!';
    });

    app.listen(80, () => log(`App listening on port ${'80'.green}.`));
};

Power.load(main, options);

In production, usage of pm2 to run your Koa Power app is strongly recommended.

Options

Power options you can use in Power.load(main, options);

Option Default Value What it does
appName 'Koa Power App' Sets the app name
appNameColor 'italy' Sets the app name color
mid [] Array of koa middleware
numWorkers 2 Number of workers
locale 'en' moment locale
enableLog false Enable logging to file
logFileName appDirectory + '/power.log' Log filename
afterFork () => {} Callback after fork or re-fork

Full Reference

Require Koa Power this way:

const Power = require('koa-power');

Now, the exported elements are:

const {load, log, italy, space, name} = Power;

Let's see them in detail:

Element What it does Proto
load Powers Koa load(worker, options)
log Power logs to console log(text)
italy Colors text as Italian flag italy(text) / text.italy
space Spaces text in a row space(text, width)
name Changes the worker name name(text)

Power options you can use in load(main, options);

Option Default Value What it does
appName 'Koa Power App' Sets the app name
appNameColor 'italy' Sets the app name color
mid [] Array of koa middleware
numWorkers 2 Number of workers
locale 'en' moment locale
enableLog false Enable logging to file
logFileName appDirectory + '/power.log' Log filename
afterFork () => {} Callback after fork or re-fork

Notice: this package uses Colors internally, which extends the String prototype.

Contributing

Feel free to open an Issue or send me a direct message.

Versioning

We use SemVer for versioning. For the versions available, see the tags on this repository.

Authors

License

This project is licensed under the Apache License 2.0 - see the LICENSE.md file for details.

About

Koa with superpowers! Effortless clustering, logging, response time & colors with Koa.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published