57 lines
1.8 KiB
JavaScript
57 lines
1.8 KiB
JavaScript
"use strict";
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true,
|
|
});
|
|
exports.HasteConflictsError = void 0;
|
|
var _path = _interopRequireDefault(require("path"));
|
|
function _interopRequireDefault(e) {
|
|
return e && e.__esModule ? e : { default: e };
|
|
}
|
|
class HasteConflictsError extends Error {
|
|
#conflicts;
|
|
constructor(conflicts) {
|
|
super(
|
|
`Found ${conflicts.length} Haste conflict(s). Haste module IDs must be globally unique in the codebase.`,
|
|
);
|
|
this.#conflicts = conflicts;
|
|
}
|
|
getDetailedMessage(pathsRelativeToRoot) {
|
|
const messages = [];
|
|
const conflicts = this.#conflicts;
|
|
if (conflicts.some((conflict) => conflict.type === "duplicate")) {
|
|
messages.push(
|
|
'Advice: Resolve conflicts of type "duplicate" by renaming one or both of the conflicting modules, or by excluding conflicting paths from Haste.',
|
|
);
|
|
}
|
|
if (conflicts.some((conflict) => conflict.type === "shadowing")) {
|
|
messages.push(
|
|
'Advice: Resolve conflicts of type "shadowing" by moving the modules to the same folder, or by excluding conflicting paths from Haste.',
|
|
);
|
|
}
|
|
let index = 0;
|
|
for (const conflict of conflicts) {
|
|
const itemHeader = index + 1 + ". ";
|
|
const indent = " ".repeat(itemHeader.length + 2);
|
|
messages.push(
|
|
"\n" +
|
|
itemHeader +
|
|
conflict.id +
|
|
(conflict.platform != null ? `.${conflict.platform}` : "") +
|
|
` (${conflict.type})`,
|
|
);
|
|
for (const modulePath of conflict.absolutePaths) {
|
|
messages.push(
|
|
indent +
|
|
(pathsRelativeToRoot != null
|
|
? _path.default.relative(pathsRelativeToRoot, modulePath)
|
|
: modulePath),
|
|
);
|
|
}
|
|
++index;
|
|
}
|
|
return messages.join("\n");
|
|
}
|
|
}
|
|
exports.HasteConflictsError = HasteConflictsError;
|