From 2d20b46ac74740d2318832b534396601c881b344 Mon Sep 17 00:00:00 2001 From: Rong Mantle Bao Date: Fri, 28 Apr 2023 18:00:58 +0800 Subject: [PATCH] chore: add readonly qualifications --- src/common/{TSize.ts => ISize.ts} | 2 +- src/common/index.ts | 4 ++-- src/components/CommonLayout.tsx | 4 ++-- src/components/blocksGrid/IBlockDisplay.ts | 6 +++--- src/components/blocksGrid/blocksGridSlice.ts | 6 +++--- src/customization/color_scheme/IColorScheme.ts | 6 +++--- src/customization/map/IMap.ts | 4 ++-- src/model/EventArgs.ts | 2 +- src/model/TetriminoHelper.ts | 4 ++-- src/model/generation/IGeneratorMessage.ts | 4 ++-- src/model/generation/internal/PatternGenerator.ts | 4 ++-- src/model/generation/internal/TetriminoSorter.ts | 8 ++++---- src/model/index.ts | 4 ++-- src/viewmodel/GameViewModel.ts | 4 ++-- src/viewmodel/IBlockSprite.ts | 6 +++--- 15 files changed, 34 insertions(+), 34 deletions(-) rename src/common/{TSize.ts => ISize.ts} (96%) diff --git a/src/common/TSize.ts b/src/common/ISize.ts similarity index 96% rename from src/common/TSize.ts rename to src/common/ISize.ts index 2cb75628..d2364843 100644 --- a/src/common/TSize.ts +++ b/src/common/ISize.ts @@ -18,7 +18,7 @@ /** * Represents a size (width and height). */ -export type TSize = { +export interface ISize { readonly width: number readonly height: number } diff --git a/src/common/index.ts b/src/common/index.ts index e69bbc67..3bbde2de 100644 --- a/src/common/index.ts +++ b/src/common/index.ts @@ -28,8 +28,8 @@ import { isNil } from "./isNil" import { rearrange } from "./rearrange" import { waitForEvent } from "./waitForEvent" +import type { ISize } from "./ISize" import type { TPosition } from "./TPosition" -import type { TSize } from "./TSize" export { DefaultGameUpdateIntervalMilliseconds, @@ -43,4 +43,4 @@ export { isNil, formatDuration, } -export type { TSize, TPosition } +export type { ISize, TPosition } diff --git a/src/components/CommonLayout.tsx b/src/components/CommonLayout.tsx index b8c281c3..24bc4260 100644 --- a/src/components/CommonLayout.tsx +++ b/src/components/CommonLayout.tsx @@ -35,8 +35,8 @@ import { appStore } from "../viewmodel" import { MainAppBar } from "./mainAppBar/MainAppBar" export interface IPageLocationElement { - name: string - path: string + readonly name: string + readonly path: string } export interface ICommonLayoutProps { diff --git a/src/components/blocksGrid/IBlockDisplay.ts b/src/components/blocksGrid/IBlockDisplay.ts index 5bebde55..535643ee 100644 --- a/src/components/blocksGrid/IBlockDisplay.ts +++ b/src/components/blocksGrid/IBlockDisplay.ts @@ -18,7 +18,7 @@ import type { IBlockSprite } from "../../viewmodel" export interface IBlockDisplay extends IBlockSprite { - hasContent: boolean - hasBorder: boolean - symbolColor: string + readonly hasContent: boolean + readonly hasBorder: boolean + readonly symbolColor: string } diff --git a/src/components/blocksGrid/blocksGridSlice.ts b/src/components/blocksGrid/blocksGridSlice.ts index 040a638a..800242e7 100644 --- a/src/components/blocksGrid/blocksGridSlice.ts +++ b/src/components/blocksGrid/blocksGridSlice.ts @@ -19,12 +19,12 @@ import { forEach } from "lodash" import { createSlice } from "@reduxjs/toolkit" -import { IBlockSprite } from "../../viewmodel" - import type { PayloadAction } from "@reduxjs/toolkit" +import type { IBlockSprite } from "../../viewmodel" + interface IBlocksGridState { - sprites: IBlockSprite[] + readonly sprites: IBlockSprite[] } const blocksGridInitialState: IBlocksGridState = { sprites: [] } diff --git a/src/customization/color_scheme/IColorScheme.ts b/src/customization/color_scheme/IColorScheme.ts index d6312f47..c6c4fd13 100644 --- a/src/customization/color_scheme/IColorScheme.ts +++ b/src/customization/color_scheme/IColorScheme.ts @@ -16,10 +16,10 @@ */ export interface IColorSchemeRule { - atomicNumberRange: { from: number; to: number } - color: string + readonly atomicNumberRange: { readonly from: number; readonly to: number } + readonly color: string } export interface IColorScheme { - rules: IColorSchemeRule[] + readonly rules: IColorSchemeRule[] } diff --git a/src/customization/map/IMap.ts b/src/customization/map/IMap.ts index acae3981..2932d1cd 100644 --- a/src/customization/map/IMap.ts +++ b/src/customization/map/IMap.ts @@ -15,7 +15,7 @@ * along with this program. If not, see https://www.gnu.org/licenses/ . */ -import type { TSize } from "../../common" +import type { ISize } from "../../common" export interface IMapCell { readonly atomicNumber: number @@ -27,5 +27,5 @@ export type TMapRow = IMapCell[] export interface IMap { readonly map: TMapRow[] readonly totalAvailableBlocksCount: number - readonly playAreaSize: TSize + readonly playAreaSize: ISize } diff --git a/src/model/EventArgs.ts b/src/model/EventArgs.ts index 79a7c4ba..9c102c58 100644 --- a/src/model/EventArgs.ts +++ b/src/model/EventArgs.ts @@ -17,7 +17,7 @@ import { Block } from "./Block" -export type TBlocksChangedEventArgs = { +export interface IBlocksChangedEventArgs { readonly blocks: Block[] readonly disappeared: boolean } diff --git a/src/model/TetriminoHelper.ts b/src/model/TetriminoHelper.ts index 067b56df..e17305e3 100644 --- a/src/model/TetriminoHelper.ts +++ b/src/model/TetriminoHelper.ts @@ -19,7 +19,7 @@ import { Block } from "./Block" import { Direction } from "./Direction" import { TetriminoKind } from "./TetriminoKind" -import type { TPosition, TSize } from "../common" +import type { ISize, TPosition } from "../common" const CubicDownMask: number[][] = [ [3, 4], @@ -408,7 +408,7 @@ export function getPositionByFirstBlock( export function getInitialPositionByKind( kind: TetriminoKind, - playAreaSize: TSize + playAreaSize: ISize ): TPosition { let length: number switch (kind) { diff --git a/src/model/generation/IGeneratorMessage.ts b/src/model/generation/IGeneratorMessage.ts index 779b5d4d..d907dae6 100644 --- a/src/model/generation/IGeneratorMessage.ts +++ b/src/model/generation/IGeneratorMessage.ts @@ -18,6 +18,6 @@ import { MessageType } from "./MessageType" export interface IGeneratorMessage { - type: MessageType - content: T + readonly type: MessageType + readonly content: T } diff --git a/src/model/generation/internal/PatternGenerator.ts b/src/model/generation/internal/PatternGenerator.ts index fa9038d8..ffa9410e 100644 --- a/src/model/generation/internal/PatternGenerator.ts +++ b/src/model/generation/internal/PatternGenerator.ts @@ -28,7 +28,7 @@ import { import { TetriminoKind } from "../../TetriminoKind" import { sort } from "./TetriminoSorter" -import type { TPosition, TSize } from "../../../common" +import type { TPosition, ISize } from "../../../common" import type { IMap } from "../../../customization" function fastRandom(startInc: number, endExc: number): number { @@ -233,7 +233,7 @@ class KindDirectionsPair { * @param tetriminos The tetriminos to prime. * @param playAreaSize Size of play area. */ -function primeTetriminos(tetriminos: Tetrimino[], playAreaSize: TSize) { +function primeTetriminos(tetriminos: Tetrimino[], playAreaSize: ISize) { // Move to initial position and rotate randomly tetriminos.forEach((tetrimino) => { const originalPos = tetrimino.position diff --git a/src/model/generation/internal/TetriminoSorter.ts b/src/model/generation/internal/TetriminoSorter.ts index aeb1a80f..d4b87a49 100644 --- a/src/model/generation/internal/TetriminoSorter.ts +++ b/src/model/generation/internal/TetriminoSorter.ts @@ -21,11 +21,11 @@ import toposort from "toposort" import { isNil, rearrange } from "../../../common" import { Tetrimino } from "../../Tetrimino" -import type { TSize } from "../../../common" +import type { ISize } from "../../../common" function getEdges( tetriminos: Tetrimino[], - playAreaSize: TSize + playAreaSize: ISize ): [number, number][] { // Create owners map const owners: number[][] = new Array(playAreaSize.height) @@ -70,7 +70,7 @@ function tryGetOccupant( map: number[][], row: number, col: number, - playAreaSize: TSize + playAreaSize: ISize ): number | null { if ( row < 0 || @@ -86,7 +86,7 @@ function tryGetOccupant( export function sort( tetriminos: Tetrimino[], - playAreaSize: TSize + playAreaSize: ISize ): Tetrimino[] { const edges = getEdges(tetriminos, playAreaSize) const sortedIndices = toposort(edges) diff --git a/src/model/index.ts b/src/model/index.ts index e12f4907..de106618 100644 --- a/src/model/index.ts +++ b/src/model/index.ts @@ -22,7 +22,7 @@ import { GameState } from "./GameState" import { Tetrimino } from "./Tetrimino" import { TetriminoKind } from "./TetriminoKind" -import type { TBlocksChangedEventArgs } from "./EventArgs" +import type { IBlocksChangedEventArgs } from "./EventArgs" export { Block, @@ -35,4 +35,4 @@ export { TetriminoKind, } -export type { TBlocksChangedEventArgs } +export type { IBlocksChangedEventArgs } diff --git a/src/viewmodel/GameViewModel.ts b/src/viewmodel/GameViewModel.ts index 2efa3e21..04fd6f12 100644 --- a/src/viewmodel/GameViewModel.ts +++ b/src/viewmodel/GameViewModel.ts @@ -40,7 +40,7 @@ import { import { appStore } from "./appStore" import type { TPosition } from "../common" -import type { TBlocksChangedEventArgs } from "../model" +import type { IBlocksChangedEventArgs } from "../model" import type { IBlockSprite } from "./IBlockSprite" const Hammer: HammerStatic = isBrowser ? require("hammerjs") : null @@ -198,7 +198,7 @@ export class GameViewModel { } private modelBlocksChangedEventHandler( - eventArgs: TBlocksChangedEventArgs + eventArgs: IBlocksChangedEventArgs ): void { const blocks = eventArgs.blocks if (!eventArgs.disappeared) { diff --git a/src/viewmodel/IBlockSprite.ts b/src/viewmodel/IBlockSprite.ts index fa865640..143893b7 100644 --- a/src/viewmodel/IBlockSprite.ts +++ b/src/viewmodel/IBlockSprite.ts @@ -16,7 +16,7 @@ */ export interface IBlockSprite { - atomicNumber: number - column: number - row: number + readonly atomicNumber: number + readonly column: number + readonly row: number }