yeoman-generator
Version:
Rails-inspired generator system that provides scaffolding for your apps
87 lines (74 loc) • 2.08 kB
JavaScript
/**
* @module yeoman-generator
*/
;
var Environment = require('./lib/env');
/**
* The generator system is a framework for node to author reusable and
* composable Generators, for a vast majority of use-case.
*
* Inspired and based off the work done on Thor and Rails 3 Generators, we try
* to provide the same kind of infrastructure.
*
* Generators are registered by namespace, where namespaces are mapping the
* structure of the file system with `:` being simply converted to `/`.
*
* Generators are standard node modules, they are simply required as usual, and
* they can be shipped into reusable npm packages.
*
* The lookup is done depending on the configured load path, which is by
* default `lib/generators` in every generators package installed (ie.
* `node_modules/yeoman-backbone/lib/generators`)
*
* @example
* var yeoman = require('yeoman-generators');
*
* var env = yeoman('angular:model')
* .run(function(err) {
* console.log('done!');
* });
*
*/
/** @alias module:yeoman-generator */
var yeoman = module.exports = function createEnv(args, opts, adapter) {
return new Environment(args, opts, adapter);
};
/**
* Reference to the inquirer module
* @deprecated Require your own copy of the module, this one will be removed after 1.0
*/
yeoman.inquirer = require('inquirer');
/**
* Global file helpers methods
* {@link https://github.com/SBoudrias/file-utils}
*/
yeoman.file = require('file-utils');
// hoist up top level class the generator extend
yeoman.Base = require('./lib/base');
yeoman.NamedBase = require('./lib/named-base');
/**
* Test helpers
* {@link module:test/helpers}
*/
yeoman.test = require('./lib/test/helpers');
/**
* Test assertions helpers
* {@link module:test/assert}
*/
yeoman.assert = require('./lib/test/assert');
/**
* Yeoman base's generators
* @enum generators
*/
yeoman.generators = {
/**
* Base Generator
* {@link Base}
*/
Base: yeoman.Base,
/**
* Named Base Generator
* {@link NamedBase}
*/
NamedBase: yeoman.NamedBase
};