UNPKG

private-npm-publish

Version:

prevent accidentally npm published commandline tool.

38 lines 5.15 kB
// LICENSE : MIT "use strict"; 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==