NeXTSTEP Programming Mastermind

    essencejs

    1.0.4 • Public • Published

    essence.js

    About

    Essence.js is a async dependency injection framework to help build loosely coupled Node.js applications. Check out the sample website app to see how essence js goodness helps constructing a web application.

    Why?

    Creating loosely coupled applications helps to reduce complexity, improve code reusable and make your code more testable.

    Install

    npm install --save essencejs
    

    Getting Started

    // require the EssenceJs class.
    var EssenceJs = require("essencejs").EssenceJs;
    
    // create a new instance of EssenceJs.
    var essence = new EssenceJs();
    
    // ALTERNATIVELY - to do the same in a single line:
    var essence = new (require("essencejs").EssenceJs)();
    
    // add objects to the essence js container
    essence.register("message", { text : "thingy bobs" });
    
    // add singleton
    var Start = function Start() { this.startedAt = new Date(); };
    essence.singleton(Start);
    
    // add factory
    var Random = function Random() { this.random = Math.round(Math.random() * 1000); }
    essence.factory(Random);
    
    // inject dependencies of a function
    essence.inject(function (message, start, random) {
        console.log(message.text,
            "was started at",
            start.startedAt.toLocaleString() + ".",
            "Here is a random number between 0 - 1000 : ",
            random.random);
    });
    
    // this returns the console message
        `thingy bobs was started at Mon Dec 22 2014 19:38:53 GMT+0000 (GMT). Here is a random number between 0 - 1000 :  905`
    
    // calling this same inject function again will return
        `thingy bobs was started at Mon Dec 22 2014 19:38:53 GMT+0000 (GMT). Here is a random number between 0 - 1000 :  323`
    
    // the start time will always remain the same for the duration of the node process because it is a singleton.
    // the random value will change because a new factory instance is injected every time it is needed.
    

    Testing

    To run the nodeunit tests, use:

    npm test

    Install

    npm i essencejs

    DownloadsWeekly Downloads

    0

    Version

    1.0.4

    License

    MIT

    Last publish

    Collaborators

    • allenevans