Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 400,000 packages pre-installed, including koa-power with all npm packages installed. Try it out:

var koaPower = require("koa-power")

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

koa-power v1.2.0

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

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);

OptionDefault ValueWhat it does
appName'Koa Power App'Sets the app name
appNameColor'italy'Sets the app name color
mid[]Array of koa middleware
numWorkers2Number of workers
locale'en'moment locale
enableLogfalseEnable logging to file
logFileNameappDirectory + '/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:

ElementWhat it doesProto
loadPowers Koaload(worker, options)
logPower logs to consolelog(text)
italyColors text as Italian flagitaly(text) / text.italy
spaceSpaces text in a rowspace(text, width)
nameChanges the worker namename(text)

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

OptionDefault ValueWhat it does
appName'Koa Power App'Sets the app name
appNameColor'italy'Sets the app name color
mid[]Array of koa middleware
numWorkers2Number of workers
locale'en'moment locale
enableLogfalseEnable logging to file
logFileNameappDirectory + '/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.

RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free