diff --git a/.husky/pre-commit b/.husky/pre-commit new file mode 100755 index 0000000..0cdd009 --- /dev/null +++ b/.husky/pre-commit @@ -0,0 +1,4 @@ +#!/bin/sh +. "$(dirname "$0")/_/husky.sh" + +elm-format --yes . && git add -A . diff --git a/package-lock.json b/package-lock.json index 25e3eb6..c3394fc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -420,6 +420,109 @@ "request": "^2.88.0" } }, + "elm-format": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/elm-format/-/elm-format-0.8.5.tgz", + "integrity": "sha512-/Mjwz5RhJ8cdcMsHT98AEKprSIHyRde+URIPvnHez9WH7Xp+rFCOJx0FNMPIYrbHE9Ei7HDSVwhjDP0i+mlvpQ==", + "dev": true, + "requires": { + "binwrap": "^0.2.3" + }, + "dependencies": { + "binwrap": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/binwrap/-/binwrap-0.2.3.tgz", + "integrity": "sha512-N4Pm7iyDEv0BrAMs+dny8WQa+e0nNTdzn2ODkf/MM6XBtKSCxCSUA1ZOQGoc1n7mUqdgOS5pwjsW91rmXVxy2Q==", + "dev": true, + "requires": { + "request": "^2.88.0", + "tar": "^6.1.0", + "unzip-stream": "^0.3.1" + } + }, + "chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "dev": true + }, + "fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.5.tgz", + "integrity": "sha512-+8NzxD82XQoNKNrl1d/FSi+X8wAEWR+sbYAfIvub4Nz0d22plFG72CEVVaufV8PNf4qSslFTD8VMOxNVhHCjTw==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dev": true, + "requires": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + } + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + }, + "tar": { + "version": "6.1.11", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", + "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", + "dev": true, + "requires": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^3.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + } + }, + "unzip-stream": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/unzip-stream/-/unzip-stream-0.3.1.tgz", + "integrity": "sha512-RzaGXLNt+CW+T41h1zl6pGz3EaeVhYlK+rdAap+7DxW5kqsqePO8kRtWPaCiVqdhZc86EctSPVYNix30YOMzmw==", + "dev": true, + "requires": { + "binary": "^0.3.0", + "mkdirp": "^0.5.1" + }, + "dependencies": { + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + } + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, "elm-hot": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/elm-hot/-/elm-hot-1.1.4.tgz", @@ -1044,6 +1147,12 @@ "sshpk": "^1.7.0" } }, + "husky": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/husky/-/husky-7.0.4.tgz", + "integrity": "sha512-vbaCKN2QLtP/vD4yvs6iz6hBEo6wkSzs8HpRah1Z6aGmF2KW5PdYuAd7uX5a+OyBZHBhd+TFLqgjUgytQr4RvQ==", + "dev": true + }, "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", diff --git a/package.json b/package.json index 66233f0..0381477 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,8 @@ "build:dev:elm": "elm make src/Main.elm --debug --output=public/dist/elm.compiled.js || true", "build:elm-spa": "elm-spa build .", "dev:elm": "elm-live src/Main.elm -u -d public -- --debug --output=public/dist/elm.compiled.js", - "dev:elm-spa": "chokidar src/Pages -c \"elm-spa build .\"" + "dev:elm-spa": "chokidar src/Pages -c \"elm-spa build .\"", + "prepare": "husky install" }, "keywords": [], "author": "", @@ -21,9 +22,11 @@ "devDependencies": { "chokidar-cli": "2.1.0", "elm": "0.19.1-3", + "elm-format": "^0.8.5", "elm-live": "4.0.2", "elm-spa": "5.0.3", "elm-test": "0.19.1-revision2", + "husky": "^7.0.0", "npm-run-all": "4.1.5" } } diff --git a/src/Game.elm b/src/Game.elm index 2ef73a4..750c408 100644 --- a/src/Game.elm +++ b/src/Game.elm @@ -4,16 +4,16 @@ module Game exposing , Model(..) , Msg(..) , Player(..) - , Turn(..) , StatusMessage(..) + , Turn(..) , currentStatus + , currentStatusMessage , gameboard , init , nameToString , pieceToString , playerToString , remainingPieces - , currentStatusMessage , update ) @@ -70,6 +70,7 @@ type GameStatus | Won Winner | Draw + type StatusMessage = NoMessage | SomePiecePlayedWhenNotPlayersTurn @@ -89,7 +90,8 @@ initStatus = initStatusMessage : StatusMessage -initStatusMessage = NoMessage +initStatusMessage = + NoMessage init : Model diff --git a/src/Pages/Top.elm b/src/Pages/Top.elm index 26c5358..5862fbd 100644 --- a/src/Pages/Top.elm +++ b/src/Pages/Top.elm @@ -21,7 +21,6 @@ import Element , spacing , text , width - ) import Element.Background as Background import Element.Border as Border @@ -260,6 +259,7 @@ viewRestartButton gamemodel = in if gamemodel /= Game.init then button + else Element.none diff --git a/tests/ProgramTests.elm b/tests/ProgramTests.elm index 8b3b074..2ac5a2a 100644 --- a/tests/ProgramTests.elm +++ b/tests/ProgramTests.elm @@ -1,4 +1,6 @@ module ProgramTests exposing (tbd) -tbd: String -tbd = "To Be Determined" + +tbd : String +tbd = + "To Be Determined" diff --git a/tests/TestGameLogic.elm b/tests/TestGameLogic.elm index 9afca61..c532314 100644 --- a/tests/TestGameLogic.elm +++ b/tests/TestGameLogic.elm @@ -3,12 +3,12 @@ module TestGameLogic exposing (suite) import Expect import Test exposing (Test, describe, test) + suite : Test suite = describe "Dummy Default Test" - [ - test "the empty list has 0 length" - <| \_ -> Expect.equal 0 - <| List.length [] - ] - \ No newline at end of file + [ test "the empty list has 0 length" <| + \_ -> + Expect.equal 0 <| + List.length [] + ]