gameConfig.model.ts 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. import { getStorage, removeStorage, setStorage } from "../storage";
  2. export interface GameConfig {
  3. mini_program_id: string // 微信小游戏APPID
  4. version: string // 游戏版本号
  5. game_id: number // 平台游戏ID
  6. game_name: string // 游戏名称
  7. }
  8. const STORAGE_KEY = "gameConfig";
  9. const DEFAULT_CONFIG: GameConfig = {
  10. mini_program_id: "",
  11. version: "",
  12. game_id: 0,
  13. game_name: ""
  14. }
  15. class GameConfigModel {
  16. private static instance: GameConfigModel | null = null;
  17. private data: GameConfig;
  18. private constructor() {
  19. this.data = getStorage<GameConfig>(STORAGE_KEY, DEFAULT_CONFIG) ?? DEFAULT_CONFIG;
  20. }
  21. static getInstance(): GameConfigModel {
  22. if (!GameConfigModel.instance) {
  23. GameConfigModel.instance = new GameConfigModel();
  24. }
  25. return GameConfigModel.instance;
  26. }
  27. get(): GameConfig {
  28. return this.data;
  29. }
  30. save(config: GameConfig): boolean {
  31. this.data = config;
  32. return setStorage(STORAGE_KEY, config);
  33. }
  34. clear(): boolean {
  35. this.data = { ...DEFAULT_CONFIG };
  36. return removeStorage(STORAGE_KEY);
  37. }
  38. }
  39. export default GameConfigModel;