UNPKG

istanbul

Version:

Yet another JS code coverage tool that computes statement, line, function and branch coverage with module loader hooks to transparently add coverage when running tests. Supports all JS coverage use cases including unit tests, server side functional tests

154 lines (147 loc) 4.34 kB
/* 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') };