diff --git a/app/Main.hs b/app/Main.hs index 60d904e..5272c40 100644 --- a/app/Main.hs +++ b/app/Main.hs @@ -4,5 +4,6 @@ import qualified MyLib (someFunc) main :: IO () main = do - putStrLn "Hello, Haskell!" + putStrLn "Hello, Haskell!!!" + MyLib.someFunc diff --git a/cabal.project b/cabal.project index 3b02d0c..b93d4d5 100644 --- a/cabal.project +++ b/cabal.project @@ -3,6 +3,7 @@ packages: source-repository-package type: git - -- location: https://github.com/eskimor/purescript-bridge.git - location: https://github.com/peterbecich/purescript-bridge.git - tag: 793cd8206ae777dd8f77245c1c8dbeb597c7828f + location: https://github.com/eskimor/purescript-bridge.git + tag: d43987ea406dbeb4f4013ecb857686a1b19451f0 + -- location: https://github.com/peterbecich/purescript-bridge.git + -- tag: 793cd8206ae777dd8f77245c1c8dbeb597c7828f diff --git a/feedback.yaml b/feedback.yaml index c037123..960e85d 100644 --- a/feedback.yaml +++ b/feedback.yaml @@ -1,6 +1,19 @@ loops: cabal: cabal build all --enable-tests - test: | - cabal build all --enable-tests - cabal test all - check: nix flake check + test: + clear: false + hooks: + before-all: + #echo 'kill process at port 8080'; + # lsof -t -i:8080 -sTCP:LISTEN; + # echo -e "$(lsof -t -i:8080 -sTCP:LISTEN)"; + # kill -9 $(lsof -t -i:8080 -sTCP:LISTEN); + run: | + cabal build all --enable-tests + cabal test all + cabal run generate-purescript + cabal run halogen-chess + filter: + git: true + find: "-type f -not -name '*.purs'" + check: nix flake check -L diff --git a/flake.lock b/flake.lock index 358ae79..ba764f7 100644 --- a/flake.lock +++ b/flake.lock @@ -546,17 +546,17 @@ "purescript-bridge": { "flake": false, "locked": { - "lastModified": 1669708689, - "narHash": "sha256-urHz3YAxnAbcZ7NuJj803xEicJUv3SOQIapr5Ti0yek=", + "lastModified": 1706648825, + "narHash": "sha256-SSdR7n5epcSSOdVVM+w+TQQETx3XZoDsBQrxk1rhUd8=", "owner": "eskimor", "repo": "purescript-bridge", - "rev": "793cd8206ae777dd8f77245c1c8dbeb597c7828f", + "rev": "d43987ea406dbeb4f4013ecb857686a1b19451f0", "type": "github" }, "original": { "owner": "eskimor", "repo": "purescript-bridge", - "rev": "793cd8206ae777dd8f77245c1c8dbeb597c7828f", + "rev": "d43987ea406dbeb4f4013ecb857686a1b19451f0", "type": "github" } }, diff --git a/flake.nix b/flake.nix index 005757f..57e67dc 100644 --- a/flake.nix +++ b/flake.nix @@ -13,7 +13,7 @@ ps-tools.follows = "purs-nix/ps-tools"; purescript-bridge.url = - "github:eskimor/purescript-bridge/793cd8206ae777dd8f77245c1c8dbeb597c7828f"; + "github:eskimor/purescript-bridge/d43987ea406dbeb4f4013ecb857686a1b19451f0"; purescript-bridge.flake = false; @@ -153,6 +153,7 @@ }; haskellProjects.default = { + # basePackages = pkgs.haskell.packages.ghc98; basePackages = pkgs.haskellPackages; settings = { brick.jailbreak = true; diff --git a/src/Game/Chess/Board.hs b/src/Game/Chess/Board.hs index 3e371d0..1c681a4 100644 --- a/src/Game/Chess/Board.hs +++ b/src/Game/Chess/Board.hs @@ -21,13 +21,13 @@ import Game.Chess import Game.Chess.Move (Move (Move)) import Game.Chess.Orphans () + newtype Board = Board [Sq] allPieces :: Board allPieces = Board $ enumFrom minBound deriving instance Generic Board - deriving instance ToJSON Board deriving instance FromJSON Board diff --git a/src/Game/Chess/Board.purs b/src/Game/Chess/Board.purs index 2f5c2a4..9fa5cb1 100644 --- a/src/Game/Chess/Board.purs +++ b/src/Game/Chess/Board.purs @@ -23,10 +23,8 @@ import Prelude newtype Board = Board (Array Sq) -instance encodeBoard :: Encode Board where - encode = genericEncode $ defaultOptions { unwrapSingleConstructors = false , unwrapSingleArguments = false } -instance decodeBoard :: Decode Board where - decode = genericDecode $ defaultOptions { unwrapSingleConstructors = false , unwrapSingleArguments = false } + + instance encodeJsonBoard :: EncodeJson Board where encodeJson = genericEncodeAeson Argonaut.defaultOptions instance decodeJsonBoard :: DecodeJson Board where diff --git a/src/Game/Chess/Internal.purs b/src/Game/Chess/Internal.purs index f12a7a0..0cc9421 100644 --- a/src/Game/Chess/Internal.purs +++ b/src/Game/Chess/Internal.purs @@ -22,10 +22,8 @@ data Color = Black | White -instance encodeColor :: Encode Color where - encode = genericEncode $ defaultOptions { unwrapSingleConstructors = false , unwrapSingleArguments = false } -instance decodeColor :: Decode Color where - decode = genericDecode $ defaultOptions { unwrapSingleConstructors = false , unwrapSingleArguments = false } + + instance encodeJsonColor :: EncodeJson Color where encodeJson = genericEncodeAeson Argonaut.defaultOptions instance decodeJsonColor :: DecodeJson Color where @@ -54,10 +52,8 @@ data PieceType = | Queen | King -instance encodePieceType :: Encode PieceType where - encode = genericEncode $ defaultOptions { unwrapSingleConstructors = false , unwrapSingleArguments = false } -instance decodePieceType :: Decode PieceType where - decode = genericDecode $ defaultOptions { unwrapSingleConstructors = false , unwrapSingleArguments = false } + + instance encodeJsonPieceType :: EncodeJson PieceType where encodeJson = genericEncodeAeson Argonaut.defaultOptions instance decodeJsonPieceType :: DecodeJson PieceType where diff --git a/src/Game/Chess/Internal/Square.purs b/src/Game/Chess/Internal/Square.purs index fd04c50..b4f22a5 100644 --- a/src/Game/Chess/Internal/Square.purs +++ b/src/Game/Chess/Internal/Square.purs @@ -84,10 +84,8 @@ data Sq = | G8 | H8 -instance encodeSq :: Encode Sq where - encode = genericEncode $ defaultOptions { unwrapSingleConstructors = false , unwrapSingleArguments = false } -instance decodeSq :: Decode Sq where - decode = genericDecode $ defaultOptions { unwrapSingleConstructors = false , unwrapSingleArguments = false } + + instance encodeJsonSq :: EncodeJson Sq where encodeJson = genericEncodeAeson Argonaut.defaultOptions instance decodeJsonSq :: DecodeJson Sq where diff --git a/src/Game/Chess/Move.purs b/src/Game/Chess/Move.purs index f3f8200..5ec66c5 100644 --- a/src/Game/Chess/Move.purs +++ b/src/Game/Chess/Move.purs @@ -27,10 +27,8 @@ newtype Move = , to :: Sq } -instance encodeMove :: Encode Move where - encode = genericEncode $ defaultOptions { unwrapSingleConstructors = false , unwrapSingleArguments = false } -instance decodeMove :: Decode Move where - decode = genericDecode $ defaultOptions { unwrapSingleConstructors = false , unwrapSingleArguments = false } + + instance encodeJsonMove :: EncodeJson Move where encodeJson = genericEncodeAeson Argonaut.defaultOptions instance decodeJsonMove :: DecodeJson Move where