154 lines
4.2 KiB
JavaScript
154 lines
4.2 KiB
JavaScript
|
/*
|
||
|
Copyright (c) 2012, Yahoo! Inc. All rights reserved.
|
||
|
Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.
|
||
|
*/
|
||
|
|
||
|
/*jslint nomen: true */
|
||
|
var path = require('path'),
|
||
|
Store = require('./lib/store'),
|
||
|
Report = require('./lib/report'),
|
||
|
meta = require('./lib/util/meta');
|
||
|
|
||
|
//register our standard plugins
|
||
|
require('./lib/register-plugins');
|
||
|
|
||
|
/**
|
||
|
* the top-level API for `istanbul`. provides access to the key libraries in
|
||
|
* istanbul so you can write your own tools using `istanbul` as a library.
|
||
|
*
|
||
|
* Usage
|
||
|
* -----
|
||
|
*
|
||
|
* var istanbul = require('istanbul');
|
||
|
*
|
||
|
*
|
||
|
* @class Istanbul
|
||
|
* @static
|
||
|
* @module main
|
||
|
* @main main
|
||
|
*/
|
||
|
|
||
|
module.exports = {
|
||
|
/**
|
||
|
* the Instrumenter class.
|
||
|
* @property Instrumenter
|
||
|
* @type Instrumenter
|
||
|
* @static
|
||
|
*/
|
||
|
Instrumenter: require('./lib/instrumenter'),
|
||
|
/**
|
||
|
* the Store class.
|
||
|
* @property Store
|
||
|
* @type Store
|
||
|
* @static
|
||
|
*/
|
||
|
Store: Store,
|
||
|
/**
|
||
|
* the Collector class
|
||
|
* @property Collector
|
||
|
* @type Collector
|
||
|
* @static
|
||
|
*/
|
||
|
Collector: require('./lib/collector'),
|
||
|
/**
|
||
|
* the hook module
|
||
|
* @property hook
|
||
|
* @type Hook
|
||
|
* @static
|
||
|
*/
|
||
|
hook: require('./lib/hook'),
|
||
|
/**
|
||
|
* the Report class
|
||
|
* @property Report
|
||
|
* @type Report
|
||
|
* @static
|
||
|
*/
|
||
|
Report: Report,
|
||
|
/**
|
||
|
* the config module
|
||
|
* @property config
|
||
|
* @type Config
|
||
|
* @static
|
||
|
*/
|
||
|
config: require('./lib/config'),
|
||
|
/**
|
||
|
* the Reporter class
|
||
|
* @property Reporter
|
||
|
* @type Reporter
|
||
|
* @static
|
||
|
*/
|
||
|
Reporter: require('./lib/reporter'),
|
||
|
/**
|
||
|
* utility for processing coverage objects
|
||
|
* @property utils
|
||
|
* @type ObjectUtils
|
||
|
* @static
|
||
|
*/
|
||
|
utils: require('./lib/object-utils'),
|
||
|
/**
|
||
|
* asynchronously returns a function that can match filesystem paths.
|
||
|
* The function returned in the callback may be passed directly as a `matcher`
|
||
|
* to the functions in the `hook` module.
|
||
|
*
|
||
|
* When no options are passed, the match function is one that matches all JS
|
||
|
* files under the current working directory except ones under `node_modules`
|
||
|
*
|
||
|
* Match patterns are `ant`-style patterns processed using the `glob` library.
|
||
|
* Examples not provided due to limitations in putting asterisks inside
|
||
|
* jsdoc comments. Please refer to tests under `test/other/test-matcher.js`
|
||
|
* for examples.
|
||
|
*
|
||
|
* @method matcherFor
|
||
|
* @static
|
||
|
* @param {Object} options Optional. Lookup options.
|
||
|
* @param {String} [options.root] the root of the filesystem tree under
|
||
|
* which to match files. Defaults to `process.cwd()`
|
||
|
* @param {Array} [options.includes] an array of include patterns to match.
|
||
|
* Defaults to all JS files under the root.
|
||
|
* @param {Array} [options.excludes] and array of exclude patterns. File paths
|
||
|
* matching these patterns will be excluded by the returned matcher.
|
||
|
* Defaults to files under `node_modules` found anywhere under root.
|
||
|
* @param {Function(err, matchFunction)} callback The callback that is
|
||
|
* called with two arguments. The first is an `Error` object in case
|
||
|
* of errors or a falsy value if there were no errors. The second
|
||
|
* is a function that may be use as a matcher.
|
||
|
*/
|
||
|
matcherFor: require('./lib/util/file-matcher').matcherFor,
|
||
|
/**
|
||
|
* the version of the library
|
||
|
* @property VERSION
|
||
|
* @type String
|
||
|
* @static
|
||
|
*/
|
||
|
VERSION: meta.VERSION,
|
||
|
/**
|
||
|
* the abstract Writer class
|
||
|
* @property Writer
|
||
|
* @type Writer
|
||
|
* @static
|
||
|
*/
|
||
|
Writer: require('./lib/util/writer').Writer,
|
||
|
/**
|
||
|
* the abstract ContentWriter class
|
||
|
* @property ContentWriter
|
||
|
* @type ContentWriter
|
||
|
* @static
|
||
|
*/
|
||
|
ContentWriter: require('./lib/util/writer').ContentWriter,
|
||
|
/**
|
||
|
* the concrete FileWriter class
|
||
|
* @property FileWriter
|
||
|
* @type FileWriter
|
||
|
* @static
|
||
|
*/
|
||
|
FileWriter: require('./lib/util/file-writer'),
|
||
|
//undocumented
|
||
|
_yuiLoadHook: require('./lib/util/yui-load-hook'),
|
||
|
//undocumented
|
||
|
TreeSummarizer: require('./lib/util/tree-summarizer'),
|
||
|
//undocumented
|
||
|
assetsDir: path.resolve(__dirname, 'lib', 'assets')
|
||
|
};
|
||
|
|
||
|
|