UNPKG

scrabble-solver

Version:

Scrabble Solver 2 - Free, open-source, cross-platform, multi-language analysis tool for Scrabble, Scrabble Duel, Super Scrabble, Letter League, Literaki, and Kelimelik. Quickly find the top-scoring words using the given board and tiles.

75 lines (57 loc) 2.11 kB
import { Board, BoardJson, Game, Locale, ShowCoordinates } from '@scrabble-solver/types'; import store2 from 'store2'; import { AutoGroupTiles, InputMode, Rack } from 'types'; const AUTO_GROUP_TILES = 'auto-group-tiles'; const BOARD = 'board'; const GAME_ID = 'config-id'; const INPUT_MODE = 'input-mode'; const LOCALE = 'locale'; const RACK = 'rack'; const SHOW_COORDINATES = 'show-coordinates'; const store = store2.namespace('scrabble-solver'); export const localStorage = { getAutoGroupTiles(): AutoGroupTiles | undefined { return store.get(AUTO_GROUP_TILES) as AutoGroupTiles | undefined; }, setAutoGroupTiles(autoGroupTiles: AutoGroupTiles | undefined): void { store.set(AUTO_GROUP_TILES, autoGroupTiles, true); }, getBoard(): Board | undefined { const serialized = store.get(BOARD) as string | undefined; return serialized ? Board.fromJson(JSON.parse(serialized) as BoardJson) : undefined; }, setBoard(board: Board | undefined): void { const serialized = board ? JSON.stringify(board.toJson()) : board; store.set(BOARD, serialized, true); }, getGame(): Game | undefined { return store.get(GAME_ID) as Game | undefined; }, setGame(game: Game | undefined): void { store.set(GAME_ID, game, true); }, getInputMode(): InputMode | undefined { return store.get(INPUT_MODE) as InputMode | undefined; }, setInputMode(inputMode: InputMode | undefined): void { store.set(INPUT_MODE, inputMode, true); }, getLocale(): Locale | undefined { return store.get(LOCALE) as Locale | undefined; }, setLocale(locale: Locale | undefined): void { store.set(LOCALE, locale, true); }, getRack(): Rack | undefined { return store.get(RACK) as Rack | undefined; }, setRack(rack: Rack | undefined): void { store.set(RACK, rack, true); }, getShowCoordinates(): ShowCoordinates | undefined { return store.get(SHOW_COORDINATES) as ShowCoordinates | undefined; }, setShowCoordinates(showCoordinates: ShowCoordinates | undefined): void { store.set(SHOW_COORDINATES, showCoordinates, true); }, };