Enable @typescript eslint/prefer nullish coalescing eslint rule (#1420)

## Description:

Fixes #952 
Enabled @typescript-eslint/prefer-nullish-coalescing rule and worked
through every error, introducing ?? and ??= operators or disabling
errors with inline comments where appropriate, to the best of my
ability.

## Please complete the following:

- [x] I have added screenshots for all UI updates
- [x] I process any text displayed to the user through translateText()
and I've added it to the en.json file
- [x] I have added relevant tests to the test directory
- [x] I confirm I have thoroughly tested these changes and take full
responsibility for any bugs introduced
- [x] I understand that submitting code with bugs that could have been
caught through manual testing blocks releases and new features for all
contributors

## Please put your Discord username so you can be contacted if a bug or
regression is found:

g_santos_m
This commit is contained in:
g-santos-m
2025-07-15 03:00:06 +00:00
committed by GitHub
parent ac9a9ec253
commit 31381f67f4
28 changed files with 95 additions and 85 deletions
+1 -3
View File
@@ -507,9 +507,7 @@ export class GameView implements GameMap {
}
myPlayer(): PlayerView | null {
if (this._myPlayer === null) {
this._myPlayer = this.playerByClientID(this._myClientID);
}
this._myPlayer ??= this.playerByClientID(this._myClientID);
return this._myPlayer;
}
+8 -8
View File
@@ -66,7 +66,7 @@ export class StatsImpl implements Stats {
private _addAttack(player: Player, index: number, value: BigIntLike) {
const p = this._makePlayerStats(player);
if (p === undefined) return;
if (p.attacks === undefined) p.attacks = [0n];
p.attacks ??= [0n];
while (p.attacks.length <= index) p.attacks.push(0n);
p.attacks[index] += _bigint(value);
}
@@ -89,8 +89,8 @@ export class StatsImpl implements Stats {
) {
const p = this._makePlayerStats(player);
if (p === undefined) return;
if (p.boats === undefined) p.boats = { [type]: [0n] };
if (p.boats[type] === undefined) p.boats[type] = [0n];
p.boats ??= { [type]: [0n] };
p.boats[type] ??= [0n];
while (p.boats[type].length <= index) p.boats[type].push(0n);
p.boats[type][index] += _bigint(value);
}
@@ -104,8 +104,8 @@ export class StatsImpl implements Stats {
const type = unitTypeToBombUnit[nukeType];
const p = this._makePlayerStats(player);
if (p === undefined) return;
if (p.bombs === undefined) p.bombs = { [type]: [0n] };
if (p.bombs[type] === undefined) p.bombs[type] = [0n];
p.bombs ??= { [type]: [0n] };
p.bombs[type] ??= [0n];
while (p.bombs[type].length <= index) p.bombs[type].push(0n);
p.bombs[type][index] += _bigint(value);
}
@@ -113,7 +113,7 @@ export class StatsImpl implements Stats {
private _addGold(player: Player, index: number, value: BigIntLike) {
const p = this._makePlayerStats(player);
if (p === undefined) return;
if (p.gold === undefined) p.gold = [0n];
p.gold ??= [0n];
while (p.gold.length <= index) p.gold.push(0n);
p.gold[index] += _bigint(value);
}
@@ -127,8 +127,8 @@ export class StatsImpl implements Stats {
const type = unitTypeToOtherUnit[otherUnitType];
const p = this._makePlayerStats(player);
if (p === undefined) return;
if (p.units === undefined) p.units = { [type]: [0n] };
if (p.units[type] === undefined) p.units[type] = [0n];
p.units ??= { [type]: [0n] };
p.units[type] ??= [0n];
while (p.units[type].length <= index) p.units[type].push(0n);
p.units[type][index] += _bigint(value);
}
+1 -3
View File
@@ -26,9 +26,7 @@ class GameMapLoader {
private createLazyLoader<T>(importFn: () => Promise<T>): () => Promise<T> {
let cache: Promise<T> | null = null;
return () => {
if (!cache) {
cache = importFn();
}
cache ??= importFn();
return cache;
};
}