diff --git a/.gitignore b/.gitignore index 9e2274f..e306283 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,8 @@ -.psci* -bower_components/ -output/ - +/.* +!/.gitignore +!/.jscsrc +!/.jshintrc +!/.travis.yml +/bower_components/ +/node_modules/ +/output/ diff --git a/.jscsrc b/.jscsrc new file mode 100644 index 0000000..2561ce9 --- /dev/null +++ b/.jscsrc @@ -0,0 +1,17 @@ +{ + "preset": "grunt", + "disallowSpacesInFunctionExpression": null, + "requireSpacesInFunctionExpression": { + "beforeOpeningRoundBrace": true, + "beforeOpeningCurlyBrace": true + }, + "disallowSpacesInAnonymousFunctionExpression": null, + "requireSpacesInAnonymousFunctionExpression": { + "beforeOpeningRoundBrace": true, + "beforeOpeningCurlyBrace": true + }, + "disallowSpacesInsideObjectBrackets": null, + "requireSpacesInsideObjectBrackets": "all", + "validateQuoteMarks": "\"", + "requireCurlyBraces": null +} diff --git a/.jshintrc b/.jshintrc new file mode 100644 index 0000000..81e6de7 --- /dev/null +++ b/.jshintrc @@ -0,0 +1,19 @@ +{ + "bitwise": true, + "eqeqeq": true, + "forin": true, + "freeze": true, + "funcscope": true, + "futurehostile": true, + "strict": "global", + "latedef": true, + "noarg": true, + "nocomma": true, + "nonew": true, + "notypeof": true, + "singleGroups": true, + "undef": true, + "unused": true, + "eqnull": true, + "predef": ["exports"] +} diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..15bacc0 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,17 @@ +language: node_js +dist: trusty +sudo: required +node_js: 6 +install: + - npm install -g bower + - npm install +script: + - bower install --production + - npm run -s build + - bower install + - npm -s test +after_success: +- >- + test $TRAVIS_TAG && + echo $GITHUB_TOKEN | pulp login && + echo y | pulp publish --no-push diff --git a/README.md b/README.md index eabedfe..c88b5e6 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,7 @@ # purescript-nullable [![Latest release](http://img.shields.io/bower/v/purescript-nullable.svg)](https://github.com/purescript-contrib/purescript-nullable/releases) +[![Build Status](https://travis-ci.org/purescript-contrib/purescript-nullable.svg?branch=master)](https://travis-ci.org/purescript-contrib/purescript-nullable) [![Maintainer: paf31](https://img.shields.io/badge/maintainer-paf31-lightgrey.svg)](http://github.com/paf31) A library for dealing with null values in foreign libraries. diff --git a/bower.json b/bower.json index c332d31..e81ee7f 100644 --- a/bower.json +++ b/bower.json @@ -7,17 +7,21 @@ "license": "MIT", "ignore": [ "**/.*", - "node_modules", "bower_components", - "test", - "tests" + "node_modules", + "output", + "bower.json", + "package.json" ], "dependencies": { - "purescript-maybe": "^1.0.0-rc.1", - "purescript-functions": "^1.0.0-rc.1" + "purescript-maybe": "^2.0.0", + "purescript-functions": "^2.0.0" }, "repository": { "type": "git", "url": "git://github.com/paf31/purescript-nullable.git" + }, + "devDependencies": { + "purescript-console": "^2.0.0" } } diff --git a/package.json b/package.json new file mode 100644 index 0000000..921a344 --- /dev/null +++ b/package.json @@ -0,0 +1,16 @@ +{ + "private": true, + "scripts": { + "clean": "rimraf output && rimraf .pulp-cache", + "build": "jshint src && jscs src && pulp build --censor-lib --strict", + "test": "pulp test" + }, + "devDependencies": { + "jscs": "^2.8.0", + "jshint": "^2.9.1", + "pulp": "^9.0.1", + "purescript-psa": "^0.3.9", + "purescript": "^0.10.1", + "rimraf": "^2.5.0" + } +} diff --git a/src/Data/Nullable.js b/src/Data/Nullable.js index ab5dadd..27f72bc 100644 --- a/src/Data/Nullable.js +++ b/src/Data/Nullable.js @@ -1,12 +1,11 @@ -/* global exports */ "use strict"; exports["null"] = null; -exports.nullable = function(a, r, f) { - return a == null ? r : f(a); +exports.nullable = function (a, r, f) { + return a == null ? r : f(a); }; -exports.notNull = function(x) { - return x; +exports.notNull = function (x) { + return x; }; diff --git a/src/Data/Nullable.purs b/src/Data/Nullable.purs index 55ffd64..a082a13 100644 --- a/src/Data/Nullable.purs +++ b/src/Data/Nullable.purs @@ -2,12 +2,12 @@ -- | using the FFI. module Data.Nullable - ( Nullable() + ( Nullable , toMaybe , toNullable ) where -import Prelude (class Ord, class Eq, class Show, compare, eq, show) +import Prelude import Data.Function (on) import Data.Function.Uncurried (Fn3, runFn3) @@ -35,10 +35,8 @@ toNullable = maybe null notNull toMaybe :: forall a. Nullable a -> Maybe a toMaybe n = runFn3 nullable n Nothing Just -instance showNullable :: (Show a) => Show (Nullable a) where - show n = case toMaybe n of - Nothing -> "null" - Just a -> show a +instance showNullable :: Show a => Show (Nullable a) where + show = maybe "null" show <<< toMaybe instance eqNullable :: (Eq a) => Eq (Nullable a) where eq = eq `on` toMaybe