Skip to content

Commit

Permalink
release: release version
Browse files Browse the repository at this point in the history
  • Loading branch information
mjeanroy committed Dec 3, 2016
1 parent cfc88db commit 2d7d351
Show file tree
Hide file tree
Showing 7 changed files with 708 additions and 1 deletion.
146 changes: 146 additions & 0 deletions dist/dependency.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,146 @@
'use strict';

var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

/**
* The MIT License (MIT)
*
* Copyright (c) 2016 Mickael Jeanroy
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/

var _ = require('lodash');
var EOL = require('./eol.js');
var Person = require('./person.js');

/**
* Dependency structure.
*/

var Dependency = function () {
/**
* Create new dependency from package description.
*
* @param {Object} pkg Package description.
* @constructor
*/
function Dependency(pkg) {
_classCallCheck(this, Dependency);

var dependency = _.pick(pkg, ['name', 'author', 'contributors', 'maintainers', 'version', 'description', 'license', 'licenses', 'repository', 'homepage', 'private']);

// Parse the author field to get an object.
if (dependency.author) {
dependency.author = new Person(dependency.author);
}

// Parse the contributor array.
if (dependency.contributors) {
// Translate to an array if it is not already.
if (_.isString(dependency.contributors)) {
dependency.contributors = [dependency.contributors];
}

// Parse each contributor to produce a single object for each person.
dependency.contributors = _.map(dependency.contributors, function (contributor) {
return new Person(contributor);
});
}

// The `licenses` field is deprecated but may be used in some packages.
// Map it to a standard license field.
if (!dependency.license && dependency.licenses) {
// Map it to a valid license field.
// See: https://docs.npmjs.com/files/package.json#license
dependency.license = '(' + _.chain(dependency.licenses).map(function (license) {
return license.type || license;
}).join(' OR ').value() + ')';

// Remove it.
delete dependency.licenses;
}

_.extend(this, dependency);
}

/**
* Serialize dependency as a string.
*
* @param {string} prefix Optional prefix prepended to the output string.
* @param {suffix} suffix Optional suffix appended to the output string.
* @param {string} joiner Optional character used to join all the lines.
* @return {string} The dependency correctly formatted.
*/


_createClass(Dependency, [{
key: 'text',
value: function text() {
var prefix = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
var suffix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
var joiner = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : EOL;

var lines = [];

lines.push(prefix + 'Name: ' + this.name + suffix);
lines.push(prefix + 'Version: ' + this.version + suffix);
lines.push(prefix + 'License: ' + this.license + suffix);
lines.push(prefix + 'Private: ' + (this.private || false) + suffix);

if (this.description) {
lines.push(prefix + 'Description: ' + (this.description || false) + suffix);
}

if (this.repository) {
lines.push(prefix + 'Repository: ' + this.repository.url + suffix);
}

if (this.homepage) {
lines.push(prefix + 'Homepage: ' + this.homepage + suffix);
}

if (this.author) {
lines.push(prefix + 'Author: ' + this.author.text() + suffix);
}

if (this.contributors) {
lines.push(prefix + 'Contributors:' + suffix);

var allContributors = _.chain(this.contributors).map(function (contributor) {
return contributor.text();
}).map(function (line) {
return prefix + ' ' + line + suffix;
}).value();

lines.push.apply(lines, _toConsumableArray(allContributors));
}

return lines.join(joiner);
}
}]);

return Dependency;
}();

module.exports = Dependency;
27 changes: 27 additions & 0 deletions dist/eol.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
'use strict';

/**
* The MIT License (MIT)
*
* Copyright (c) 2016 Mickael Jeanroy
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/

module.exports = '\n';
42 changes: 42 additions & 0 deletions dist/generate-block-comment.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
'use strict';

/**
* The MIT License (MIT)
*
* Copyright (c) 2016 Mickael Jeanroy
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/

var _ = require('lodash');
var EOL = require('./eol.js');

/**
* Generate block comment from given text content.
*
* @param {string} text Text content.
* @return {string} Block comment.
*/
module.exports = function generateBlockComment(text) {
var bannerContent = _.chain(text).trim().split(EOL).map(function (line) {
return _.trimEnd(' * ' + line);
}).join(EOL).value();

return '/**' + EOL + bannerContent + EOL + ' */' + EOL;
};
90 changes: 90 additions & 0 deletions dist/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
'use strict';

/**
* The MIT License (MIT)
*
* Copyright (c) 2016 Mickael Jeanroy
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/

var LicensePlugin = require('./license-plugin.js');

module.exports = function () {
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};

var plugin = new LicensePlugin(options);

return {
/**
* Name of the plugin, used automatically by rollup.
* @type {string}
*/
name: plugin.name,

/**
* Function called by rollup when a JS file is loaded: it is used to scan
* third-party dependencies.
*
* @param {string} id JS file path.
* @return {void}
*/
load: function load(id) {
plugin.scanDependency(id);
},


/**
* Function called by rollup to read global options: if source map parameter
* is truthy, enable it on the plugin.
*
* @param {object} opts Rollup options.
* @return {void}
*/
options: function options(opts) {
if (opts && opts.sourceMap) {
plugin.enableSourceMap();
}
},


/**
* Function called by rollup when the final bundle is generated: it is used
* to prepend the banner file on the generated bundle.
*
* @param {string} code Bundle content.
* @return {void}
*/
transformBundle: function transformBundle(code) {
return plugin.prependBanner(code);
},


/**
* Function called by rollup when the final bundle will be written on disk: it
* is used to generate a file containing a summary of all third-party dependencies
* with license information.
*
* @return {void}
*/
ongenerate: function ongenerate() {
plugin.exportThirdParties();
}
};
};

0 comments on commit 2d7d351

Please sign in to comment.