feat: set default hooks functions

This commit is contained in:
ayo 2026-04-03 11:26:48 +02:00
parent 39683946a7
commit 994e0d2d5b
2 changed files with 12 additions and 6 deletions

View file

@ -7,6 +7,6 @@ const version = import.meta.env.MODE === 'development'
const game = new mnswpr('app', version, { const game = new mnswpr('app', version, {
levelChanged: () => console.log('[hook]: level reset'), levelChanged: () => console.log('[hook]: level reset'),
gameDone: (game) => console.log('[hook] game done', game) gameDone: (game) => console.log('[hook]: game done', game)
}) })
game.initialize() game.initialize()

View file

@ -21,16 +21,23 @@ const PC_BUSY_DELAY = 500
* @param {String} appId * @param {String} appId
* @param {String} version * @param {String} version
* @param {{ * @param {{
* levelChanged: () => {}, * levelChanged: () => void,
* gameDone: (game: any) => {} * gameDone: (game: any) => void
* }} hooks * } | undefined } hooks
*/ */
const Minesweeper = function(appId, version, hooks) { const Minesweeper = function(appId, version, hooks = undefined) {
const _this = this const _this = this
const storageService = new StorageService() const storageService = new StorageService()
const timerService = new TimerService() const timerService = new TimerService()
const loggerService = new LoggerService() const loggerService = new LoggerService()
if (!hooks) {
hooks = {
levelChanged: () => {},
gameDone: () => {}
}
}
let grid = document.createElement('table') let grid = document.createElement('table')
grid.setAttribute('id', 'grid') grid.setAttribute('id', 'grid')
let flagsDisplay = document.createElement('span') let flagsDisplay = document.createElement('span')
@ -219,7 +226,6 @@ const Minesweeper = function(appId, version, hooks) {
if (initial) if (initial)
hooks.levelChanged() hooks.levelChanged()
timerService.initialize(timerDisplay) timerService.initialize(timerDisplay)
updateFlagsCountDisplay() updateFlagsCountDisplay()
addMines(setting.mines) addMines(setting.mines)