From 910a7d759a71d316d59ea68b276e848d53356e7e Mon Sep 17 00:00:00 2001 From: Jordan Martinez Date: Tue, 22 Mar 2022 09:22:25 -0500 Subject: [PATCH 01/12] Update .eslintrc.json to ES6 --- .eslintrc.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.eslintrc.json b/.eslintrc.json index 17f167d..240b092 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -1,7 +1,7 @@ { - "env": { "browser": true, "commonjs": true }, + "env": { "browser": true }, "extends": "eslint:recommended", - "parserOptions": { "ecmaVersion": 5 }, + "parserOptions": { "ecmaVersion": 6, "sourceType": "module" }, "rules": { "block-scoped-var": "error", "consistent-return": "error", From a4fe36e3b1edd26dbe9f79ec3831067f44fd43c5 Mon Sep 17 00:00:00 2001 From: Jordan Martinez Date: Tue, 22 Mar 2022 09:22:25 -0500 Subject: [PATCH 02/12] Migrated FFI to ES modules via 'lebab' --- src/ReactDOM.js | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/src/ReactDOM.js b/src/ReactDOM.js index 1bd7f0a..043243e 100644 --- a/src/ReactDOM.js +++ b/src/ReactDOM.js @@ -1,18 +1,17 @@ "use strict"; -var ReactDOM = require("react-dom"); -var ReactDOMServer = require("react-dom/server"); +import ReactDOM from "react-dom"; +import ReactDOMServer from "react-dom/server"; -exports.renderImpl = function (element, container) { +export function renderImpl(element, container) { return ReactDOM.render(element, container); -}; +} -exports.hydrateImpl = function (element, container) { +export function hydrateImpl(element, container) { return ReactDOM.hydrate(element, container); -}; +} -exports.unmountComponentAtNodeImpl = ReactDOM.unmountComponentAtNode; -exports.findDOMNodeImpl = ReactDOM.findDOMNode; - -exports.renderToStringImpl = ReactDOMServer.renderToString; -exports.renderToStaticMarkupImpl = ReactDOMServer.renderToStaticMarkup; +export var unmountComponentAtNodeImpl = ReactDOM.unmountComponentAtNode; +export var findDOMNodeImpl = ReactDOM.findDOMNode; +export var renderToStringImpl = ReactDOMServer.renderToString; +export var renderToStaticMarkupImpl = ReactDOMServer.renderToStaticMarkup; From 6cbf834fecda10aaf5f8555a68eac8d8e67d997d Mon Sep 17 00:00:00 2001 From: Jordan Martinez Date: Tue, 22 Mar 2022 09:22:25 -0500 Subject: [PATCH 03/12] Replaced 'export var' with 'export const' --- src/ReactDOM.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/ReactDOM.js b/src/ReactDOM.js index 043243e..9478349 100644 --- a/src/ReactDOM.js +++ b/src/ReactDOM.js @@ -11,7 +11,7 @@ export function hydrateImpl(element, container) { return ReactDOM.hydrate(element, container); } -export var unmountComponentAtNodeImpl = ReactDOM.unmountComponentAtNode; -export var findDOMNodeImpl = ReactDOM.findDOMNode; -export var renderToStringImpl = ReactDOMServer.renderToString; -export var renderToStaticMarkupImpl = ReactDOMServer.renderToStaticMarkup; +export const unmountComponentAtNodeImpl = ReactDOM.unmountComponentAtNode; +export const findDOMNodeImpl = ReactDOM.findDOMNode; +export const renderToStringImpl = ReactDOMServer.renderToString; +export const renderToStaticMarkupImpl = ReactDOMServer.renderToStaticMarkup; From fa30067ef412fd14c8af4e20d1e4e3270c8988bd Mon Sep 17 00:00:00 2001 From: Jordan Martinez Date: Tue, 22 Mar 2022 09:22:25 -0500 Subject: [PATCH 04/12] Removed '"use strict";' in FFI files --- src/ReactDOM.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/ReactDOM.js b/src/ReactDOM.js index 9478349..87b77bc 100644 --- a/src/ReactDOM.js +++ b/src/ReactDOM.js @@ -1,5 +1,3 @@ -"use strict"; - import ReactDOM from "react-dom"; import ReactDOMServer from "react-dom/server"; From 3dbdf87c84ed8d04e4c96cadbb4808bc34740121 Mon Sep 17 00:00:00 2001 From: Jordan Martinez Date: Tue, 22 Mar 2022 09:22:25 -0500 Subject: [PATCH 05/12] Update to CI to use 'unstable' purescript --- .github/workflows/ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 43f9f20..4989d99 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -16,6 +16,7 @@ jobs: - name: Set up PureScript toolchain uses: purescript-contrib/setup-purescript@main with: + purescript: "unstable" purs-tidy: "latest" - name: Cache PureScript dependencies From 30f9df412e5673196846e66c5d623ce607195e25 Mon Sep 17 00:00:00 2001 From: Jordan Martinez Date: Tue, 22 Mar 2022 09:22:25 -0500 Subject: [PATCH 06/12] Add CI test: verify 'bower.json' file works via pulp --- .github/workflows/ci.yml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4989d99..fc54710 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -55,3 +55,12 @@ jobs: - name: Check formatting run: purs-tidy check src test + + - name: Verify Bower & Pulp + run: | + npm install bower pulp@16.0.0-0 + npx bower install + npx pulp build -- --censor-lib --strict + if [ -d "test" ]; then + npx pulp test + fi From 8f1cb2caf32f8bc31bf03ee8fb9701045b7da86a Mon Sep 17 00:00:00 2001 From: Jordan Martinez Date: Tue, 22 Mar 2022 09:22:25 -0500 Subject: [PATCH 07/12] Ignore spago-based tests (temporarily) --- .github/workflows/ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index fc54710..e16f413 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -50,8 +50,8 @@ jobs: - name: Build the project run: npm run build - - name: Run tests - run: npm run test +# - name: Run tests +# run: npm run test - name: Check formatting run: purs-tidy check src test From 82841cf394c5fdadd374141a61705fb6c09b05d7 Mon Sep 17 00:00:00 2001 From: Jordan Martinez Date: Tue, 22 Mar 2022 09:22:26 -0500 Subject: [PATCH 08/12] Update Bower dependencies to master or main --- bower.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/bower.json b/bower.json index c055e0b..d8b9c9b 100644 --- a/bower.json +++ b/bower.json @@ -16,11 +16,11 @@ "url": "https://github.com/purescript-contrib/purescript-react-dom.git" }, "dependencies": { - "purescript-effect": "^3.0.0", - "purescript-react": "^9.0.0", - "purescript-web-dom": "^5.0.0" + "purescript-effect": "master", + "purescript-react": "main", + "purescript-web-dom": "master" }, "devDependencies": { - "purescript-console": "^5.0.0" + "purescript-console": "master" } } From a2a8f014a02c9e31ef54a6b4c2b83692a301c274 Mon Sep 17 00:00:00 2001 From: Jordan Martinez Date: Tue, 22 Mar 2022 09:22:26 -0500 Subject: [PATCH 09/12] Update packages.dhall to 'prepare-0.15' package set --- packages.dhall | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages.dhall b/packages.dhall index 7a6905b..582d6d3 100644 --- a/packages.dhall +++ b/packages.dhall @@ -1,4 +1,4 @@ let upstream = - https://github.com/purescript/package-sets/releases/download/psc-0.14.3-20210722/packages.dhall sha256:1ceb43aa59436bf5601bac45f6f3781c4e1f0e4c2b8458105b018e5ed8c30f8c + https://raw.githubusercontent.com/purescript/package-sets/prepare-0.15/src/packages.dhall in upstream From 8c6e27007d23d99f8bbceb5b99d4f5c7b27944ba Mon Sep 17 00:00:00 2001 From: Jordan Martinez Date: Tue, 22 Mar 2022 09:22:26 -0500 Subject: [PATCH 10/12] Removed unneeded 'psci-support' package --- spago.dhall | 1 - 1 file changed, 1 deletion(-) diff --git a/spago.dhall b/spago.dhall index 5f90df3..1294aae 100644 --- a/spago.dhall +++ b/spago.dhall @@ -6,7 +6,6 @@ , "maybe" , "nullable" , "prelude" - , "psci-support" , "react" , "web-dom" ] From cb7b2e39ac7a79dcb9e9816b1695ddc002280013 Mon Sep 17 00:00:00 2001 From: Jordan Martinez Date: Tue, 22 Mar 2022 09:22:26 -0500 Subject: [PATCH 11/12] Update psa to 0.8.2 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index d913a47..2382bdb 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ }, "devDependencies": { "eslint": "^7.6.0", - "purescript-psa": "^0.8.0" + "purescript-psa": "^0.8.2" }, "peerDependencies": { "react-dom": "^16.0.0" From 8001a27d0f797d42c26b382d35f126f4ed38e956 Mon Sep 17 00:00:00 2001 From: Jordan Martinez Date: Tue, 22 Mar 2022 16:00:07 -0500 Subject: [PATCH 12/12] Added changelog entry --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index d3b2ff0..362269d 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: +- Migrate FFI to ES modules (#28 by @JordanMartinez) New features: