( beforeContent: unknown, afterContent: unknown )
| 356 | }; |
| 357 | |
| 358 | const compareDependencyChanges = ( |
| 359 | beforeContent: unknown, |
| 360 | afterContent: unknown |
| 361 | ): { |
| 362 | readonly onlyDevDepsChanged: boolean; |
| 363 | readonly onlyDepsChanged: boolean; |
| 364 | readonly hasChanges: boolean; |
| 365 | } => { |
| 366 | const before = beforeContent as Record<string, unknown>; |
| 367 | const after = afterContent as Record<string, unknown>; |
| 368 | |
| 369 | const beforeDevDeps = extractDependencies(before, 'devDependencies'); |
| 370 | const afterDevDeps = extractDependencies(after, 'devDependencies'); |
| 371 | const beforeDeps = extractDependencies(before, 'dependencies'); |
| 372 | const afterDeps = extractDependencies(after, 'dependencies'); |
| 373 | |
| 374 | const devDepsChanged = JSON.stringify(beforeDevDeps) !== JSON.stringify(afterDevDeps); |
| 375 | const depsChanged = JSON.stringify(beforeDeps) !== JSON.stringify(afterDeps); |
| 376 | |
| 377 | const otherFieldsChanged = Object.keys({ ...before, ...after }).some( |
| 378 | (key) => |
| 379 | key !== 'devDependencies' && |
| 380 | key !== 'dependencies' && |
| 381 | JSON.stringify(before[key]) !== JSON.stringify(after[key]) |
| 382 | ); |
| 383 | |
| 384 | return { |
| 385 | onlyDevDepsChanged: devDepsChanged && !depsChanged && !otherFieldsChanged, |
| 386 | onlyDepsChanged: depsChanged && !devDepsChanged && !otherFieldsChanged, |
| 387 | hasChanges: devDepsChanged || depsChanged || otherFieldsChanged, |
| 388 | }; |
| 389 | }; |
| 390 | |
| 391 | const processAfterContent = (beforeContent: unknown) => (afterContent: unknown) => |
| 392 | Effect.if(!beforeContent || !afterContent, { |
no test coverage detected