private-npm-publish
Version:
prevent accidentally npm published commandline tool.
38 lines • 5.15 kB
JavaScript
// LICENSE : MIT
;
var options = require("./options");
var npmRunAsync = require("../npm-run").npmRunAsync;
var Promise = require("bluebird");
var checker = require("scoped-modules-checker");
var path = require("path");
var fs = require("fs");
var cli = {
/**
* Executes the CLI based on an array of arguments that is passed in.
* @param {string|Array|Object} args The arguments to process.
* @returns {Promise} The promise for the operation.
*/
executeAsync: function executeAsync(args) {
return new Promise(function (resolve, reject) {
var currentOptions = options.parse(args);
if (currentOptions.version) {
// version from package.json
console.log("v" + require("../../package.json").version);
return resolve();
} else if (currentOptions.help) {
console.log(options.generateHelp());
return resolve();
}
var packageJSONPath = path.join(process.cwd(), "package.json");
var pkg = JSON.parse(fs.readFileSync(packageJSONPath));
var errors = checker.validateScopedPackage(pkg);
// not found error -> npm publish
if (errors.length > 0) {
return reject(errors.join("\n"));
}
return npmRunAsync("publish", []);
});
}
};
module.exports = cli;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbGkvY2xpLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQSxZQUFZLENBQUM7QUFDYixJQUFJLE9BQU8sR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7QUFDbkMsSUFBSSxXQUFXLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDLFdBQVcsQ0FBQztBQUNwRCxJQUFJLE9BQU8sR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7QUFDbEMsSUFBSSxPQUFPLEdBQUcsT0FBTyxDQUFDLHdCQUF3QixDQUFDLENBQUM7QUFDaEQsSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQzNCLElBQUksRUFBRSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUN2QixJQUFJLEdBQUcsR0FBRzs7Ozs7O0FBTU4sZ0JBQVksRUFBRSxzQkFBVSxJQUFJLEVBQUU7QUFDMUIsZUFBTyxJQUFJLE9BQU8sQ0FBQyxVQUFVLE9BQU8sRUFBRSxNQUFNLEVBQUU7QUFDMUMsZ0JBQUksY0FBYyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDekMsZ0JBQUksY0FBYyxDQUFDLE9BQU8sRUFBRTs7QUFDeEIsdUJBQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ3pELHVCQUFPLE9BQU8sRUFBRSxDQUFDO2FBQ3BCLE1BQU0sSUFBSSxjQUFjLENBQUMsSUFBSSxFQUFFO0FBQzVCLHVCQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO0FBQ3BDLHVCQUFPLE9BQU8sRUFBRSxDQUFDO2FBQ3BCO0FBQ0QsZ0JBQUksZUFBZSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLGNBQWMsQ0FBQyxDQUFDO0FBQy9ELGdCQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQztBQUN2RCxnQkFBSSxNQUFNLEdBQUcsT0FBTyxDQUFDLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxDQUFDOztBQUVoRCxnQkFBSSxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtBQUNuQix1QkFBTyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO2FBQ3BDO0FBQ0QsbUJBQU8sV0FBVyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQztTQUNyQyxDQUFDLENBQUM7S0FDTjtDQUNKLENBQUM7QUFDRixNQUFNLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQyIsImZpbGUiOiJzcmMvY2xpL2NsaS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIExJQ0VOU0UgOiBNSVRcblwidXNlIHN0cmljdFwiO1xudmFyIG9wdGlvbnMgPSByZXF1aXJlKFwiLi9vcHRpb25zXCIpO1xudmFyIG5wbVJ1bkFzeW5jID0gcmVxdWlyZShcIi4uL25wbS1ydW5cIikubnBtUnVuQXN5bmM7XG52YXIgUHJvbWlzZSA9IHJlcXVpcmUoXCJibHVlYmlyZFwiKTtcbnZhciBjaGVja2VyID0gcmVxdWlyZShcInNjb3BlZC1tb2R1bGVzLWNoZWNrZXJcIik7XG52YXIgcGF0aCA9IHJlcXVpcmUoXCJwYXRoXCIpO1xudmFyIGZzID0gcmVxdWlyZShcImZzXCIpO1xudmFyIGNsaSA9IHtcbiAgICAvKipcbiAgICAgKiBFeGVjdXRlcyB0aGUgQ0xJIGJhc2VkIG9uIGFuIGFycmF5IG9mIGFyZ3VtZW50cyB0aGF0IGlzIHBhc3NlZCBpbi5cbiAgICAgKiBAcGFyYW0ge3N0cmluZ3xBcnJheXxPYmplY3R9IGFyZ3MgVGhlIGFyZ3VtZW50cyB0byBwcm9jZXNzLlxuICAgICAqIEByZXR1cm5zIHtQcm9taXNlfSBUaGUgcHJvbWlzZSBmb3IgdGhlIG9wZXJhdGlvbi5cbiAgICAgKi9cbiAgICBleGVjdXRlQXN5bmM6IGZ1bmN0aW9uIChhcmdzKSB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgICAgICB2YXIgY3VycmVudE9wdGlvbnMgPSBvcHRpb25zLnBhcnNlKGFyZ3MpO1xuICAgICAgICAgICAgaWYgKGN1cnJlbnRPcHRpb25zLnZlcnNpb24pIHsgLy8gdmVyc2lvbiBmcm9tIHBhY2thZ2UuanNvblxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwidlwiICsgcmVxdWlyZShcIi4uLy4uL3BhY2thZ2UuanNvblwiKS52ZXJzaW9uKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzb2x2ZSgpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChjdXJyZW50T3B0aW9ucy5oZWxwKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2cob3B0aW9ucy5nZW5lcmF0ZUhlbHAoKSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc29sdmUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHZhciBwYWNrYWdlSlNPTlBhdGggPSBwYXRoLmpvaW4ocHJvY2Vzcy5jd2QoKSwgXCJwYWNrYWdlLmpzb25cIik7XG4gICAgICAgICAgICB2YXIgcGtnID0gSlNPTi5wYXJzZShmcy5yZWFkRmlsZVN5bmMocGFja2FnZUpTT05QYXRoKSk7XG4gICAgICAgICAgICB2YXIgZXJyb3JzID0gY2hlY2tlci52YWxpZGF0ZVNjb3BlZFBhY2thZ2UocGtnKTtcbiAgICAgICAgICAgIC8vIG5vdCBmb3VuZCBlcnJvciAtPiBucG0gcHVibGlzaFxuICAgICAgICAgICAgaWYgKGVycm9ycy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlamVjdChlcnJvcnMuam9pbihcIlxcblwiKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gbnBtUnVuQXN5bmMoXCJwdWJsaXNoXCIsIFtdKTtcbiAgICAgICAgfSk7XG4gICAgfVxufTtcbm1vZHVsZS5leHBvcnRzID0gY2xpOyJdfQ==