yetta

0.1.10 • Public • Published

Yetta

NPM Version Build Status Dependencies

Yetta is an extensible initialization module for Node.js applications based on Bootable.

Yetta allows initialization phases to be registered for an application. These phases will be executed sequentially during startup, after which the application will be ready to run.

Installation

$ npm install yetta

Usage

Yetta is generally applicable to any Node.js application or application framework. Express will be used below, for illustrative purposes, as it is the most popular way of developing web applications.

Mixin Yetta

Create a new application and mixin the yetta module.

var express = require('express');
var yetta = require('yetta');
 
var app = yetta(express());

Once mixed-in, the application will have two additional functions: app.boot and app.phase.

Register Phases

An application proceeds through a sequence of phases, in order to prepare itself to handle requests. Modules need to be configured, databases need to be connected, and routes need to be drawn.

Yetta packages phases for these common scenarios:

app.phase(yetta.initializers('config/initializers'));

Custom phases can be registered as well, and come in synchronous and asynchronous flavors:

app.phase(function() {
  // synchronous phase
});

app.phase(function(done) {
  setTimeout(function() {
    // asynchronous phase
    done();
  }, 1000);
});

Boot Application

Call app.boot with a callback to boot your application. Phases will be executed sequentially, and the callback will be invoked when all phases are complete.

app.boot(function(err) {
  if (err) { throw err; }
  app.listen(3000);
});

This allows you to split off your initialization steps into separate, organized and reusable chunks of logic.

Tests

 $ npm install
 $ npm test

Credits

The usage document was taken from Bootable.

License

Copyright (c) 2014 Tao Yuan
Licensed under the MIT license.

Package Sidebar

Install

npm i yetta

Weekly Downloads

40

Version

0.1.10

License

none

Last publish

Collaborators

  • bitt