From 826476da4bbf22f06fbf3e80f5eadaa90bb5c4a8 Mon Sep 17 00:00:00 2001 From: Cyril Sobierajewicz Date: Sat, 17 Jul 2021 20:12:45 +0200 Subject: [PATCH 1/9] Convert foreign modules to try bundling with esbuild --- src/Data/Foldable.js | 4 ++-- src/Data/FunctorWithIndex.js | 2 +- src/Data/Traversable.js | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Data/Foldable.js b/src/Data/Foldable.js index bbdf340..4d0ce35 100644 --- a/src/Data/Foldable.js +++ b/src/Data/Foldable.js @@ -1,6 +1,6 @@ "use strict"; -exports.foldrArray = function (f) { +export var foldrArray = function (f) { return function (init) { return function (xs) { var acc = init; @@ -13,7 +13,7 @@ exports.foldrArray = function (f) { }; }; -exports.foldlArray = function (f) { +export var foldlArray = function (f) { return function (init) { return function (xs) { var acc = init; diff --git a/src/Data/FunctorWithIndex.js b/src/Data/FunctorWithIndex.js index 65b2816..64faa79 100644 --- a/src/Data/FunctorWithIndex.js +++ b/src/Data/FunctorWithIndex.js @@ -1,6 +1,6 @@ "use strict"; -exports.mapWithIndexArray = function (f) { +export var mapWithIndexArray = function (f) { return function (xs) { var l = xs.length; var result = Array(l); diff --git a/src/Data/Traversable.js b/src/Data/Traversable.js index 269ebe1..6223b3b 100644 --- a/src/Data/Traversable.js +++ b/src/Data/Traversable.js @@ -2,7 +2,7 @@ // jshint maxparams: 3 -exports.traverseArrayImpl = (function () { +export var traverseArrayImpl = (function () { function array1(a) { return [a]; } From fff79808622e3ce7999c5536e3d203aa6d7d0ff5 Mon Sep 17 00:00:00 2001 From: Jordan Martinez Date: Fri, 11 Mar 2022 14:15:47 -0800 Subject: [PATCH 2/9] Migrated FFI to ES modules via 'lebab' --- test/Main.js | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/test/Main.js b/test/Main.js index f7661fb..de9b1d7 100644 --- a/test/Main.js +++ b/test/Main.js @@ -1,14 +1,14 @@ "use strict"; -exports.arrayFrom1UpTo = function (n) { +export function arrayFrom1UpTo(n) { var result = []; for (var i = 1; i <= n; i++) { result.push(i); } return result; -}; +} -exports.arrayReplicate = function (n) { +export function arrayReplicate(n) { return function (x) { var result = []; for (var i = 1; i <= n; i++) { @@ -16,17 +16,17 @@ exports.arrayReplicate = function (n) { } return result; }; -}; +} -exports.mkNEArray = function (nothing) { +export function mkNEArray(nothing) { return function (just) { return function (arr) { return arr.length > 0 ? just(arr) : nothing; }; }; -}; +} -exports.foldMap1NEArray = function (append) { +export function foldMap1NEArray(append) { return function (f) { return function (arr) { var acc = f(arr[0]); @@ -37,4 +37,4 @@ exports.foldMap1NEArray = function (append) { return acc; }; }; -}; +} From 96024c82d23d9e848ef2f62e42a810b0188ae0e1 Mon Sep 17 00:00:00 2001 From: Jordan Martinez Date: Fri, 11 Mar 2022 14:15:47 -0800 Subject: [PATCH 3/9] Replaced 'export var' with 'export const' --- src/Data/Foldable.js | 4 ++-- src/Data/FunctorWithIndex.js | 2 +- src/Data/Traversable.js | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Data/Foldable.js b/src/Data/Foldable.js index 4d0ce35..22bdf82 100644 --- a/src/Data/Foldable.js +++ b/src/Data/Foldable.js @@ -1,6 +1,6 @@ "use strict"; -export var foldrArray = function (f) { +export const foldrArray = function (f) { return function (init) { return function (xs) { var acc = init; @@ -13,7 +13,7 @@ export var foldrArray = function (f) { }; }; -export var foldlArray = function (f) { +export const foldlArray = function (f) { return function (init) { return function (xs) { var acc = init; diff --git a/src/Data/FunctorWithIndex.js b/src/Data/FunctorWithIndex.js index 64faa79..339d147 100644 --- a/src/Data/FunctorWithIndex.js +++ b/src/Data/FunctorWithIndex.js @@ -1,6 +1,6 @@ "use strict"; -export var mapWithIndexArray = function (f) { +export const mapWithIndexArray = function (f) { return function (xs) { var l = xs.length; var result = Array(l); diff --git a/src/Data/Traversable.js b/src/Data/Traversable.js index 6223b3b..b1011fa 100644 --- a/src/Data/Traversable.js +++ b/src/Data/Traversable.js @@ -2,7 +2,7 @@ // jshint maxparams: 3 -export var traverseArrayImpl = (function () { +export const traverseArrayImpl = (function () { function array1(a) { return [a]; } From 2c654c53b4c9d8b35c8a6b4b34f1cbbbcf821135 Mon Sep 17 00:00:00 2001 From: Jordan Martinez Date: Fri, 11 Mar 2022 14:15:47 -0800 Subject: [PATCH 4/9] Removed '"use strict";' in FFI files --- src/Data/Foldable.js | 2 -- src/Data/FunctorWithIndex.js | 2 -- src/Data/Traversable.js | 2 -- test/Main.js | 2 -- 4 files changed, 8 deletions(-) diff --git a/src/Data/Foldable.js b/src/Data/Foldable.js index 22bdf82..8c5cbe4 100644 --- a/src/Data/Foldable.js +++ b/src/Data/Foldable.js @@ -1,5 +1,3 @@ -"use strict"; - export const foldrArray = function (f) { return function (init) { return function (xs) { diff --git a/src/Data/FunctorWithIndex.js b/src/Data/FunctorWithIndex.js index 339d147..884e842 100644 --- a/src/Data/FunctorWithIndex.js +++ b/src/Data/FunctorWithIndex.js @@ -1,5 +1,3 @@ -"use strict"; - export const mapWithIndexArray = function (f) { return function (xs) { var l = xs.length; diff --git a/src/Data/Traversable.js b/src/Data/Traversable.js index b1011fa..9f4248c 100644 --- a/src/Data/Traversable.js +++ b/src/Data/Traversable.js @@ -1,5 +1,3 @@ -"use strict"; - // jshint maxparams: 3 export const traverseArrayImpl = (function () { diff --git a/test/Main.js b/test/Main.js index de9b1d7..fc3b2ff 100644 --- a/test/Main.js +++ b/test/Main.js @@ -1,5 +1,3 @@ -"use strict"; - export function arrayFrom1UpTo(n) { var result = []; for (var i = 1; i <= n; i++) { From 7fa7c0721686f6c8bcedb6f8033bdce501dbf597 Mon Sep 17 00:00:00 2001 From: Jordan Martinez Date: Fri, 11 Mar 2022 14:15:47 -0800 Subject: [PATCH 5/9] Update to CI to use 'unstable' purescript --- .github/workflows/ci.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 43d2897..b6ebf3a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -13,6 +13,8 @@ jobs: - uses: actions/checkout@v2 - uses: purescript-contrib/setup-purescript@main + with: + purescript: "unstable" - uses: actions/setup-node@v1 with: From acc86e0b620cc66937904ef5bc09a237f330d3ad Mon Sep 17 00:00:00 2001 From: Jordan Martinez Date: Fri, 11 Mar 2022 14:15:47 -0800 Subject: [PATCH 6/9] Update pulp to 16.0.0-0 and psa to 0.8.2 --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index fd4391e..a1d6811 100644 --- a/package.json +++ b/package.json @@ -7,8 +7,8 @@ }, "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" } } From 77b510c8ff9c02f9cbab2d0770bbc4c7bdfa6fe0 Mon Sep 17 00:00:00 2001 From: Jordan Martinez Date: Fri, 11 Mar 2022 14:59:21 -0800 Subject: [PATCH 7/9] Update Bower dependencies to master --- bower.json | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/bower.json b/bower.json index 01ba9de..f90a2ff 100644 --- a/bower.json +++ b/bower.json @@ -17,23 +17,23 @@ "package.json" ], "dependencies": { - "purescript-bifunctors": "^5.0.0", - "purescript-const": "^5.0.0", - "purescript-control": "^5.0.0", - "purescript-either": "^5.0.0", - "purescript-functors": "^4.0.0", - "purescript-identity": "^5.0.0", - "purescript-maybe": "^5.0.0", - "purescript-newtype": "^4.0.0", - "purescript-orders": "^5.0.0", - "purescript-prelude": "^5.0.0", - "purescript-tuples": "^6.0.0" + "purescript-bifunctors": "master", + "purescript-const": "master", + "purescript-control": "master", + "purescript-either": "master", + "purescript-functors": "master", + "purescript-identity": "master", + "purescript-maybe": "master", + "purescript-newtype": "master", + "purescript-orders": "master", + "purescript-prelude": "master", + "purescript-tuples": "master" }, "devDependencies": { - "purescript-assert": "^5.0.0", - "purescript-console": "^5.0.0", - "purescript-integers": "^5.0.0", - "purescript-math": "^3.0.0", - "purescript-unsafe-coerce": "^5.0.0" + "purescript-assert": "master", + "purescript-console": "master", + "purescript-integers": "master", + "purescript-math": "master", + "purescript-unsafe-coerce": "master" } } From 6e8e00e3f91740485e080e5a602b57e602d745a3 Mon Sep 17 00:00:00 2001 From: Jordan Martinez Date: Mon, 14 Mar 2022 14:21:16 -0700 Subject: [PATCH 8/9] Update .eslintrc.json to ES6 --- .eslintrc.json | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) 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, From 2cb64c4bb402968ba76d6e4f1591fc585c95e4a2 Mon Sep 17 00:00:00 2001 From: Jordan Martinez Date: Mon, 14 Mar 2022 15:55:25 -0700 Subject: [PATCH 9/9] Added changelog entry --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index e6e1e9c..2024a7c 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 (#146 by @kl0tl and @JordanMartinez) New features: