buddy-workbench 0.2.6 → 0.2.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json
CHANGED
|
@@ -144,7 +144,14 @@ async function readGitFile(folder, ref, filePath) {
|
|
|
144
144
|
}
|
|
145
145
|
|
|
146
146
|
function pathOf(change) {
|
|
147
|
-
|
|
147
|
+
const path = change?.path;
|
|
148
|
+
if (typeof path === 'string') return path;
|
|
149
|
+
if (typeof path?.toString === 'function') return path.toString();
|
|
150
|
+
if (Array.isArray(path?.components)) return path.components.join('/');
|
|
151
|
+
if (typeof path?.name === 'string') return path.name;
|
|
152
|
+
if (typeof path?.src === 'string') return path.src;
|
|
153
|
+
if (typeof path?.src?.toString === 'string') return path.src.toString;
|
|
154
|
+
return '';
|
|
148
155
|
}
|
|
149
156
|
|
|
150
157
|
function extractTextFromContent(data) {
|
|
@@ -248,7 +255,7 @@ export function UserProfile({ userId }: { userId: string }) {
|
|
|
248
255
|
</Card>
|
|
249
256
|
);
|
|
250
257
|
}`,
|
|
251
|
-
defaultChoice: '
|
|
258
|
+
defaultChoice: 'target'
|
|
252
259
|
},
|
|
253
260
|
{
|
|
254
261
|
path: 'src/config/application-settings.json',
|
|
@@ -282,8 +289,10 @@ export function UserProfile({ userId }: { userId: string }) {
|
|
|
282
289
|
const changes = changesResponse.data?.values || [];
|
|
283
290
|
const sourceCommit = pr.fromRef?.latestCommit || pr.fromRef?.id;
|
|
284
291
|
const targetCommit = pr.toRef?.latestCommit || pr.toRef?.id;
|
|
285
|
-
|
|
286
|
-
|
|
292
|
+
const hasConflicts = Boolean(mergeResponse.data?.conflicted);
|
|
293
|
+
const apiConflictedPaths = new Set(changes.filter((change) => change?.conflict).map(pathOf).filter(Boolean));
|
|
294
|
+
let conflictedPaths = apiConflictedPaths.size ? apiConflictedPaths : null;
|
|
295
|
+
if (hasConflicts && !conflictedPaths) {
|
|
287
296
|
try {
|
|
288
297
|
const folder = await findWorkspaceRepository(parsed);
|
|
289
298
|
await git(folder, ['fetch', 'origin', '--prune']);
|
|
@@ -294,14 +303,13 @@ export function UserProfile({ userId }: { userId: string }) {
|
|
|
294
303
|
}
|
|
295
304
|
const files = await Promise.all(changes.map(async (change) => {
|
|
296
305
|
const path = pathOf(change);
|
|
297
|
-
if (conflictedPaths && !conflictedPaths.has(path)) return null;
|
|
298
306
|
const [sourceContent, targetContent] = await Promise.all([
|
|
299
307
|
readFile({ ...parsed, commit: sourceCommit, path }),
|
|
300
308
|
readFile({ ...parsed, commit: targetCommit, path })
|
|
301
309
|
]);
|
|
302
|
-
return { path, sourceContent, targetContent, defaultChoice: '
|
|
310
|
+
return { path, sourceContent, targetContent, changeType: change.type, defaultChoice: 'target' };
|
|
303
311
|
}));
|
|
304
|
-
res.json({ conflicted:
|
|
312
|
+
res.json({ conflicted: hasConflicts, pr: { title: pr.title, sourceBranch: pr.fromRef?.displayId, targetBranch: pr.toRef?.displayId }, files: files.filter((file) => file?.path).map((file) => ({ ...file, conflicted: Boolean(conflictedPaths?.has(file.path)) })) });
|
|
305
313
|
} catch (error) {
|
|
306
314
|
res.status(500).json({ error: `Unable to load conflict data: ${error.message}` });
|
|
307
315
|
}
|