Skip to content

Commit 162b92c

Browse files
Bashamegasaschanaz
andauthored
Update src/build/patches.ts
Co-authored-by: Kagami Sascha Rosylight <[email protected]>
1 parent 26e7af8 commit 162b92c

File tree

1 file changed

+8
-29
lines changed

1 file changed

+8
-29
lines changed

src/build/patches.ts

Lines changed: 8 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -418,35 +418,14 @@ export default async function readPatches(): Promise<{
418418
// Stage 1: Parse all file KDLs into Documents
419419
const documents = await Promise.all(fileUrls.map(readPatchDocument));
420420

421-
// Stage 2: For each document, split main nodes and removals nodes
422-
const patchNodeGroups: Node[][] = [];
423-
const removalsNodeGroups: Node[][] = [];
424-
425-
for (const doc of documents) {
426-
const mainNodes: Node[] = [];
427-
let localRemovalsNodes: Node[] = [];
428-
for (const node of doc) {
429-
if (node.name === "removals") {
430-
// Each removals node may itself contain multiple root nodes
431-
localRemovalsNodes = localRemovalsNodes.concat(node.children);
432-
} else {
433-
mainNodes.push(node);
434-
}
435-
}
436-
patchNodeGroups.push(mainNodes);
437-
if (localRemovalsNodes.length > 0) {
438-
removalsNodeGroups.push(localRemovalsNodes);
439-
}
440-
}
441-
442-
// Stage 3: Merge all main patches and removals separately using convertKDLNodes
443-
const patchObjs = patchNodeGroups.map((nodes) => convertKDLNodes(nodes));
444-
const removalObjs = removalsNodeGroups.map((nodes) => convertKDLNodes(nodes));
445-
446-
const patches = patchObjs.reduce((acc, cur) => merge(acc, cur), {});
447-
const removalPatches = sanitizeRemovals(
448-
removalObjs.reduce((acc, cur) => merge(acc, cur), {}),
449-
) as DeepPartial<WebIdl>;
421+
// Stage 2: Group by patches or removals
422+
const merged = documents.flat();
423+
const patchNodes = merged.filter((node) => node.name !== "removals");
424+
const removalNodes = merged.filter((node) => node.name === "removals").map((node) => node.children)).flat();
425+
426+
// Stage 3: Convert the nodes for patches and removals respectively
427+
const patches = convertKDLNodes(patchNodes);
428+
const removalPatches = sanitizeRemovals(convertKDLNodes(removalNodes));
450429

451430
// Only because we don't use them
452431
removalPatches.mixins = undefined;

0 commit comments

Comments
 (0)