diff --git a/.travis.yml b/.travis.yml index 2e30c22..a3c2cac 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,17 +1,22 @@ + language: node_js -dist: trusty sudo: required -node_js: stable +dist: trusty +node_js: 8 +env: + - PATH=$HOME/purescript:$PATH install: + - TAG=$(wget -q -O - https://github.com/purescript/purescript/releases/latest --server-response --max-redirect 0 2>&1 | sed -n -e 's/.*Location:.*tag\///p') + - wget -O $HOME/purescript.tar.gz https://github.com/purescript/purescript/releases/download/$TAG/linux64.tar.gz + - tar -xvf $HOME/purescript.tar.gz -C $HOME/ + - chmod a+x $HOME/purescript - npm install -g bower - npm install script: - - bower install --production - - npm run -s build - bower install - - npm -s test + - pulp test after_success: - >- test $TRAVIS_TAG && echo $GITHUB_TOKEN | pulp login && - echo y | pulp publish --no-push + echo y | pulp publish --no-push \ No newline at end of file diff --git a/bower.json b/bower.json index 638a0d7..2fe4531 100644 --- a/bower.json +++ b/bower.json @@ -22,12 +22,12 @@ }, "license": "MIT", "dependencies": { - "purescript-argonaut-core": "#compiler/0.12", - "purescript-integers": "#compiler/0.12", - "purescript-maybe": "#compiler/0.12", - "purescript-foreign-object": "#compiler/0.12" + "purescript-argonaut-core": "^4.0.0", + "purescript-integers": "^4.0.0", + "purescript-maybe": "^4.0.0", + "purescript-foreign-object": "^1.0.0" }, "devDependencies": { "purescript-strongcheck": "#compiler/0.12" } -} +} \ No newline at end of file diff --git a/package.json b/package.json index 7f64eea..824132e 100644 --- a/package.json +++ b/package.json @@ -6,9 +6,8 @@ "test": "pulp test" }, "devDependencies": { - "pulp": "^12.0.1", + "pulp": "^12.2.0", "purescript-psa": "^0.6.0", - "purescript": "^0.11.1", "rimraf": "^2.6.1" } -} +} \ No newline at end of file diff --git a/src/Data/Argonaut/Decode/Class.purs b/src/Data/Argonaut/Decode/Class.purs index b60895c..7dac424 100644 --- a/src/Data/Argonaut/Decode/Class.purs +++ b/src/Data/Argonaut/Decode/Class.purs @@ -12,7 +12,7 @@ import Data.Int (fromNumber) import Data.List (List(..), (:), fromFoldable) import Data.Map as M import Data.Maybe (maybe, Maybe(..)) -import Data.String (charAt) +import Data.String (CodePoint, codePointAt) import Data.Traversable (traverse) import Data.Tuple (Tuple(..)) import Foreign.Object as FO @@ -63,10 +63,10 @@ instance decodeJsonString :: DecodeJson String where instance decodeJsonJson :: DecodeJson Json where decodeJson = Right -instance decodeJsonChar :: DecodeJson Char where +instance decodeJsonChar :: DecodeJson CodePoint where decodeJson j = maybe (Left $ "Expected character but found: " <> stringify j) Right - =<< charAt 0 <$> decodeJson j + =<< codePointAt 0 <$> decodeJson j instance decodeForeignObject :: DecodeJson a => DecodeJson (FO.Object a) where decodeJson diff --git a/src/Data/Argonaut/Encode/Class.purs b/src/Data/Argonaut/Encode/Class.purs index 7d2f16e..ba8fb4d 100644 --- a/src/Data/Argonaut/Encode/Class.purs +++ b/src/Data/Argonaut/Encode/Class.purs @@ -8,7 +8,9 @@ import Data.Int (toNumber) import Data.List (List(..), (:), toUnfoldable) import Data.Map as M import Data.Maybe (Maybe(..)) -import Data.String (singleton) +import Data.String (CodePoint) +import Data.String.CodePoints as CP +import Data.String.CodeUnits as CU import Data.Tuple (Tuple(..)) import Foreign.Object as FO @@ -48,8 +50,11 @@ instance encodeJsonJString :: EncodeJson String where instance encodeJsonJson :: EncodeJson Json where encodeJson = identity +instance encodeJsonCodePoint :: EncodeJson CodePoint where + encodeJson = encodeJson <<< CP.singleton + instance encodeJsonChar :: EncodeJson Char where - encodeJson = encodeJson <<< singleton + encodeJson = encodeJson <<< CU.singleton instance encodeJsonArray :: EncodeJson a => EncodeJson (Array a) where encodeJson json = fromArray (encodeJson <$> json)