Skip to content

Commit 534f560

Browse files
committed
perf: Invoke once and reuse (#3169)
1 parent 268bffb commit 534f560

File tree

2 files changed

+24
-20
lines changed

2 files changed

+24
-20
lines changed

docs/guides/how-to-add-contest-table-provider.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,9 +115,11 @@ function prepareContestProviderPresets() {
115115
};
116116
}
117117

118+
const presets = prepareContestProviderPresets();
119+
118120
export const contestTableProviderGroups: Record<ProviderKey, ContestTableProviderGroup> = {
119121
// ... 既存のコード
120-
myNewProvider: prepareContestProviderPresets().myNewProvider(),
122+
myNewProvider: presets().myNewProvider(),
121123
};
122124
```
123125

src/features/tasks/utils/contest-table/contest_table_provider_groups.ts

Lines changed: 21 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -226,26 +226,28 @@ export const prepareContestProviderPresets = () => {
226226
};
227227
};
228228

229+
const presets = prepareContestProviderPresets();
230+
229231
export const contestTableProviderGroups = {
230-
abs: prepareContestProviderPresets().ABS(),
231-
abc319Onwards: prepareContestProviderPresets().ABC319Onwards(),
232-
fromAbc212ToAbc318: prepareContestProviderPresets().ABC212ToABC318(),
233-
fromAbc126ToAbc211: prepareContestProviderPresets().ABC126ToABC211(),
234-
fromAbc042ToAbc125: prepareContestProviderPresets().ABC042ToABC125(),
235-
arc104Onwards: prepareContestProviderPresets().ARC104Onwards(),
236-
fromArc058ToArc103: prepareContestProviderPresets().ARC058ToARC103(),
237-
agc001Onwards: prepareContestProviderPresets().AGC001Onwards(),
238-
abcLike: prepareContestProviderPresets().ABCLike(),
239-
awc0001Onwards: prepareContestProviderPresets().AWC0001Onwards(),
240-
fromAbc001ToAbc041: prepareContestProviderPresets().ABC001ToABC041(),
241-
fromArc001ToArc057: prepareContestProviderPresets().ARC001ToARC057(),
242-
typical90: prepareContestProviderPresets().Typical90(),
243-
tessokuBook: prepareContestProviderPresets().TessokuBook(),
244-
mathAndAlgorithm: prepareContestProviderPresets().MathAndAlgorithm(),
245-
dps: prepareContestProviderPresets().dps(), // Dynamic Programming (DP) Contests
246-
acl: prepareContestProviderPresets().Acl(),
247-
joiFirstQualRound: prepareContestProviderPresets().JOIFirstQualRound(),
248-
joiSecondQualAndSemiFinalRound: prepareContestProviderPresets().JOISecondQualAndSemiFinalRound(),
232+
abs: presets.ABS(),
233+
abc319Onwards: presets.ABC319Onwards(),
234+
fromAbc212ToAbc318: presets.ABC212ToABC318(),
235+
fromAbc126ToAbc211: presets.ABC126ToABC211(),
236+
fromAbc042ToAbc125: presets.ABC042ToABC125(),
237+
arc104Onwards: presets.ARC104Onwards(),
238+
fromArc058ToArc103: presets.ARC058ToARC103(),
239+
agc001Onwards: presets.AGC001Onwards(),
240+
abcLike: presets.ABCLike(),
241+
awc0001Onwards: presets.AWC0001Onwards(),
242+
fromAbc001ToAbc041: presets.ABC001ToABC041(),
243+
fromArc001ToArc057: presets.ARC001ToARC057(),
244+
typical90: presets.Typical90(),
245+
tessokuBook: presets.TessokuBook(),
246+
mathAndAlgorithm: presets.MathAndAlgorithm(),
247+
dps: presets.dps(), // Dynamic Programming (DP) Contests
248+
acl: presets.Acl(),
249+
joiFirstQualRound: presets.JOIFirstQualRound(),
250+
joiSecondQualAndSemiFinalRound: presets.JOISecondQualAndSemiFinalRound(),
249251
};
250252

251253
export type ContestTableProviderGroups = keyof typeof contestTableProviderGroups;

0 commit comments

Comments
 (0)