|  | /* | 
|  | Copyright 2012-2015, Yahoo Inc. | 
|  | Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms. | 
|  | */ | 
|  | 'use strict'; | 
|  |  | 
|  | /** | 
|  | * istanbul-lib-coverage exports an API that allows you to create and manipulate | 
|  | * file coverage, coverage maps (a set of file coverage objects) and summary | 
|  | * coverage objects. File coverage for the same file can be merged as can | 
|  | * entire coverage maps. | 
|  | * | 
|  | * @module Exports | 
|  | */ | 
|  | const CoverageSummary = require('./lib/file').CoverageSummary; | 
|  | const FileCoverage = require('./lib/file').FileCoverage; | 
|  | const CoverageMap = require('./lib/coverage-map').CoverageMap; | 
|  |  | 
|  | module.exports = { | 
|  | /** | 
|  | * creates a coverage summary object | 
|  | * @param {Object} obj an argument with the same semantics | 
|  | *  as the one passed to the `CoverageSummary` constructor | 
|  | * @returns {CoverageSummary} | 
|  | */ | 
|  | createCoverageSummary(obj) { | 
|  | if (obj && obj instanceof CoverageSummary) { | 
|  | return obj; | 
|  | } | 
|  | return new CoverageSummary(obj); | 
|  | }, | 
|  | /** | 
|  | * creates a CoverageMap object | 
|  | * @param {Object} obj optional - an argument with the same semantics | 
|  | *  as the one passed to the CoverageMap constructor. | 
|  | * @returns {CoverageMap} | 
|  | */ | 
|  | createCoverageMap(obj) { | 
|  | if (obj && obj instanceof CoverageMap) { | 
|  | return obj; | 
|  | } | 
|  | return new CoverageMap(obj); | 
|  | }, | 
|  | /** | 
|  | * creates a FileCoverage object | 
|  | * @param {Object} obj optional - an argument with the same semantics | 
|  | *  as the one passed to the FileCoverage constructor. | 
|  | * @returns {FileCoverage} | 
|  | */ | 
|  | createFileCoverage(obj) { | 
|  | if (obj && obj instanceof FileCoverage) { | 
|  | return obj; | 
|  | } | 
|  | return new FileCoverage(obj); | 
|  | } | 
|  | }; | 
|  |  | 
|  | /** classes exported for reuse */ | 
|  | module.exports.classes = { | 
|  | /** | 
|  | * the file coverage constructor | 
|  | */ | 
|  | FileCoverage | 
|  | }; |