zquire

0.4.2 • Public • Published

zquire

Description

Node module for modules requirement.

Automatically tries to install the missing modules. Returns the modules under a callback or a promise.

Installation

Running

npm install --save zquire

API Documentation

Basic usage

Example with Express

If 'express' is already installed, it will require and return it. If it is not installed, it will install it and return it in the callback.

var zquire = require('zquire');

zquire('express', function(err, express) {
    if (err) {
       throw err;
    } else {
        var app = express();
        app.get('/', function (req, res) {
            res.send('Hello World!');
        });
        var server = app.listen(3000, function () {
            var host = server.address().address;
            var port = server.address().port;
            console.log('Example app listening at http://%s:%s', host, port);
        });
    }
});

From Express Hello World example

Deduced modules

If you only give a callback to zquire, it will deduce the modules you require with the arguments of your callback by parsing your callback arguments

var zquire = require('zquire');

zquire(function(err, express, path, fs, npm) {
    if (err) {
       throw err;
    } else {
        // Use expres, path, fs & npm here
    }
});

Promise Polyfill

zquire includes es6-promise polyfill to allow the use of es6 promise.

var zquire = require('zquire');

zquire('express')
 .then(function(express) {
    var app = express();
    app.get('/', function (req, res) {
        res.send('Hello World!');
    });
    var server = app.listen(3000, function () {
        var port = server.address().port;
        console.log('Example app listening at http://localhost:%s', port);
    });
 })
 .catch(function(err) {
    throw err;
 });

Command-line config params

You can add npm CLI config params to zquire. For example to save the module you require in your package.json file if it needs to be installed.

More info about npm config params

var conf = {
  save: true
};

//Callback's style
zquire('async', conf,  function(err, async) {
    if (!err) {
        //use async here
    }
});

//Promise's style
zquire('async', conf)
.then(function(async) {
    //use async here
});

Run Tests

npm test

Dependencies (4)

Dev Dependencies (7)

Package Sidebar

Install

npm i zquire

Weekly Downloads

0

Version

0.4.2

License

MIT

Last publish

Collaborators

  • nvargas