diff --git a/.eslintrc.json b/.eslintrc.json index 84cef4f..1c6afb9 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -1,11 +1,9 @@ { "parserOptions": { - "ecmaVersion": 5 + "ecmaVersion": 6, + "sourceType": "module" }, "extends": "eslint:recommended", - "env": { - "commonjs": true - }, "rules": { "strict": [2, "global"], "block-scoped-var": 2, diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 063845e..06ed895 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -13,10 +13,12 @@ jobs: - uses: actions/checkout@v2 - uses: purescript-contrib/setup-purescript@main + with: + purescript: "unstable" - - uses: actions/setup-node@v1 + - uses: actions/setup-node@v2 with: - node-version: "10" + node-version: "14" - name: Install dependencies run: | diff --git a/CHANGELOG.md b/CHANGELOG.md index e7a06ee..577fb68 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,7 @@ Notable changes to this project are documented in this file. The format is based ## [Unreleased] Breaking changes: +- Update project and deps to PureScript v0.15.0 (#16 by @nwolverson, @JordanMartinez, @sigma-andex) New features: diff --git a/bower.json b/bower.json index b325efb..71cfa21 100644 --- a/bower.json +++ b/bower.json @@ -12,6 +12,9 @@ "url": "https://github.com/purescript-node/purescript-node-url.git" }, "dependencies": { - "purescript-nullable": "^5.0.0" + "purescript-nullable": "main" + }, + "devDependencies": { + "purescript-assert": "master" } } diff --git a/package.json b/package.json index 1c67b54..4ed063e 100644 --- a/package.json +++ b/package.json @@ -2,12 +2,13 @@ "private": true, "scripts": { "clean": "rimraf output && rimraf .pulp-cache", - "build": "eslint src && pulp build -- --censor-lib --strict" + "build": "eslint src && pulp build -- --censor-lib --strict", + "test": "pulp test -- --censor-lib --strict" }, "devDependencies": { "eslint": "^7.15.0", - "pulp": "^15.0.0", - "purescript-psa": "^0.8.0", + "pulp": "16.0.0-0", + "purescript-psa": "^0.8.2", "rimraf": "^3.0.2" } } diff --git a/src/Node/URL.js b/src/Node/URL.js index 1040baa..c8afc32 100644 --- a/src/Node/URL.js +++ b/src/Node/URL.js @@ -1,18 +1,10 @@ -"use strict"; +import url from "url"; +import queryString from "querystring"; +export { parse, format } from "url"; -var url = require("url"); -var queryString = require("querystring"); +export function resolve(from) { + return to => url.resolve(from, to); +} -exports.parse = url.parse; - -exports.format = url.format; - -exports.resolve = function (from) { - return function (to) { - return url.resolve(from, to); - }; -}; - -exports.parseQueryString = queryString.parse; - -exports.toQueryString = queryString.stringify; +export const parseQueryString = queryString.parse; +export const toQueryString = queryString.stringify; diff --git a/test/Main.purs b/test/Main.purs new file mode 100644 index 0000000..7a5d9ee --- /dev/null +++ b/test/Main.purs @@ -0,0 +1,12 @@ +module Test.Main where + +import Prelude + +import Effect (Effect) +import Node.URL (format, parse, parseQueryString, toQueryString) +import Test.Assert (assertEqual) + +main ∷ Effect Unit +main = do + assertEqual { expected: "http://example.com/", actual: format $ parse "http://example.com/" } + assertEqual { expected: "foo=42", actual: toQueryString $ parseQueryString "foo=42" }