players.ts

 1import { SingleColorToken } from "@tokens-studio/types"
 2import { ColorScheme, Players } from "../../common"
 3import { colorToken } from "./token"
 4
 5export type PlayerToken = Record<"selection" | "cursor", SingleColorToken>
 6
 7export type PlayersToken = Record<keyof Players, PlayerToken>
 8
 9function buildPlayerToken(
10    colorScheme: ColorScheme,
11    index: number
12): PlayerToken {
13    const playerNumber = index.toString() as keyof Players
14
15    return {
16        selection: colorToken(
17            `player${index}Selection`,
18            colorScheme.players[playerNumber].selection
19        ),
20        cursor: colorToken(
21            `player${index}Cursor`,
22            colorScheme.players[playerNumber].cursor
23        ),
24    }
25}
26
27export const playersToken = (colorScheme: ColorScheme): PlayersToken => ({
28    "0": buildPlayerToken(colorScheme, 0),
29    "1": buildPlayerToken(colorScheme, 1),
30    "2": buildPlayerToken(colorScheme, 2),
31    "3": buildPlayerToken(colorScheme, 3),
32    "4": buildPlayerToken(colorScheme, 4),
33    "5": buildPlayerToken(colorScheme, 5),
34    "6": buildPlayerToken(colorScheme, 6),
35    "7": buildPlayerToken(colorScheme, 7),
36})