UNPKG

ape-tmpl

Version:
52 lines (44 loc) 4.48 kB
/** * Define a bud for LICENSE * @memberof module:ape-tmpl/lib * @function licenseBud * @param {object} config - Configuration. * @param {string} config.type - Type of license. * @param {number} config.year - Copy right year. * @param {string} config.holder - License holder name. * @returns {object} - Bud object. */ 'use strict'; var assert = require('assert'); var _tmpl = require('./_tmpl'); /** @lends licenseBud */ function licenseBud(config) { assert.ok(config.type, 'config.type is required.'); assert.ok(config.holder, 'config.holder is required.'); return { force: true, mode: '444', path: 'LICENSE', tmpl: _tmplForType(String(config.type).trim()), data: { holder: config.holder, year: config.year || new Date().getFullYear() } }; } function _tmplForType(type) { switch (type) { case 'mit': case 'MIT': return _tmpl('hbs/LICENSE_MIT.md.hbs'); case 'Apache-2.0': case 'Apache2': case 'APACHE-2.0': case 'APACHE2': return _tmpl('hbs/LICENSE_Apache-2.0.md.hbs'); default: throw new Error("Unknown license type: ".concat(type)); } } module.exports = licenseBud; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpY2Vuc2VfYnVkLmpzIl0sIm5hbWVzIjpbImFzc2VydCIsInJlcXVpcmUiLCJfdG1wbCIsImxpY2Vuc2VCdWQiLCJjb25maWciLCJvayIsInR5cGUiLCJob2xkZXIiLCJmb3JjZSIsIm1vZGUiLCJwYXRoIiwidG1wbCIsIl90bXBsRm9yVHlwZSIsIlN0cmluZyIsInRyaW0iLCJkYXRhIiwieWVhciIsIkRhdGUiLCJnZXRGdWxsWWVhciIsIkVycm9yIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7QUFXQTs7QUFFQSxJQUFNQSxNQUFNLEdBQUdDLE9BQU8sQ0FBQyxRQUFELENBQXRCOztBQUNBLElBQU1DLEtBQUssR0FBR0QsT0FBTyxDQUFDLFNBQUQsQ0FBckI7QUFFQTs7O0FBQ0EsU0FBU0UsVUFBVCxDQUFxQkMsTUFBckIsRUFBNkI7QUFDM0JKLEVBQUFBLE1BQU0sQ0FBQ0ssRUFBUCxDQUFVRCxNQUFNLENBQUNFLElBQWpCLEVBQXVCLDBCQUF2QjtBQUNBTixFQUFBQSxNQUFNLENBQUNLLEVBQVAsQ0FBVUQsTUFBTSxDQUFDRyxNQUFqQixFQUF5Qiw0QkFBekI7QUFDQSxTQUFPO0FBQ0xDLElBQUFBLEtBQUssRUFBRSxJQURGO0FBRUxDLElBQUFBLElBQUksRUFBRSxLQUZEO0FBR0xDLElBQUFBLElBQUksRUFBRSxTQUhEO0FBSUxDLElBQUFBLElBQUksRUFBRUMsWUFBWSxDQUFDQyxNQUFNLENBQUNULE1BQU0sQ0FBQ0UsSUFBUixDQUFOLENBQW9CUSxJQUFwQixFQUFELENBSmI7QUFLTEMsSUFBQUEsSUFBSSxFQUFFO0FBQ0pSLE1BQUFBLE1BQU0sRUFBRUgsTUFBTSxDQUFDRyxNQURYO0FBRUpTLE1BQUFBLElBQUksRUFBRVosTUFBTSxDQUFDWSxJQUFQLElBQWUsSUFBSUMsSUFBSixHQUFXQyxXQUFYO0FBRmpCO0FBTEQsR0FBUDtBQVVEOztBQUVELFNBQVNOLFlBQVQsQ0FBdUJOLElBQXZCLEVBQTZCO0FBQzNCLFVBQVFBLElBQVI7QUFDRSxTQUFLLEtBQUw7QUFDQSxTQUFLLEtBQUw7QUFDRSxhQUFPSixLQUFLLENBQUMsd0JBQUQsQ0FBWjs7QUFDRixTQUFLLFlBQUw7QUFDQSxTQUFLLFNBQUw7QUFDQSxTQUFLLFlBQUw7QUFDQSxTQUFLLFNBQUw7QUFDRSxhQUFPQSxLQUFLLENBQUMsK0JBQUQsQ0FBWjs7QUFDRjtBQUNFLFlBQU0sSUFBSWlCLEtBQUosaUNBQW1DYixJQUFuQyxFQUFOO0FBVko7QUFZRDs7QUFFRGMsTUFBTSxDQUFDQyxPQUFQLEdBQWlCbEIsVUFBakIiLCJzb3VyY2VSb290IjoiLi4vLi4vbGliIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBEZWZpbmUgYSBidWQgZm9yIExJQ0VOU0VcbiAqIEBtZW1iZXJvZiBtb2R1bGU6YXBlLXRtcGwvbGliXG4gKiBAZnVuY3Rpb24gbGljZW5zZUJ1ZFxuICogQHBhcmFtIHtvYmplY3R9IGNvbmZpZyAtIENvbmZpZ3VyYXRpb24uXG4gKiBAcGFyYW0ge3N0cmluZ30gY29uZmlnLnR5cGUgLSBUeXBlIG9mIGxpY2Vuc2UuXG4gKiBAcGFyYW0ge251bWJlcn0gY29uZmlnLnllYXIgLSBDb3B5IHJpZ2h0IHllYXIuXG4gKiBAcGFyYW0ge3N0cmluZ30gY29uZmlnLmhvbGRlciAtIExpY2Vuc2UgaG9sZGVyIG5hbWUuXG4gKiBAcmV0dXJucyB7b2JqZWN0fSAtIEJ1ZCBvYmplY3QuXG4gKi9cblxuJ3VzZSBzdHJpY3QnXG5cbmNvbnN0IGFzc2VydCA9IHJlcXVpcmUoJ2Fzc2VydCcpXG5jb25zdCBfdG1wbCA9IHJlcXVpcmUoJy4vX3RtcGwnKVxuXG4vKiogQGxlbmRzIGxpY2Vuc2VCdWQgKi9cbmZ1bmN0aW9uIGxpY2Vuc2VCdWQgKGNvbmZpZykge1xuICBhc3NlcnQub2soY29uZmlnLnR5cGUsICdjb25maWcudHlwZSBpcyByZXF1aXJlZC4nKVxuICBhc3NlcnQub2soY29uZmlnLmhvbGRlciwgJ2NvbmZpZy5ob2xkZXIgaXMgcmVxdWlyZWQuJylcbiAgcmV0dXJuIHtcbiAgICBmb3JjZTogdHJ1ZSxcbiAgICBtb2RlOiAnNDQ0JyxcbiAgICBwYXRoOiAnTElDRU5TRScsXG4gICAgdG1wbDogX3RtcGxGb3JUeXBlKFN0cmluZyhjb25maWcudHlwZSkudHJpbSgpKSxcbiAgICBkYXRhOiB7XG4gICAgICBob2xkZXI6IGNvbmZpZy5ob2xkZXIsXG4gICAgICB5ZWFyOiBjb25maWcueWVhciB8fCBuZXcgRGF0ZSgpLmdldEZ1bGxZZWFyKClcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gX3RtcGxGb3JUeXBlICh0eXBlKSB7XG4gIHN3aXRjaCAodHlwZSkge1xuICAgIGNhc2UgJ21pdCc6XG4gICAgY2FzZSAnTUlUJzpcbiAgICAgIHJldHVybiBfdG1wbCgnaGJzL0xJQ0VOU0VfTUlULm1kLmhicycpXG4gICAgY2FzZSAnQXBhY2hlLTIuMCc6XG4gICAgY2FzZSAnQXBhY2hlMic6XG4gICAgY2FzZSAnQVBBQ0hFLTIuMCc6XG4gICAgY2FzZSAnQVBBQ0hFMic6XG4gICAgICByZXR1cm4gX3RtcGwoJ2hicy9MSUNFTlNFX0FwYWNoZS0yLjAubWQuaGJzJylcbiAgICBkZWZhdWx0OlxuICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmtub3duIGxpY2Vuc2UgdHlwZTogJHt0eXBlfWApXG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBsaWNlbnNlQnVkXG4iXX0=