apeman-scff
Version:
Project scaffolding tool.
39 lines (35 loc) • 870 B
JavaScript
/**
* Logger for list.
* @constructor ListLogger
* @returns A logger instance.
*/
const colorprint = require('colorprint')
const { colors } = colorprint
/** @lends ListLogger */
module.exports = colorprint.define(
/** @lends ListLogger.prototype */
{
/**
* Log task list.
* @param {object[]} types - Types to show.
*/
logTypes (types) {
const s = this
s.debug('Available types:')
Object.keys(types).forEach((name) => {
let desc = s._descType(types[ name ])
let space = ' '
while (name.length + space.length < 20) {
space += ' '
}
s.debug(' %s%s', colors.black.bold(name), colors.blackBright([ space, '//', desc ].join(' ')))
})
s.debug('')
},
_descType (type) {
let pkg = type.pkg || {}
return pkg.description
}
}
)