New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

publishr

Package Overview
Dependencies
Maintainers
2
Versions
20
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

publishr - npm Package Compare versions

Comparing version 0.0.20 to 0.0.21

lib/dry-runner.js

12

lib/cli.js

@@ -8,2 +8,6 @@ #!/usr/bin/env node

var _dryRunner = require("./dry-runner");
var _dryRunner2 = _interopRequireDefault(_dryRunner);
var _postpublish = require("./postpublish");

@@ -21,7 +25,9 @@

if (cmd === "postpublish") {
(0, _postpublish2.default)();
_postpublish2.default.run();
} else if (cmd === "postversion") {
(0, _postversion2.default)();
_postversion2.default.run();
} else if (cmd === "dry-run") {
_dryRunner2.default.run();
} else {
throw new Error("Unknown command: " + cmd);
throw new Error("Unknown command " + cmd);
}

@@ -28,0 +34,0 @@ };

@@ -11,2 +11,6 @@ "use strict";

var _git = require("./git");
var _git2 = _interopRequireDefault(_git);
var _packageUtils = require("./package-utils");

@@ -20,11 +24,13 @@

fixFiles: function fixFiles(json) {
json._publishr.forEach(function (file) {
if (file.created) {
_fileUtils2.default.removeFile(file.path);
} else {
_fileUtils2.default.checkoutFile(file.path);
}
});
json._publishr = json._publishr || [];
return Promise.all(json._publishr.map(function (file) {
return file.created ? _fileUtils2.default.removeFile(file.path) : _git2.default.checkout(file.path);
}));
},
overwriteFiles: function overwriteFiles(json) {
json.publishr = json.publishr || {};
json.publishr.files = json.publishr.files || {};
json.publishr.dependencies = json.publishr.dependencies || [];
var files = Object.keys(json.publishr.files).map(function (file) {

@@ -31,0 +37,0 @@ return {

@@ -7,4 +7,2 @@ "use strict";

var _child_process = require("child_process");
var _es6Promise = require("es6-promise");

@@ -16,13 +14,21 @@

var _logger = require("./logger");
var _logger2 = _interopRequireDefault(_logger);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var fileUtils = {
checkoutFile: function checkoutFile(filePath) {
readFile: function readFile(filePath) {
return new _es6Promise.Promise(function (resolve, reject) {
(0, _child_process.exec)("git checkout " + filePath, function (err, stdout) {
_fs2.default.readFile(filePath, "utf8", function (err, contents) {
if (err) {
_logger2.default.error("read '" + filePath + "'", err);
return reject(err);
}
return resolve(stdout);
_logger2.default.success("read '" + filePath + "'");
return resolve(contents);
});

@@ -33,12 +39,6 @@ });

return _es6Promise.Promise.all(files.map(function (file) {
return new _es6Promise.Promise(function (resolve, reject) {
_fs2.default.readFile(file.oldPath, "utf8", function (err, contents) {
if (err) {
return reject(err);
}
return fileUtils.readFile(file.oldPath).then(function (contents) {
file.contents = contents;
file.contents = contents;
return resolve(file);
});
return _es6Promise.Promise.resolve(file);
});

@@ -48,14 +48,4 @@ }));

readPackage: function readPackage() {
return new _es6Promise.Promise(function (resolve, reject) {
_fs2.default.readFile("package.json", "utf8", function (readErr, contents) {
if (readErr) {
return reject(readErr);
}
try {
return resolve(JSON.parse(contents));
} catch (parseErr) {
return reject(parseErr);
}
});
return fileUtils.readFile("package.json").then(function (contents) {
return _es6Promise.Promise.resolve(JSON.parse(contents));
});

@@ -67,5 +57,9 @@ },

if (err) {
_logger2.default.error("remove '" + filePath + "'", err);
return reject(err);
}
_logger2.default.success("remove '" + filePath + "'");
return resolve();

@@ -75,52 +69,64 @@ });

},
statFiles: function statFiles(files) {
return _es6Promise.Promise.all(files.map(function (file) {
return new _es6Promise.Promise(function (resolve, reject) {
_fs2.default.stat(file.newPath, function (err) {
if (err && err.code !== "ENOENT") {
return reject(err);
} else if (!err) {
file.created = false;
} else {
file.created = true;
}
statFile: function statFile(filePath) {
return new _es6Promise.Promise(function (resolve, reject) {
_fs2.default.stat(filePath, function (err, stats) {
if (err) {
return reject(err);
}
return resolve(file);
});
return resolve(stats);
});
}));
});
},
writeFiles: function writeFiles(files) {
statFiles: function statFiles(files) {
return _es6Promise.Promise.all(files.map(function (file) {
return new _es6Promise.Promise(function (resolve, reject) {
_fs2.default.writeFile(file.newPath, file.contents, "utf8", function (err) {
if (err) {
return reject(err);
}
return fileUtils.statFile(file.newPath).then(function () {
file.created = false;
file.written = true;
return _es6Promise.Promise.resolve(file);
}).catch(function (err) {
if (err.code !== "ENOENT") {
return _es6Promise.Promise.reject(err);
}
return resolve(file);
});
file.created = true;
return _es6Promise.Promise.resolve(file);
});
}));
},
writePackage: function writePackage(json) {
writeFile: function writeFile(filePath, contents) {
return new _es6Promise.Promise(function (resolve, reject) {
var contents = void 0;
_fs2.default.writeFile(filePath, contents, "utf8", function (err) {
if (err) {
_logger2.default.error("write '" + filePath + "'", err);
try {
contents = JSON.stringify(json, null, 2);
} catch (err) {
return reject(err);
}
_fs2.default.writeFile("package.json", contents, "utf8", function (err) {
if (err) {
return reject(err);
}
_logger2.default.success("write '" + filePath + "'");
return resolve();
});
});
},
writeFiles: function writeFiles(files) {
return _es6Promise.Promise.all(files.map(function (file) {
return fileUtils.writeFile(file.newPath, file.contents).then(function () {
file.written = true;
return _es6Promise.Promise.resolve(file);
});
}));
},
writePackage: function writePackage(json) {
var contents = void 0;
try {
contents = JSON.stringify(json, null, 2);
} catch (err) {
return _es6Promise.Promise.reject(err);
}
return fileUtils.writeFile("package.json", contents);
}

@@ -127,0 +133,0 @@ };

@@ -7,2 +7,6 @@ "use strict";

var _logger = require("./logger");
var _logger2 = _interopRequireDefault(_logger);
var _objectAssign = require("object-assign");

@@ -16,3 +20,3 @@

updateDependencies: function updateDependencies(json) {
if (!json.publishr) {
if (!json.publishr || !json.publishr.dependencies) {
return json;

@@ -33,2 +37,3 @@ }

json.devDependencies[key] = json.dependencies[key];
_logger2.default.success("dependency '" + key + "'");
});

@@ -35,0 +40,0 @@

@@ -17,6 +17,8 @@ "use strict";

var postpublish = function postpublish() {
return _fileUtils2.default.readPackage().then(_fileHandler2.default.fixFiles);
var postpublish = {
run: function run() {
return _fileUtils2.default.readPackage().then(_fileHandler2.default.fixFiles);
}
};
exports.default = postpublish;

@@ -17,6 +17,8 @@ "use strict";

var postversion = function postversion() {
return _fileUtils2.default.readPackage().then(_fileHandler2.default.overwriteFiles);
var postversion = {
run: function run() {
return _fileUtils2.default.readPackage().then(_fileHandler2.default.overwriteFiles);
}
};
exports.default = postversion;
{
"name": "publishr",
"version": "0.0.20",
"version": "0.0.21",
"description": "A tool for harmonious publishing of git and npm packages.",

@@ -12,2 +12,3 @@ "bin": {

"cover": "rimraf coverage && NODE_PATH=src babel-node node_modules/.bin/babel-istanbul cover node_modules/.bin/_mocha -- --require test/main.js --recursive test",
"dry-run": "node lib/cli.js dry-run",
"lint": "eslint src test",

@@ -27,3 +28,6 @@ "test": "npm run lint && npm run cover && npm run check-coverage",

"dependencies": {
"chalk": "^1.1.3",
"es6-promise": "^3.2.1",
"log-symbols": "^1.0.2",
"mock-fs": "^3.9.0",
"object-assign": "^4.1.0",

@@ -41,4 +45,2 @@ "rimraf": "^2.5.2"

"mocha": "^2.5.3",
"mock-fs": "^3.9.0",
"proxyquire": "^1.7.9",
"sinon": "^1.17.4",

@@ -45,0 +47,0 @@ "sinon-chai": "^2.8.0",

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc