UNPKG

private-npm-publish

Version:

prevent accidentally npm published commandline tool.

50 lines (49 loc) 4.75 kB
// LICENSE : MIT "use strict"; var Promise = require("bluebird"); var npm = require("npm"); var debug = require("debug")("npm-run"); /** * load `npm` config * @returns {Promise} the promise was filled when have finished load npm config. */ function loadNpmAsync() { return new Promise(function (resolve, reject) { npm.load(function (err, npm) { if (err) { reject(err); } else { resolve(npm); } }); }); } /** * execute npm <command> * the command is like "publish". * @param {string} command the command is like "install" * @param {string[]} argv te * http://nodejs.jp/nodejs.org_ja/api/child_process.html#child_process_child_process_spawn_command_args_options * @return {Promise} */ function npmRunAsync(command) { var argv = arguments[1] === undefined ? [] : arguments[1]; return loadNpmAsync().then(function () { return new Promise(function (resolve, reject) { npm.commands[command](argv, function (error, data) { if (error) { return reject(error); } resolve(data); }); npm.registry.log.on("log", function (message) { debug(message); }); }); }); } module.exports = { loadNpmAsync: loadNpmAsync, npmRunAsync: npmRunAsync }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9ucG0tcnVuLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQSxZQUFZLENBQUM7QUFDYixJQUFJLE9BQU8sR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7QUFDbEMsSUFBSSxHQUFHLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3pCLElBQUksS0FBSyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQzs7Ozs7QUFLeEMsU0FBUyxZQUFZLEdBQUc7QUFDcEIsV0FBTyxJQUFJLE9BQU8sQ0FBQyxVQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUk7QUFDbkMsV0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxHQUFHLEVBQUU7QUFDekIsZ0JBQUksR0FBRyxFQUFFO0FBQ0wsc0JBQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUNmLE1BQU07QUFDSCx1QkFBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ2hCO1NBQ0osQ0FBQyxDQUFDO0tBQ04sQ0FBQyxDQUFDO0NBQ047Ozs7Ozs7OztBQVNELFNBQVMsV0FBVyxDQUFDLE9BQU8sRUFBYTtRQUFYLElBQUksZ0NBQUcsRUFBRTs7QUFDbkMsV0FBTyxZQUFZLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWTtBQUNuQyxlQUFPLElBQUksT0FBTyxDQUFDLFVBQUMsT0FBTyxFQUFFLE1BQU0sRUFBSTtBQUNuQyxlQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxVQUFVLEtBQUssRUFBRSxJQUFJLEVBQUU7QUFDL0Msb0JBQUksS0FBSyxFQUFFO0FBQ1AsMkJBQU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO2lCQUN4QjtBQUNELHVCQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDakIsQ0FBQyxDQUFDO0FBQ0gsZUFBRyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxVQUFVLE9BQU8sRUFBRTtBQUMxQyxxQkFBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQ2xCLENBQUMsQ0FBQztTQUNOLENBQUMsQ0FBQztLQUNOLENBQUMsQ0FBQztDQUNOO0FBQ0QsTUFBTSxDQUFDLE9BQU8sR0FBRztBQUNiLGdCQUFZLEVBQVosWUFBWTtBQUNaLGVBQVcsRUFBWCxXQUFXO0NBQ2QsQ0FBQyIsImZpbGUiOiJzcmMvbnBtLXJ1bi5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIExJQ0VOU0UgOiBNSVRcblwidXNlIHN0cmljdFwiO1xudmFyIFByb21pc2UgPSByZXF1aXJlKFwiYmx1ZWJpcmRcIik7XG52YXIgbnBtID0gcmVxdWlyZShcIm5wbVwiKTtcbnZhciBkZWJ1ZyA9IHJlcXVpcmUoXCJkZWJ1Z1wiKShcIm5wbS1ydW5cIik7XG4vKipcbiAqIGxvYWQgYG5wbWAgY29uZmlnXG4gKiBAcmV0dXJucyB7UHJvbWlzZX0gdGhlIHByb21pc2Ugd2FzIGZpbGxlZCB3aGVuIGhhdmUgZmluaXNoZWQgbG9hZCBucG0gY29uZmlnLlxuICovXG5mdW5jdGlvbiBsb2FkTnBtQXN5bmMoKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpPT4ge1xuICAgICAgICBucG0ubG9hZChmdW5jdGlvbiAoZXJyLCBucG0pIHtcbiAgICAgICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICAgICAgICByZWplY3QoZXJyKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmVzb2x2ZShucG0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9KTtcbn1cbi8qKlxuICogZXhlY3V0ZSBucG0gPGNvbW1hbmQ+XG4gKiB0aGUgY29tbWFuZCBpcyBsaWtlIFwicHVibGlzaFwiLlxuICogQHBhcmFtIHtzdHJpbmd9IGNvbW1hbmQgdGhlIGNvbW1hbmQgaXMgbGlrZSBcImluc3RhbGxcIlxuICogQHBhcmFtIHtzdHJpbmdbXX0gYXJndiB0ZVxuICogaHR0cDovL25vZGVqcy5qcC9ub2RlanMub3JnX2phL2FwaS9jaGlsZF9wcm9jZXNzLmh0bWwjY2hpbGRfcHJvY2Vzc19jaGlsZF9wcm9jZXNzX3NwYXduX2NvbW1hbmRfYXJnc19vcHRpb25zXG4gKiBAcmV0dXJuIHtQcm9taXNlfVxuICovXG5mdW5jdGlvbiBucG1SdW5Bc3luYyhjb21tYW5kLCBhcmd2ID0gW10pIHtcbiAgICByZXR1cm4gbG9hZE5wbUFzeW5jKCkudGhlbihmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KT0+IHtcbiAgICAgICAgICAgIG5wbS5jb21tYW5kc1tjb21tYW5kXShhcmd2LCBmdW5jdGlvbiAoZXJyb3IsIGRhdGEpIHtcbiAgICAgICAgICAgICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlamVjdChlcnJvcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJlc29sdmUoZGF0YSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIG5wbS5yZWdpc3RyeS5sb2cub24oXCJsb2dcIiwgZnVuY3Rpb24gKG1lc3NhZ2UpIHtcbiAgICAgICAgICAgICAgICBkZWJ1ZyhtZXNzYWdlKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9KTtcbn1cbm1vZHVsZS5leHBvcnRzID0ge1xuICAgIGxvYWROcG1Bc3luYyxcbiAgICBucG1SdW5Bc3luY1xufTsiXX0=