Declare the synthetic 4 KiB Mach-O slice alignment accurately while preserving the IDA thinning scenario. Share web cleanup aggregation and process-trace fixture facts instead of duplicating them across consumers and tests; keep the 3% duplication threshold unchanged. Validation: npm run check:ci, test discovery, and 42 focused IDA, process-trace, web workflow and cleanup boundary tests. Duplication falls from 3.01% to 2.99%.
16 lines
552 B
TypeScript
16 lines
552 B
TypeScript
/** Attempt every web workflow cleanup owner and report all failures. */
|
|
export const closeOwnedWebResources = async (
|
|
close: readonly ((() => Promise<void>) | undefined)[],
|
|
message: string,
|
|
): Promise<void> => {
|
|
const results = await Promise.allSettled(
|
|
close.flatMap((owner) =>
|
|
owner === undefined ? [] : [Promise.resolve().then(owner)],
|
|
),
|
|
);
|
|
const failures = results.flatMap((result) =>
|
|
result.status === "rejected" ? [result.reason] : [],
|
|
);
|
|
if (failures.length > 0) throw new AggregateError(failures, message);
|
|
};
|