@unts/patch-package
Version:
Fix broken node modules with no fuss
49 lines (42 loc) • 6.56 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.readPatch = void 0;
const fs_extra_1 = require("fs-extra");
const path_1 = require("path");
const picocolors_1 = __importDefault(require("picocolors"));
const path_2 = require("../path");
const parse_1 = require("./parse");
function readPatch({ patchFilePath, patchDetails, patchDir, }) {
try {
return (0, parse_1.parsePatchFile)((0, fs_extra_1.readFileSync)(patchFilePath).toString());
}
catch (e) {
const fixupSteps = [];
const relativePatchFilePath = (0, path_1.normalize)((0, path_2.relative)(process.cwd(), patchFilePath));
const patchBaseDir = relativePatchFilePath.slice(0, relativePatchFilePath.indexOf(patchDir));
if (patchBaseDir) {
fixupSteps.push(`cd ${patchBaseDir}`);
}
fixupSteps.push(`patch -p1 -i ${relativePatchFilePath.slice(relativePatchFilePath.indexOf(patchDir))}`);
fixupSteps.push(`npx patch-package ${patchDetails.pathSpecifier}`);
if (patchBaseDir) {
fixupSteps.push(`cd ${(0, path_2.relative)((0, path_2.resolve)(process.cwd(), patchBaseDir), process.cwd())}`);
}
console.log(`
${picocolors_1.default.red(picocolors_1.default.bold("**ERROR**"))} ${picocolors_1.default.red(`Failed to apply patch for package ${picocolors_1.default.bold(patchDetails.humanReadablePathSpecifier)}`)}
This happened because the patch file ${relativePatchFilePath} could not be parsed.
If you just upgraded patch-package, you can try running:
${fixupSteps.join("\n ")}
Otherwise, try manually creating the patch file again.
If the problem persists, please submit a bug report:
https://github.com/ds300/patch-package/issues/new?title=Patch+file+parse+error&body=%3CPlease+attach+the+patch+file+in+question%3E
`);
process.exit(1);
}
return [];
}
exports.readPatch = readPatch;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXRjaC9yZWFkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLHVDQUF1QztBQUN2QywrQkFBZ0M7QUFDaEMsNERBQStCO0FBRS9CLGtDQUEyQztBQUMzQyxtQ0FBdUQ7QUFFdkQsU0FBZ0IsU0FBUyxDQUFDLEVBQ3hCLGFBQWEsRUFDYixZQUFZLEVBQ1osUUFBUSxHQUtUO0lBQ0MsSUFBSTtRQUNGLE9BQU8sSUFBQSxzQkFBYyxFQUFDLElBQUEsdUJBQVksRUFBQyxhQUFhLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFBO0tBQzlEO0lBQUMsT0FBTyxDQUFDLEVBQUU7UUFDVixNQUFNLFVBQVUsR0FBYSxFQUFFLENBQUE7UUFDL0IsTUFBTSxxQkFBcUIsR0FBRyxJQUFBLGdCQUFTLEVBQ3JDLElBQUEsZUFBUSxFQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxhQUFhLENBQUMsQ0FDdkMsQ0FBQTtRQUNELE1BQU0sWUFBWSxHQUFHLHFCQUFxQixDQUFDLEtBQUssQ0FDOUMsQ0FBQyxFQUNELHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FDeEMsQ0FBQTtRQUNELElBQUksWUFBWSxFQUFFO1lBQ2hCLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxZQUFZLEVBQUUsQ0FBQyxDQUFBO1NBQ3RDO1FBQ0QsVUFBVSxDQUFDLElBQUksQ0FDYixnQkFBZ0IscUJBQXFCLENBQUMsS0FBSyxDQUN6QyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQ3hDLEVBQUUsQ0FDSixDQUFBO1FBQ0QsVUFBVSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsWUFBWSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUE7UUFDbEUsSUFBSSxZQUFZLEVBQUU7WUFDaEIsVUFBVSxDQUFDLElBQUksQ0FDYixNQUFNLElBQUEsZUFBUSxFQUFDLElBQUEsY0FBTyxFQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxZQUFZLENBQUMsRUFBRSxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUN0RSxDQUFBO1NBQ0Y7UUFFRCxPQUFPLENBQUMsR0FBRyxDQUFDO0VBQ2Qsb0JBQU0sQ0FBQyxHQUFHLENBQUMsb0JBQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxvQkFBTSxDQUFDLEdBQUcsQ0FDOUMscUNBQXFDLG9CQUFNLENBQUMsSUFBSSxDQUM5QyxZQUFZLENBQUMsMEJBQTBCLENBQ3hDLEVBQUUsQ0FDSjs7eUNBRW9DLHFCQUFxQjs7OztNQUl4RCxVQUFVLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQzs7Ozs7Ozs7Q0FROUIsQ0FBQyxDQUFBO1FBQ0UsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQTtLQUNoQjtJQUNELE9BQU8sRUFBRSxDQUFBO0FBQ1gsQ0FBQztBQTFERCw4QkEwREMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZWFkRmlsZVN5bmMgfSBmcm9tIFwiZnMtZXh0cmFcIlxuaW1wb3J0IHsgbm9ybWFsaXplIH0gZnJvbSBcInBhdGhcIlxuaW1wb3J0IGNvbG9ycyBmcm9tIFwicGljb2NvbG9yc1wiXG5pbXBvcnQgeyBQYWNrYWdlRGV0YWlscyB9IGZyb20gXCIuLi9QYWNrYWdlRGV0YWlsc1wiXG5pbXBvcnQgeyByZWxhdGl2ZSwgcmVzb2x2ZSB9IGZyb20gXCIuLi9wYXRoXCJcbmltcG9ydCB7IHBhcnNlUGF0Y2hGaWxlLCBQYXRjaEZpbGVQYXJ0IH0gZnJvbSBcIi4vcGFyc2VcIlxuXG5leHBvcnQgZnVuY3Rpb24gcmVhZFBhdGNoKHtcbiAgcGF0Y2hGaWxlUGF0aCxcbiAgcGF0Y2hEZXRhaWxzLFxuICBwYXRjaERpcixcbn06IHtcbiAgcGF0Y2hGaWxlUGF0aDogc3RyaW5nXG4gIHBhdGNoRGV0YWlsczogUGFja2FnZURldGFpbHNcbiAgcGF0Y2hEaXI6IHN0cmluZ1xufSk6IFBhdGNoRmlsZVBhcnRbXSB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIHBhcnNlUGF0Y2hGaWxlKHJlYWRGaWxlU3luYyhwYXRjaEZpbGVQYXRoKS50b1N0cmluZygpKVxuICB9IGNhdGNoIChlKSB7XG4gICAgY29uc3QgZml4dXBTdGVwczogc3RyaW5nW10gPSBbXVxuICAgIGNvbnN0IHJlbGF0aXZlUGF0Y2hGaWxlUGF0aCA9IG5vcm1hbGl6ZShcbiAgICAgIHJlbGF0aXZlKHByb2Nlc3MuY3dkKCksIHBhdGNoRmlsZVBhdGgpLFxuICAgIClcbiAgICBjb25zdCBwYXRjaEJhc2VEaXIgPSByZWxhdGl2ZVBhdGNoRmlsZVBhdGguc2xpY2UoXG4gICAgICAwLFxuICAgICAgcmVsYXRpdmVQYXRjaEZpbGVQYXRoLmluZGV4T2YocGF0Y2hEaXIpLFxuICAgIClcbiAgICBpZiAocGF0Y2hCYXNlRGlyKSB7XG4gICAgICBmaXh1cFN0ZXBzLnB1c2goYGNkICR7cGF0Y2hCYXNlRGlyfWApXG4gICAgfVxuICAgIGZpeHVwU3RlcHMucHVzaChcbiAgICAgIGBwYXRjaCAtcDEgLWkgJHtyZWxhdGl2ZVBhdGNoRmlsZVBhdGguc2xpY2UoXG4gICAgICAgIHJlbGF0aXZlUGF0Y2hGaWxlUGF0aC5pbmRleE9mKHBhdGNoRGlyKSxcbiAgICAgICl9YCxcbiAgICApXG4gICAgZml4dXBTdGVwcy5wdXNoKGBucHggcGF0Y2gtcGFja2FnZSAke3BhdGNoRGV0YWlscy5wYXRoU3BlY2lmaWVyfWApXG4gICAgaWYgKHBhdGNoQmFzZURpcikge1xuICAgICAgZml4dXBTdGVwcy5wdXNoKFxuICAgICAgICBgY2QgJHtyZWxhdGl2ZShyZXNvbHZlKHByb2Nlc3MuY3dkKCksIHBhdGNoQmFzZURpciksIHByb2Nlc3MuY3dkKCkpfWAsXG4gICAgICApXG4gICAgfVxuXG4gICAgY29uc29sZS5sb2coYFxuJHtjb2xvcnMucmVkKGNvbG9ycy5ib2xkKFwiKipFUlJPUioqXCIpKX0gJHtjb2xvcnMucmVkKFxuICAgICAgYEZhaWxlZCB0byBhcHBseSBwYXRjaCBmb3IgcGFja2FnZSAke2NvbG9ycy5ib2xkKFxuICAgICAgICBwYXRjaERldGFpbHMuaHVtYW5SZWFkYWJsZVBhdGhTcGVjaWZpZXIsXG4gICAgICApfWAsXG4gICAgKX1cbiAgICBcbiAgVGhpcyBoYXBwZW5lZCBiZWNhdXNlIHRoZSBwYXRjaCBmaWxlICR7cmVsYXRpdmVQYXRjaEZpbGVQYXRofSBjb3VsZCBub3QgYmUgcGFyc2VkLlxuICAgXG4gIElmIHlvdSBqdXN0IHVwZ3JhZGVkIHBhdGNoLXBhY2thZ2UsIHlvdSBjYW4gdHJ5IHJ1bm5pbmc6XG4gIFxuICAgICR7Zml4dXBTdGVwcy5qb2luKFwiXFxuICAgIFwiKX1cbiAgICBcbiAgT3RoZXJ3aXNlLCB0cnkgbWFudWFsbHkgY3JlYXRpbmcgdGhlIHBhdGNoIGZpbGUgYWdhaW4uXG4gIFxuICBJZiB0aGUgcHJvYmxlbSBwZXJzaXN0cywgcGxlYXNlIHN1Ym1pdCBhIGJ1ZyByZXBvcnQ6XG4gIFxuICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9kczMwMC9wYXRjaC1wYWNrYWdlL2lzc3Vlcy9uZXc/dGl0bGU9UGF0Y2grZmlsZStwYXJzZStlcnJvciZib2R5PSUzQ1BsZWFzZSthdHRhY2grdGhlK3BhdGNoK2ZpbGUraW4rcXVlc3Rpb24lM0VcblxuYClcbiAgICBwcm9jZXNzLmV4aXQoMSlcbiAgfVxuICByZXR1cm4gW11cbn1cbiJdfQ==