mirror of
https://github.com/monkeytypegame/monkeytype.git
synced 2025-02-03 04:19:06 +08:00
added result types
This commit is contained in:
parent
9de4019b80
commit
9962edd020
1 changed files with 97 additions and 0 deletions
97
backend/types/types.d.ts
vendored
97
backend/types/types.d.ts
vendored
|
@ -72,4 +72,101 @@ declare namespace MonkeyTypes {
|
|||
modifiedOn: number;
|
||||
enabled: boolean;
|
||||
}
|
||||
|
||||
type Mode = "time" | "words" | "quote" | "zen" | "custom";
|
||||
|
||||
type Mode2<M extends Mode> = keyof PersonalBests[M];
|
||||
|
||||
type Difficulty = "normal" | "expert" | "master";
|
||||
interface PersonalBest {
|
||||
acc: number;
|
||||
consistency: number;
|
||||
difficulty: Difficulty;
|
||||
lazyMode: boolean;
|
||||
language: string;
|
||||
punctuation: boolean;
|
||||
raw: number;
|
||||
wpm: number;
|
||||
timestamp: number;
|
||||
}
|
||||
interface PersonalBests {
|
||||
time: {
|
||||
[key: number]: PersonalBest[];
|
||||
};
|
||||
words: {
|
||||
[key: number]: PersonalBest[];
|
||||
};
|
||||
quote: { [quote: string]: PersonalBest[] };
|
||||
custom: { custom: PersonalBest[] };
|
||||
zen: {
|
||||
zen: PersonalBest[];
|
||||
};
|
||||
}
|
||||
|
||||
interface ChartData {
|
||||
wpm: number[];
|
||||
raw: number[];
|
||||
err: number[];
|
||||
unsmoothedRaw?: number[];
|
||||
}
|
||||
|
||||
interface KeyStats {
|
||||
average: number;
|
||||
sd: number;
|
||||
}
|
||||
|
||||
interface Result<M extends Mode> {
|
||||
_id: string;
|
||||
wpm: number;
|
||||
rawWpm: number;
|
||||
charStats: number[];
|
||||
correctChars?: number; // --------------
|
||||
incorrectChars?: number; // legacy results
|
||||
acc: number;
|
||||
mode: M;
|
||||
mode2: Mode2<M>;
|
||||
quoteLength: number;
|
||||
timestamp: number;
|
||||
restartCount: number;
|
||||
incompleteTestSeconds: number;
|
||||
testDuration: number;
|
||||
afkDuration: number;
|
||||
tags: string[];
|
||||
consistency: number;
|
||||
keyConsistency: number;
|
||||
chartData: ChartData | "toolong";
|
||||
uid: string;
|
||||
keySpacingStats: KeyStats;
|
||||
keyDurationStats: KeyStats;
|
||||
isPb?: boolean;
|
||||
bailedOut?: boolean;
|
||||
blindMode?: boolean;
|
||||
lazyMode?: boolean;
|
||||
difficulty: Difficulty;
|
||||
funbox?: string;
|
||||
language: string;
|
||||
numbers?: boolean;
|
||||
punctuation?: boolean;
|
||||
hash?: string;
|
||||
}
|
||||
|
||||
interface CompletedEvent extends MonkeyTypes.Result<MonkeyTypes.Mode> {
|
||||
keySpacing: number[] | "toolong";
|
||||
keyDuration: number[] | "toolong";
|
||||
customText: MonkeyTypes.CustomText;
|
||||
smoothConsistency: number;
|
||||
wpmConsistency: number;
|
||||
lang: string;
|
||||
challenge?: string | null;
|
||||
}
|
||||
|
||||
interface CustomText {
|
||||
text: string[];
|
||||
isWordRandom: boolean;
|
||||
isTimeRandom: boolean;
|
||||
word: number;
|
||||
time: number;
|
||||
delimiter: string;
|
||||
textLen?: number;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue