diff --git a/.eslintrc.json b/.eslintrc.json new file mode 100644 index 0000000..65496fa --- /dev/null +++ b/.eslintrc.json @@ -0,0 +1,32 @@ +{ + "parserOptions": { + "ecmaVersion": 5 + }, + "extends": "eslint:recommended", + "env": { + "commonjs": true, + "browser": true + }, + "globals": { + "Promise": "readonly" + }, + "rules": { + "strict": [2, "global"], + "block-scoped-var": 2, + "consistent-return": 2, + "eqeqeq": [2, "smart"], + "guard-for-in": 2, + "no-caller": 2, + "no-extend-native": 2, + "no-loop-func": 2, + "no-new": 2, + "no-param-reassign": 2, + "no-return-assign": 2, + "no-unused-expressions": 2, + "no-use-before-define": 2, + "radix": [2, "always"], + "indent": [2, 2], + "quotes": [2, "double"], + "semi": [2, "always"] + } +} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..063845e --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,33 @@ +name: CI + +on: + push: + branches: [master] + pull_request: + branches: [master] + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + + - uses: purescript-contrib/setup-purescript@main + + - uses: actions/setup-node@v1 + with: + node-version: "10" + + - name: Install dependencies + run: | + npm install -g bower + npm install + bower install --production + + - name: Build source + run: npm run-script build + + - name: Run tests + run: | + bower install + npm run-script test --if-present diff --git a/.gitignore b/.gitignore index 20e090a..a56845c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,9 +1,9 @@ +/.* +!/.gitignore +!/.eslintrc.json +!/.github/ +package-lock.json /bower_components/ /node_modules/ -/.pulp-cache/ /output/ /generated-docs/ -/.psc-package/ -/.psc* -/.purs* -/.psa* diff --git a/README.md b/README.md index cc60a7d..17294bb 100644 --- a/README.md +++ b/README.md @@ -1 +1,18 @@ # purescript-web-promise + +[![Latest release](http://img.shields.io/github/release/purescript-web/purescript-web-promise.svg)](https://github.com/purescript-web/purescript-web-promise/releases) +[![Build status](https://github.com/purescript-web/purescript-web-promise/workflows/CI/badge.svg?branch=master)](https://github.com/purescript-web/purescript-web-promise/actions?query=workflow%3ACI+branch%3Amaster) +[![Pursuit](https://pursuit.purescript.org/packages/purescript-web-promise/badge)](https://pursuit.purescript.org/packages/purescript-web-promise) + +Types and low-level implementations for JavaScript Promises. + +## Installation + +``` +spago install web-promise +``` + +## Documentation + +Module documentation is [published on Pursuit](http://pursuit.purescript.org/packages/purescript-web-promise). + diff --git a/package.json b/package.json new file mode 100644 index 0000000..1c67b54 --- /dev/null +++ b/package.json @@ -0,0 +1,13 @@ +{ + "private": true, + "scripts": { + "clean": "rimraf output && rimraf .pulp-cache", + "build": "eslint src && pulp build -- --censor-lib --strict" + }, + "devDependencies": { + "eslint": "^7.15.0", + "pulp": "^15.0.0", + "purescript-psa": "^0.8.0", + "rimraf": "^3.0.2" + } +} diff --git a/src/Web/Promise/Internal.js b/src/Web/Promise/Internal.js index 7239fea..4cc44d7 100644 --- a/src/Web/Promise/Internal.js +++ b/src/Web/Promise/Internal.js @@ -1,3 +1,5 @@ +"use strict"; + exports.new = function(k) { return new Promise(k); }; diff --git a/src/Web/Promise/Rejection.js b/src/Web/Promise/Rejection.js index 4ac9880..3c8ea75 100644 --- a/src/Web/Promise/Rejection.js +++ b/src/Web/Promise/Rejection.js @@ -1,3 +1,5 @@ +"use strict"; + exports.fromError = function(a) { return a; };