Skip to content

Commit

Permalink
fix: update typing
Browse files Browse the repository at this point in the history
  • Loading branch information
wxiaoyun committed Jul 31, 2024
1 parent 1cc9467 commit d5aec16
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 10 deletions.
14 changes: 11 additions & 3 deletions packages/rspack/src/stats/StatsFactory.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,11 @@ import type { JsStats, JsStatsError, JsStatsWarning } from "@rspack/binding";
import { HookMap, SyncBailHook, SyncWaterfallHook } from "@rspack/lite-tapable";

import type { Compilation } from "../Compilation";
import { type Comparator, concatComparators } from "../util/comparators";
import {
type AtLeastTwo,
type Comparator,
concatComparators
} from "../util/comparators";
import { type GroupConfig, smartGrouping } from "../util/smartGrouping";

export type KnownStatsFactoryContext = {
Expand Down Expand Up @@ -285,7 +289,9 @@ export class StatsFactory {
h.call(comparators, context)
);
if (comparators.length > 0) {
items.sort(concatComparators(...comparators));
items.sort(
concatComparators(...(comparators as AtLeastTwo<Comparator>))
);
}

// run filter on sorted items
Expand Down Expand Up @@ -341,7 +347,9 @@ export class StatsFactory {
h => h.call(comparators2, context)
);
if (comparators2.length > 0) {
resultItems.sort(concatComparators(...comparators2));
resultItems.sort(
concatComparators(...(comparators2 as AtLeastTwo<Comparator>))
);
}

// group result items
Expand Down
15 changes: 8 additions & 7 deletions packages/rspack/src/util/comparators.ts
Original file line number Diff line number Diff line change
Expand Up @@ -46,12 +46,13 @@ const concatComparatorsCache: TwoKeyWeakMap<
Comparator
> = new TwoKeyWeakMap();

export function concatComparators(...comparators: Comparator[]): Comparator;
export function concatComparators(
c1: Comparator,
c2: Comparator,
...cRest: Comparator[]
): Comparator {
export type AtLeastTwo<T> = [T, T, ...T[]];

export const concatComparators = (
...comps: AtLeastTwo<Comparator>
): Comparator => {
const [c1, c2, ...cRest] = comps;

if (cRest.length > 0) {
const [c3, ...cRest2] = cRest;
return concatComparators(c1, concatComparators(c2, c3, ...cRest2));
Expand All @@ -71,7 +72,7 @@ export function concatComparators(
};
concatComparatorsCache.set(c1, c2, result);
return result;
}
};

export const compareIds = (
a: string | number,
Expand Down

0 comments on commit d5aec16

Please sign in to comment.