git.iko.soy/rowtype-yoga/purescript-uuid
on main help sign in
Merge pull request #33 from fsoikin/drop-foreign-generic

Drop the foreign-generic dependency, upgrade to latest package set

commit6509ec9df0a242f02bcd9729ef065435f7a8c63d authorMadeline Trotter <715921+megamaddu@users.noreply.github.com> dateThu 7 Jul 2022, 21:38 (4 years ago) parent7bb5a9069fbfb2
5 files changed+3−81
bower.json+1−47 packages.dhall+2−7 spago.dhall−5 src/Data/UUID.purs−15 test/Main.purs−7
bower.json+1−47
@@ -16,56 +16,10 @@
1616 "dependencies": {
1717 "purescript-aff": "^v7.0.0",
1818 "purescript-effect": "^v4.0.0",
19− "purescript-either": "^v6.0.0",
20− "purescript-foreign": "^v7.0.0",
21− "purescript-foreign-generic": "https://github.com/working-group-purescript-es/purescript-foreign-generic.git#v0.15.0-updates",
22− "purescript-lists": "^v7.0.0",
2319 "purescript-maybe": "^v6.0.0",
2420 "purescript-partial": "^v4.0.0",
2521 "purescript-prelude": "^v6.0.0",
2622 "purescript-spec": "^v7.0.0",
27− "purescript-strings": "^v6.0.0",
28− "purescript-transformers": "^v6.0.0"
29− },
30− "resolutions": {
31− "purescript-maybe": "^v6.0.0",
32− "purescript-effect": "^v4.0.0",
33− "purescript-lists": "^v7.0.0",
34− "purescript-prelude": "^v6.0.0",
35− "purescript-partial": "^v4.0.0",
36− "purescript-foreign": "^v7.0.0",
37− "purescript-either": "^v6.0.0",
38− "purescript-strings": "^v6.0.0",
39− "purescript-newtype": "^5.0.0",
40− "purescript-transformers": "^6.0.0",
41− "purescript-control": "^6.0.0",
42− "purescript-invariant": "^6.0.0",
43− "purescript-foldable-traversable": "^6.0.0",
44− "purescript-bifunctors": "^6.0.0",
45− "purescript-arrays": "^7.0.0",
46− "purescript-functions": "^6.0.0",
47− "purescript-lazy": "^6.0.0",
48− "purescript-tailrec": "^6.0.0",
49− "purescript-exceptions": "^6.0.0",
50− "purescript-nonempty": "^7.0.0",
51− "purescript-refs": "^6.0.0",
52− "purescript-identity": "^6.0.0",
53− "purescript-unfoldable": "^6.0.0",
54− "purescript-tuples": "^7.0.0",
55− "purescript-unsafe-coerce": "^6.0.0",
56− "purescript-integers": "^6.0.0",
57− "purescript-ordered-collections": "^3.0.0",
58− "purescript-enums": "^6.0.0",
59− "purescript-safe-coerce": "^2.0.0",
60− "purescript-distributive": "^6.0.0",
61− "purescript-gen": "^4.0.0",
62− "purescript-functors": "^5.0.0",
63− "purescript-const": "^6.0.0",
64− "purescript-st": "^6.0.0",
65− "purescript-numbers": "^9.0.0",
66− "purescript-orders": "^6.0.0",
67− "purescript-profunctor": "^6.0.0",
68− "purescript-contravariant": "^6.0.0",
69− "purescript-exists": "^6.0.0"
23+ "purescript-strings": "^v6.0.0"
7024 }
7125}
packages.dhall+2−7
@@ -1,10 +1,5 @@
11let upstream =
2− https://github.com/purescript/package-sets/releases/download/psc-0.15.0-20220505/packages.dhall
3− sha256:ba57c25c86fd54c2b672cda3a6836bbbdff4b1bbf946bceaabb64e5a10285638
2+ https://github.com/purescript/package-sets/releases/download/psc-0.15.2-20220624/packages.dhall
3+ sha256:08989ed9f53e381f879f1b7012ad7684b1ed64d7164c4ad75e306d3210a46c92
44
55in upstream
6− with foreign-generic =
7− { repo = "https://github.com/working-group-purescript-es/purescript-foreign-generic.git"
8− , dependencies = [ "foreign", "foreign-object", "ordered-collections", "exceptions", "record", "identity" ]
9− , version = "v0.15.0-updates"
10− }
spago.dhall−5
@@ -12,15 +12,10 @@ You can edit this file as you like.
1212 [ "prelude"
1313 , "aff"
1414 , "effect"
15− , "either"
16− , "foreign-generic"
17− , "foreign"
18− , "lists"
1915 , "maybe"
2016 , "partial"
2117 , "spec"
2218 , "strings"
23− , "transformers"
2419 ]
2520, packages =
2621 ./packages.dhall
src/Data/UUID.purs−15
@@ -9,14 +9,8 @@ module Data.UUID
99 ) where
1010
1111import Prelude
12−import Control.Monad.Except.Trans (except)
13−import Data.Either (note)
14−import Data.List.NonEmpty (singleton)
1512import Data.Maybe (Maybe(Nothing, Just))
1613import Effect (Effect)
17−import Foreign (ForeignError(..))
18−import Foreign as Foreign
19−import Foreign.Class (class Encode, class Decode)
2014
2115newtype UUID
2216 = UUID String
@@ -57,12 +51,3 @@ derive instance ordUUID :: Ord UUID
5751
5852toString :: UUID -> String
5953toString (UUID uuid) = uuid
60−
61−instance decodeUUID :: Decode UUID where
62− decode x = Foreign.readString x >>=
63− parseUUID
64− >>> note (singleton $ ForeignError "Failed to parse foreign UUID")
65− >>> except
66−
67−instance encodeUUID :: Encode UUID where
68− encode = toString >>> Foreign.unsafeToForeign
test/Main.purs−7
@@ -1,7 +1,6 @@
11module Test.Main where
22
33import Prelude
4−import Data.Either (Either(..))
54import Data.Maybe (Maybe(..), fromJust)
65import Data.String (length)
76import Data.UUID (genUUID, genv3UUID, genv5UUID, parseUUID, toString)
@@ -9,8 +8,6 @@ import Effect (Effect)
98import Effect.Aff (launchAff_)
109import Effect.Class (liftEffect)
1110import Effect.Unsafe (unsafePerformEffect)
12−import Control.Monad.Except (runExcept)
13−import Foreign.Generic (encode, decode)
1411import Partial.Unsafe (unsafePartial)
1512import Test.Spec (it, describe)
1613import Test.Spec.Assertions (shouldEqual)
@@ -56,7 +53,3 @@ main =
5653
5754 uuid = parseUUID uuidStr
5855 showUUID `shouldEqual` (show $ unsafePartial $ fromJust uuid)
59− it "`encode >>> decode` returns the uuid unchanged" do
60− let
61− uuid = unsafePerformEffect genUUID
62− runExcept ((encode >>> decode) uuid) `shouldEqual` Right uuid