Socket
Book a DemoInstallSign in
Socket

base-resolver

Package Overview
Dependencies
Maintainers
1
Versions
10
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

base-resolver

'base-methods' plugin for resolving and loading globally installed npm modules.

Source
npmnpm
Version
0.3.1
Version published
Weekly downloads
3
-72.73%
Maintainers
1
Weekly downloads
 
Created
Source

base-resolver NPM version Build Status

'base-methods' plugin for resolving and loading globally installed npm modules.

Install

Install with npm

$ npm i base-resolver --save

Usage

var resolver = require('base-resolver');

Example

In two steps, the following example shows how we would use base-resolver with a custom Generate application that is built on top of [base-methods][].

Step 1: Setup

The following example shows how we might begin creating a basic project generator from [base-methods][]. More specifically, this shows how we might register and cache generators.

var resolver = require('base-resolver');
var Generate = require('base-methods');

// register a "global" plugin, to initialize the `generators` 
// object, and decorate a `register` method (as an alternative 
// to inheriting base-methods or other more complicated approaches)
Generate.use(function(app) {
  app.generators = {};
  app.define('register', function(key, config) {
    this.generators[key] = config;
    return this;
  });
});

// register `resolver` as a global plugin
Generate.use(resolver('generate'));

Step 2

Intantiate the custom application we just created, and search for generators!

var generate = new Generate();

// setup a listener that will register generators (
// `config`s) as they're emitted
generate.on('config', function(config) {
  console.log('registered:', config.alias);
  generate.register(config.alias, config);
});

// find configs!
generate
  .resolve('generate-*/generator.js', {
    cwd: require('global-modules')
  });
  .resolve('generate-*/generator.js', {
    cwd: process.cwd()
  });

API

Params

  • patterns {String|Array}: Glob patterns to search
  • options {Object}: Options to pass to matched
  • returns {Object}

Example

resolver.on('config', function(config) {
  // do stuff with "config"
});

resolver
  .resolve('generator.js', {cwd: 'foo'})
  .resolve('generator.js', {cwd: 'bar'})
  .resolve('generator.js', {cwd: 'baz'})

.getConfig

If necessary, this static method will resolve the first instance to be used as the base instance for caching any additional resolved configs.

Params

  • configfile {String}: The name of the config file, ex: assemblefile.js
  • moduleName {String}: The name of the module to lookup, ex: assemble
  • options {Object}
  • returns {Object}

Example

var Generate = require('generate');
var resolver = require('base-resolver');

var generate = resolver.first('generator.js', 'generate', {
  Ctor: Generate,
  isModule: function(app) {
    return app.isGenerate;
  }
});
  • global-modules: The directory used by npm for globally installed npm modules. | homepage
  • matched: Adds array support to node-glob, sync and async. Also supports tilde expansion (user home) and… more | homepage
  • npm-paths: Returns an array of unique "npm" directories based on the user's platform and environment. | homepage
  • resolve-modules: Resolves local and global npm modules that match specified patterns, and returns a configuration object… more | homepage

Running tests

Install dev dependencies:

$ npm i -d && npm test

Contributing

Pull requests and stars are always welcome. For bugs and feature requests, please create an issue.

Author

Jon Schlinkert

License

Copyright © 2015 Jon Schlinkert Released under the MIT license.

This file was generated by verb-cli on December 03, 2015.

Keywords

base

FAQs

Package last updated on 05 Dec 2015

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts