create-readme
Version:
Automatically creates README.md based on package.json and other existing files.
70 lines (58 loc) • 2.47 kB
JavaScript
// 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);