/base-env

Base plugin, creates a normalized environment object from a function, filepath or instance of base.

Primary LanguageJavaScriptMIT LicenseMIT

base-env NPM version NPM monthly downloads NPM total downloads Linux Build Status

Base plugin, creates a normalized environment object from a function, filepath or instance of base.

Install

Install with npm:

$ npm install --save base-env

Usage

var Base = require('base');
var env = require('base-env');
var base = new Base();
base.use(env());

API

Create an env object with the given name, function, filepath or app instance, and options. See the Env API docs below.

Params

  • name {String}
  • val {Object|Function|String}
  • options {Object}
  • returns {Object}

Example

var base = require('base');
var env = require('base-env');
var app = new Base();
app.use(env());

var env = app.createEnv('foo', function() {});

Create an instance of Env with the given name, fn, app instance, and options. The Env class is used by base-generators to handle some of the heavy lifting for resolving generators.

Params

  • name {String}
  • fn {Function|Object|String}: Function to be lazily invoked, instance, or filepath that resolves to one of the other types when required.
  • app {Object}: Base instance to use for invocation context.
  • options {Object}

Example

var env = new Env('foo', function(app) {
  // do stuff to app
});

Returns true if the given str matches any of the following properties, in order:

  • env.key
  • env.name
  • env.alias
  • env.dirname
  • env.path
  • env.basename

Params

  • str {String}: The string to match
  • returns {Boolean}: Retuns true if a match is made.

Example

var env = new Env('foo', fucntion(){});
console.log(env.isMatch('bar')) //=> false
console.log(env.isMatch('foo')) //=> true

Invoke env.fn with the given context and options.

Params

  • context {Object}: The application instance to use for invoking env.fn
  • opptions {Object}
  • returns {Object}

Example

var app = new Base();
env.fn(app, {doStuff: true});

Getter that is set to true when the env being loaded is in the user's working directory.

  • returns {Boolean}

Example

var env = new Env('generator.js', generatorFn, {cwd: process.cwd()});
console.log(env.isDefault);
//=> true

Getter for resolving the namespace of an env. A namespace is created by joining the namespace from a parent instance (if exists) to env.alias (e.g. parent.namespace + '.' + env.alias).

var env = new Env('foo', function() {});

* `returns` **{String}**  

## About
### Related projects
- [base-generators](https://www.npmjs.com/package/base-generators): Adds project-generator support to your `base` application. | [homepage](https://github.com/node-base/base-generators "Adds project-generator support to your `base` application.")
- [base-runner](https://www.npmjs.com/package/base-runner): Orchestrate multiple instances of base at once. | [homepage](https://github.com/node-base/base-runner "Orchestrate multiple instances of base at once.")
- [base](https://www.npmjs.com/package/base): Framework for rapidly creating high quality, server-side node.js applications, using plugins like building blocks | [homepage](https://github.com/node-base/base "Framework for rapidly creating high quality, server-side node.js applications, using plugins like building blocks")

### Contributing
Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).

### Contributors
| **Commits** | **Contributor** |  
| --- | --- |  
| 37 | [jonschlinkert](https://github.com/jonschlinkert) |  
| 6  | [doowb](https://github.com/doowb) |  

### Release history

### Building docs
_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_

To generate the readme, run the following command:

```sh
$ npm install -g verbose/verb#dev verb-generate-readme && verb

Running tests

Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:

$ npm install && npm test

Author

Jon Schlinkert

License

Copyright © 2018, Jon Schlinkert. Released under the MIT License.


This file was generated by verb-generate-readme, v0.7.0, on July 19, 2018.