UNPKG

create-readme

Version:

Automatically creates README.md based on package.json and other existing files.

70 lines (58 loc) 2.47 kB
// Generated by CoffeeScript 2.3.2 (function() { var BadgeParser, Promise, badgeData, logger, mustache; logger = require('../logger'); Promise = require('bluebird'); mustache = require('mustache'); badgeData = require('../../data/badges.json'); // Creates badges based on pkg info module.exports = BadgeParser = (function() { class BadgeParser { // Creates a new BadgeParser. By default the following badges will be created: // 'npm version', 'build status', 'coverage status', 'dependency status', // 'devDependency status', 'Gitter' // These can be changed by setting only a subset as options.badges // @param (options) [Object] An optional set of options // @option options badges [Array<String>] Badges from badges.json to use // @option options branch [String] The branch to use for the documentation ['master'] constructor(options) { var base, base1, ref, ref1; this.options = options; if (this.options == null) { this.options = {}; } if ((base = this.options).badges == null) { base.badges = ['npm-version', 'minzipped', 'travis', 'coveralls', 'dependencies', 'devDependencies', 'gitter']; } if ((base1 = this.options).branch == null) { base1.branch = (ref = (ref1 = this.options.git) != null ? ref1.branch : void 0) != null ? ref : 'master'; } } // Create data for badges // @param pkg [Object] package.json data // @returns [Promise<Array>] An array of badges {name: string, img: string, url: string} run(pkg) { var data; logger.info("Creating badges"); if (pkg.git == null) { logger.debug(" Not adding badges due to missing git repo info"); return Promise.resolve([]); } logger.debug(" Adding badges " + this.options.badges); data = Object.assign({ branch: this.options.branch }, pkg); return Promise.resolve(this.options.badges.map(function(badgeName) { return { name: mustache.render(badgeData[badgeName].name, data), img: mustache.render(badgeData[badgeName].img, data), url: mustache.render(badgeData[badgeName].url, data) }; })); } }; // @property [String] The name of this component BadgeParser.name = "BadgeParser"; return BadgeParser; }).call(this); }).call(this);