From 4ca36f8a36b7e1f908880f38af9d69af1c38ab08 Mon Sep 17 00:00:00 2001 From: Cyril Sobierajewicz Date: Sat, 17 Jul 2021 20:25:28 +0200 Subject: [PATCH 01/11] Convert foreign modules to try bundling with esbuild --- src/Data/String/CodePoints.js | 14 +++++++------- src/Data/String/CodeUnits.js | 30 +++++++++++++++--------------- src/Data/String/Common.js | 16 ++++++++-------- src/Data/String/Regex.js | 20 ++++++++++---------- src/Data/String/Unsafe.js | 4 ++-- 5 files changed, 42 insertions(+), 42 deletions(-) diff --git a/src/Data/String/CodePoints.js b/src/Data/String/CodePoints.js index eead7f6..7b966b4 100644 --- a/src/Data/String/CodePoints.js +++ b/src/Data/String/CodePoints.js @@ -10,13 +10,13 @@ var hasStringIterator = var hasFromCodePoint = typeof String.prototype.fromCodePoint === "function"; var hasCodePointAt = typeof String.prototype.codePointAt === "function"; -exports._unsafeCodePointAt0 = function (fallback) { +export var _unsafeCodePointAt0 = function (fallback) { return hasCodePointAt ? function (str) { return str.codePointAt(0); } : fallback; }; -exports._codePointAt = function (fallback) { +export var _codePointAt = function (fallback) { return function (Just) { return function (Nothing) { return function (unsafeCodePointAt0) { @@ -40,7 +40,7 @@ exports._codePointAt = function (fallback) { }; }; -exports._countPrefix = function (fallback) { +export var _countPrefix = function (fallback) { return function (unsafeCodePointAt0) { if (hasStringIterator) { return function (pred) { @@ -59,7 +59,7 @@ exports._countPrefix = function (fallback) { }; }; -exports._fromCodePointArray = function (singleton) { +export var _fromCodePointArray = function (singleton) { return hasFromCodePoint ? function (cps) { // Function.prototype.apply will fail for very large second parameters, @@ -74,11 +74,11 @@ exports._fromCodePointArray = function (singleton) { }; }; -exports._singleton = function (fallback) { +export var _singleton = function (fallback) { return hasFromCodePoint ? String.fromCodePoint : fallback; }; -exports._take = function (fallback) { +export var _take = function (fallback) { return function (n) { if (hasStringIterator) { return function (str) { @@ -96,7 +96,7 @@ exports._take = function (fallback) { }; }; -exports._toCodePointArray = function (fallback) { +export var _toCodePointArray = function (fallback) { return function (unsafeCodePointAt0) { if (hasArrayFrom) { return function (str) { diff --git a/src/Data/String/CodeUnits.js b/src/Data/String/CodeUnits.js index 6017fd3..54a12fe 100644 --- a/src/Data/String/CodeUnits.js +++ b/src/Data/String/CodeUnits.js @@ -1,18 +1,18 @@ "use strict"; -exports.fromCharArray = function (a) { +export var fromCharArray = function (a) { return a.join(""); }; -exports.toCharArray = function (s) { +export var toCharArray = function (s) { return s.split(""); }; -exports.singleton = function (c) { +export var singleton = function (c) { return c; }; -exports._charAt = function (just) { +export var _charAt = function (just) { return function (nothing) { return function (i) { return function (s) { @@ -22,7 +22,7 @@ exports._charAt = function (just) { }; }; -exports._toChar = function (just) { +export var _toChar = function (just) { return function (nothing) { return function (s) { return s.length === 1 ? just(s) : nothing; @@ -30,11 +30,11 @@ exports._toChar = function (just) { }; }; -exports.length = function (s) { +export var length = function (s) { return s.length; }; -exports.countPrefix = function (p) { +export var countPrefix = function (p) { return function (s) { var i = 0; while (i < s.length && p(s.charAt(i))) i++; @@ -42,7 +42,7 @@ exports.countPrefix = function (p) { }; }; -exports._indexOf = function (just) { +export var _indexOf = function (just) { return function (nothing) { return function (x) { return function (s) { @@ -53,7 +53,7 @@ exports._indexOf = function (just) { }; }; -exports._indexOfStartingAt = function (just) { +export var _indexOfStartingAt = function (just) { return function (nothing) { return function (x) { return function (startAt) { @@ -67,7 +67,7 @@ exports._indexOfStartingAt = function (just) { }; }; -exports._lastIndexOf = function (just) { +export var _lastIndexOf = function (just) { return function (nothing) { return function (x) { return function (s) { @@ -78,7 +78,7 @@ exports._lastIndexOf = function (just) { }; }; -exports._lastIndexOfStartingAt = function (just) { +export var _lastIndexOfStartingAt = function (just) { return function (nothing) { return function (x) { return function (startAt) { @@ -91,19 +91,19 @@ exports._lastIndexOfStartingAt = function (just) { }; }; -exports.take = function (n) { +export var take = function (n) { return function (s) { return s.substr(0, n); }; }; -exports.drop = function (n) { +export var drop = function (n) { return function (s) { return s.substring(n); }; }; -exports._slice = function (b) { +export var _slice = function (b) { return function (e) { return function (s) { return s.slice(b,e); @@ -111,7 +111,7 @@ exports._slice = function (b) { }; }; -exports.splitAt = function (i) { +export var splitAt = function (i) { return function (s) { return { before: s.substring(0, i), after: s.substring(i) }; }; diff --git a/src/Data/String/Common.js b/src/Data/String/Common.js index 111c02e..02922c9 100644 --- a/src/Data/String/Common.js +++ b/src/Data/String/Common.js @@ -1,6 +1,6 @@ "use strict"; -exports._localeCompare = function (lt) { +export var _localeCompare = function (lt) { return function (eq) { return function (gt) { return function (s1) { @@ -13,7 +13,7 @@ exports._localeCompare = function (lt) { }; }; -exports.replace = function (s1) { +export var replace = function (s1) { return function (s2) { return function (s3) { return s3.replace(s1, s2); @@ -21,7 +21,7 @@ exports.replace = function (s1) { }; }; -exports.replaceAll = function (s1) { +export var replaceAll = function (s1) { return function (s2) { return function (s3) { return s3.replace(new RegExp(s1.replace(/[-\/\\^$*+?.()|[\]{}]/g, "\\$&"), "g"), s2); // eslint-disable-line no-useless-escape @@ -29,25 +29,25 @@ exports.replaceAll = function (s1) { }; }; -exports.split = function (sep) { +export var split = function (sep) { return function (s) { return s.split(sep); }; }; -exports.toLower = function (s) { +export var toLower = function (s) { return s.toLowerCase(); }; -exports.toUpper = function (s) { +export var toUpper = function (s) { return s.toUpperCase(); }; -exports.trim = function (s) { +export var trim = function (s) { return s.trim(); }; -exports.joinWith = function (s) { +export var joinWith = function (s) { return function (xs) { return xs.join(s); }; diff --git a/src/Data/String/Regex.js b/src/Data/String/Regex.js index b3be593..cc217f1 100644 --- a/src/Data/String/Regex.js +++ b/src/Data/String/Regex.js @@ -1,10 +1,10 @@ "use strict"; -exports.showRegexImpl = function (r) { +export var showRegexImpl = function (r) { return "" + r; }; -exports.regexImpl = function (left) { +export var regexImpl = function (left) { return function (right) { return function (s1) { return function (s2) { @@ -18,11 +18,11 @@ exports.regexImpl = function (left) { }; }; -exports.source = function (r) { +export var source = function (r) { return r.source; }; -exports.flagsImpl = function (r) { +export var flagsImpl = function (r) { return { multiline: r.multiline, ignoreCase: r.ignoreCase, @@ -33,7 +33,7 @@ exports.flagsImpl = function (r) { }; }; -exports.test = function (r) { +export var test = function (r) { return function (s) { var lastIndex = r.lastIndex; var result = r.test(s); @@ -42,7 +42,7 @@ exports.test = function (r) { }; }; -exports._match = function (just) { +export var _match = function (just) { return function (nothing) { return function (r) { return function (s) { @@ -60,7 +60,7 @@ exports._match = function (just) { }; }; -exports.replace = function (r) { +export var replace = function (r) { return function (s1) { return function (s2) { return s2.replace(r, s1); @@ -68,7 +68,7 @@ exports.replace = function (r) { }; }; -exports._replaceBy = function (just) { +export var _replaceBy = function (just) { return function (nothing) { return function (r) { return function (f) { @@ -87,7 +87,7 @@ exports._replaceBy = function (just) { }; }; -exports._search = function (just) { +export var _search = function (just) { return function (nothing) { return function (r) { return function (s) { @@ -98,7 +98,7 @@ exports._search = function (just) { }; }; -exports.split = function (r) { +export var split = function (r) { return function (s) { return s.split(r); }; diff --git a/src/Data/String/Unsafe.js b/src/Data/String/Unsafe.js index d7a17ca..f0db7e3 100644 --- a/src/Data/String/Unsafe.js +++ b/src/Data/String/Unsafe.js @@ -1,13 +1,13 @@ "use strict"; -exports.charAt = function (i) { +export var charAt = function (i) { return function (s) { if (i >= 0 && i < s.length) return s.charAt(i); throw new Error("Data.String.Unsafe.charAt: Invalid index."); }; }; -exports.char = function (s) { +export var char = function (s) { if (s.length === 1) return s.charAt(0); throw new Error("Data.String.Unsafe.char: Expected string of length 1."); }; From aa032b29b4037040bcacf7cf33d3339b8fab3e52 Mon Sep 17 00:00:00 2001 From: Jordan Martinez Date: Fri, 11 Mar 2022 14:22:08 -0800 Subject: [PATCH 02/11] Replaced 'export var' with 'export const' --- src/Data/String/CodePoints.js | 14 +++++++------- src/Data/String/CodeUnits.js | 30 +++++++++++++++--------------- src/Data/String/Common.js | 16 ++++++++-------- src/Data/String/Regex.js | 20 ++++++++++---------- src/Data/String/Unsafe.js | 4 ++-- 5 files changed, 42 insertions(+), 42 deletions(-) diff --git a/src/Data/String/CodePoints.js b/src/Data/String/CodePoints.js index 7b966b4..112ed0c 100644 --- a/src/Data/String/CodePoints.js +++ b/src/Data/String/CodePoints.js @@ -10,13 +10,13 @@ var hasStringIterator = var hasFromCodePoint = typeof String.prototype.fromCodePoint === "function"; var hasCodePointAt = typeof String.prototype.codePointAt === "function"; -export var _unsafeCodePointAt0 = function (fallback) { +export const _unsafeCodePointAt0 = function (fallback) { return hasCodePointAt ? function (str) { return str.codePointAt(0); } : fallback; }; -export var _codePointAt = function (fallback) { +export const _codePointAt = function (fallback) { return function (Just) { return function (Nothing) { return function (unsafeCodePointAt0) { @@ -40,7 +40,7 @@ export var _codePointAt = function (fallback) { }; }; -export var _countPrefix = function (fallback) { +export const _countPrefix = function (fallback) { return function (unsafeCodePointAt0) { if (hasStringIterator) { return function (pred) { @@ -59,7 +59,7 @@ export var _countPrefix = function (fallback) { }; }; -export var _fromCodePointArray = function (singleton) { +export const _fromCodePointArray = function (singleton) { return hasFromCodePoint ? function (cps) { // Function.prototype.apply will fail for very large second parameters, @@ -74,11 +74,11 @@ export var _fromCodePointArray = function (singleton) { }; }; -export var _singleton = function (fallback) { +export const _singleton = function (fallback) { return hasFromCodePoint ? String.fromCodePoint : fallback; }; -export var _take = function (fallback) { +export const _take = function (fallback) { return function (n) { if (hasStringIterator) { return function (str) { @@ -96,7 +96,7 @@ export var _take = function (fallback) { }; }; -export var _toCodePointArray = function (fallback) { +export const _toCodePointArray = function (fallback) { return function (unsafeCodePointAt0) { if (hasArrayFrom) { return function (str) { diff --git a/src/Data/String/CodeUnits.js b/src/Data/String/CodeUnits.js index 54a12fe..5032828 100644 --- a/src/Data/String/CodeUnits.js +++ b/src/Data/String/CodeUnits.js @@ -1,18 +1,18 @@ "use strict"; -export var fromCharArray = function (a) { +export const fromCharArray = function (a) { return a.join(""); }; -export var toCharArray = function (s) { +export const toCharArray = function (s) { return s.split(""); }; -export var singleton = function (c) { +export const singleton = function (c) { return c; }; -export var _charAt = function (just) { +export const _charAt = function (just) { return function (nothing) { return function (i) { return function (s) { @@ -22,7 +22,7 @@ export var _charAt = function (just) { }; }; -export var _toChar = function (just) { +export const _toChar = function (just) { return function (nothing) { return function (s) { return s.length === 1 ? just(s) : nothing; @@ -30,11 +30,11 @@ export var _toChar = function (just) { }; }; -export var length = function (s) { +export const length = function (s) { return s.length; }; -export var countPrefix = function (p) { +export const countPrefix = function (p) { return function (s) { var i = 0; while (i < s.length && p(s.charAt(i))) i++; @@ -42,7 +42,7 @@ export var countPrefix = function (p) { }; }; -export var _indexOf = function (just) { +export const _indexOf = function (just) { return function (nothing) { return function (x) { return function (s) { @@ -53,7 +53,7 @@ export var _indexOf = function (just) { }; }; -export var _indexOfStartingAt = function (just) { +export const _indexOfStartingAt = function (just) { return function (nothing) { return function (x) { return function (startAt) { @@ -67,7 +67,7 @@ export var _indexOfStartingAt = function (just) { }; }; -export var _lastIndexOf = function (just) { +export const _lastIndexOf = function (just) { return function (nothing) { return function (x) { return function (s) { @@ -78,7 +78,7 @@ export var _lastIndexOf = function (just) { }; }; -export var _lastIndexOfStartingAt = function (just) { +export const _lastIndexOfStartingAt = function (just) { return function (nothing) { return function (x) { return function (startAt) { @@ -91,19 +91,19 @@ export var _lastIndexOfStartingAt = function (just) { }; }; -export var take = function (n) { +export const take = function (n) { return function (s) { return s.substr(0, n); }; }; -export var drop = function (n) { +export const drop = function (n) { return function (s) { return s.substring(n); }; }; -export var _slice = function (b) { +export const _slice = function (b) { return function (e) { return function (s) { return s.slice(b,e); @@ -111,7 +111,7 @@ export var _slice = function (b) { }; }; -export var splitAt = function (i) { +export const splitAt = function (i) { return function (s) { return { before: s.substring(0, i), after: s.substring(i) }; }; diff --git a/src/Data/String/Common.js b/src/Data/String/Common.js index 02922c9..bc5d1d9 100644 --- a/src/Data/String/Common.js +++ b/src/Data/String/Common.js @@ -1,6 +1,6 @@ "use strict"; -export var _localeCompare = function (lt) { +export const _localeCompare = function (lt) { return function (eq) { return function (gt) { return function (s1) { @@ -13,7 +13,7 @@ export var _localeCompare = function (lt) { }; }; -export var replace = function (s1) { +export const replace = function (s1) { return function (s2) { return function (s3) { return s3.replace(s1, s2); @@ -21,7 +21,7 @@ export var replace = function (s1) { }; }; -export var replaceAll = function (s1) { +export const replaceAll = function (s1) { return function (s2) { return function (s3) { return s3.replace(new RegExp(s1.replace(/[-\/\\^$*+?.()|[\]{}]/g, "\\$&"), "g"), s2); // eslint-disable-line no-useless-escape @@ -29,25 +29,25 @@ export var replaceAll = function (s1) { }; }; -export var split = function (sep) { +export const split = function (sep) { return function (s) { return s.split(sep); }; }; -export var toLower = function (s) { +export const toLower = function (s) { return s.toLowerCase(); }; -export var toUpper = function (s) { +export const toUpper = function (s) { return s.toUpperCase(); }; -export var trim = function (s) { +export const trim = function (s) { return s.trim(); }; -export var joinWith = function (s) { +export const joinWith = function (s) { return function (xs) { return xs.join(s); }; diff --git a/src/Data/String/Regex.js b/src/Data/String/Regex.js index cc217f1..3875c84 100644 --- a/src/Data/String/Regex.js +++ b/src/Data/String/Regex.js @@ -1,10 +1,10 @@ "use strict"; -export var showRegexImpl = function (r) { +export const showRegexImpl = function (r) { return "" + r; }; -export var regexImpl = function (left) { +export const regexImpl = function (left) { return function (right) { return function (s1) { return function (s2) { @@ -18,11 +18,11 @@ export var regexImpl = function (left) { }; }; -export var source = function (r) { +export const source = function (r) { return r.source; }; -export var flagsImpl = function (r) { +export const flagsImpl = function (r) { return { multiline: r.multiline, ignoreCase: r.ignoreCase, @@ -33,7 +33,7 @@ export var flagsImpl = function (r) { }; }; -export var test = function (r) { +export const test = function (r) { return function (s) { var lastIndex = r.lastIndex; var result = r.test(s); @@ -42,7 +42,7 @@ export var test = function (r) { }; }; -export var _match = function (just) { +export const _match = function (just) { return function (nothing) { return function (r) { return function (s) { @@ -60,7 +60,7 @@ export var _match = function (just) { }; }; -export var replace = function (r) { +export const replace = function (r) { return function (s1) { return function (s2) { return s2.replace(r, s1); @@ -68,7 +68,7 @@ export var replace = function (r) { }; }; -export var _replaceBy = function (just) { +export const _replaceBy = function (just) { return function (nothing) { return function (r) { return function (f) { @@ -87,7 +87,7 @@ export var _replaceBy = function (just) { }; }; -export var _search = function (just) { +export const _search = function (just) { return function (nothing) { return function (r) { return function (s) { @@ -98,7 +98,7 @@ export var _search = function (just) { }; }; -export var split = function (r) { +export const split = function (r) { return function (s) { return s.split(r); }; diff --git a/src/Data/String/Unsafe.js b/src/Data/String/Unsafe.js index f0db7e3..f2688b3 100644 --- a/src/Data/String/Unsafe.js +++ b/src/Data/String/Unsafe.js @@ -1,13 +1,13 @@ "use strict"; -export var charAt = function (i) { +export const charAt = function (i) { return function (s) { if (i >= 0 && i < s.length) return s.charAt(i); throw new Error("Data.String.Unsafe.charAt: Invalid index."); }; }; -export var char = function (s) { +export const char = function (s) { if (s.length === 1) return s.charAt(0); throw new Error("Data.String.Unsafe.char: Expected string of length 1."); }; From fa6e886649e045cd5518a0c836efd69501d17bbb Mon Sep 17 00:00:00 2001 From: Jordan Martinez Date: Fri, 11 Mar 2022 14:22:09 -0800 Subject: [PATCH 03/11] Removed '"use strict";' in FFI files --- src/Data/String/CodePoints.js | 1 - src/Data/String/CodeUnits.js | 2 -- src/Data/String/Common.js | 2 -- src/Data/String/Regex.js | 2 -- src/Data/String/Unsafe.js | 2 -- 5 files changed, 9 deletions(-) diff --git a/src/Data/String/CodePoints.js b/src/Data/String/CodePoints.js index 112ed0c..ebd9e39 100644 --- a/src/Data/String/CodePoints.js +++ b/src/Data/String/CodePoints.js @@ -1,4 +1,3 @@ -"use strict"; /* global Symbol */ var hasArrayFrom = typeof Array.from === "function"; diff --git a/src/Data/String/CodeUnits.js b/src/Data/String/CodeUnits.js index 5032828..47d61f9 100644 --- a/src/Data/String/CodeUnits.js +++ b/src/Data/String/CodeUnits.js @@ -1,5 +1,3 @@ -"use strict"; - export const fromCharArray = function (a) { return a.join(""); }; diff --git a/src/Data/String/Common.js b/src/Data/String/Common.js index bc5d1d9..5693585 100644 --- a/src/Data/String/Common.js +++ b/src/Data/String/Common.js @@ -1,5 +1,3 @@ -"use strict"; - export const _localeCompare = function (lt) { return function (eq) { return function (gt) { diff --git a/src/Data/String/Regex.js b/src/Data/String/Regex.js index 3875c84..3196034 100644 --- a/src/Data/String/Regex.js +++ b/src/Data/String/Regex.js @@ -1,5 +1,3 @@ -"use strict"; - export const showRegexImpl = function (r) { return "" + r; }; diff --git a/src/Data/String/Unsafe.js b/src/Data/String/Unsafe.js index f2688b3..75772aa 100644 --- a/src/Data/String/Unsafe.js +++ b/src/Data/String/Unsafe.js @@ -1,5 +1,3 @@ -"use strict"; - export const charAt = function (i) { return function (s) { if (i >= 0 && i < s.length) return s.charAt(i); From 1639c30db46c0768e7b7e102dc42637eac120923 Mon Sep 17 00:00:00 2001 From: Jordan Martinez Date: Fri, 11 Mar 2022 14:22:09 -0800 Subject: [PATCH 04/11] 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 69bd286fcb196909b6be355271fdd9c60fc8e294 Mon Sep 17 00:00:00 2001 From: Jordan Martinez Date: Fri, 11 Mar 2022 14:22:09 -0800 Subject: [PATCH 05/11] 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 c116cae..b915636 100644 --- a/package.json +++ b/package.json @@ -11,8 +11,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 b7a6e3c7f5ce34a3304e79a4aef32cf45cbb7ba2 Mon Sep 17 00:00:00 2001 From: Jordan Martinez Date: Fri, 11 Mar 2022 14:59:26 -0800 Subject: [PATCH 06/11] Update Bower dependencies to master --- bower.json | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/bower.json b/bower.json index d4c9f36..2b8dd58 100644 --- a/bower.json +++ b/bower.json @@ -16,26 +16,26 @@ "package.json" ], "dependencies": { - "purescript-arrays": "^6.0.0", - "purescript-control": "^5.0.0", - "purescript-either": "^5.0.0", - "purescript-enums": "^5.0.0", - "purescript-foldable-traversable": "^5.0.0", - "purescript-gen": "^3.0.0", - "purescript-integers": "^5.0.0", - "purescript-maybe": "^5.0.0", - "purescript-newtype": "^4.0.0", - "purescript-nonempty": "^6.0.0", - "purescript-partial": "^3.0.0", - "purescript-prelude": "^5.0.0", - "purescript-tailrec": "^5.0.0", - "purescript-tuples": "^6.0.0", - "purescript-unfoldable": "^5.0.0", - "purescript-unsafe-coerce": "^5.0.0" + "purescript-arrays": "master", + "purescript-control": "master", + "purescript-either": "master", + "purescript-enums": "master", + "purescript-foldable-traversable": "master", + "purescript-gen": "master", + "purescript-integers": "master", + "purescript-maybe": "master", + "purescript-newtype": "master", + "purescript-nonempty": "master", + "purescript-partial": "master", + "purescript-prelude": "master", + "purescript-tailrec": "master", + "purescript-tuples": "master", + "purescript-unfoldable": "master", + "purescript-unsafe-coerce": "master" }, "devDependencies": { - "purescript-assert": "^5.0.0", - "purescript-console": "^5.0.0", - "purescript-minibench": "^3.0.0" + "purescript-assert": "master", + "purescript-console": "master", + "purescript-minibench": "master" } } From 2128c309a8dc7eaefd017d6dbd046f4876fc7d86 Mon Sep 17 00:00:00 2001 From: Jordan Martinez Date: Tue, 15 Mar 2022 12:34:28 -0700 Subject: [PATCH 07/11] 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 73b01692d3d9434233ba091556606b64a9475b84 Mon Sep 17 00:00:00 2001 From: Jordan Martinez Date: Tue, 15 Mar 2022 12:37:09 -0700 Subject: [PATCH 08/11] Fix compiler error due to Proxy type --- src/Data/String/NonEmpty/Internal.purs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Data/String/NonEmpty/Internal.purs b/src/Data/String/NonEmpty/Internal.purs index 707b779..8722654 100644 --- a/src/Data/String/NonEmpty/Internal.purs +++ b/src/Data/String/NonEmpty/Internal.purs @@ -16,6 +16,7 @@ import Data.String as String import Data.String.Pattern (Pattern) import Data.Symbol (class IsSymbol, reflectSymbol) import Prim.TypeError as TE +import Type.Proxy (Proxy) import Unsafe.Coerce (unsafeCoerce) -- | A string that is known not to be empty. @@ -41,7 +42,7 @@ instance showNonEmptyString :: Show NonEmptyString where -- | something = nes (Proxy :: Proxy "something") -- | ``` class MakeNonEmpty (s :: Symbol) where - nes :: forall proxy. proxy s -> NonEmptyString + nes :: Proxy s -> NonEmptyString instance makeNonEmptyBad :: TE.Fail (TE.Text "Cannot create an NonEmptyString from an empty Symbol") => MakeNonEmpty "" where nes _ = NonEmptyString "" From 8a7931fbf6832194481e849eed8124bbff2d2d71 Mon Sep 17 00:00:00 2001 From: Jordan Martinez Date: Tue, 15 Mar 2022 12:39:51 -0700 Subject: [PATCH 09/11] Fix unused name compiler warnings --- test/Test/Data/String/NonEmpty/CodeUnits.purs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/test/Test/Data/String/NonEmpty/CodeUnits.purs b/test/Test/Data/String/NonEmpty/CodeUnits.purs index 9a33b0c..e810dd9 100644 --- a/test/Test/Data/String/NonEmpty/CodeUnits.purs +++ b/test/Test/Data/String/NonEmpty/CodeUnits.purs @@ -170,11 +170,11 @@ testNonEmptyStringCodeUnits = do log "takeWhile" assertEqual - { actual: NESCU.takeWhile (\c -> true) (nes (Proxy :: Proxy "abc")) + { actual: NESCU.takeWhile (\_ -> true) (nes (Proxy :: Proxy "abc")) , expected: Just (nes (Proxy :: Proxy "abc")) } assertEqual - { actual: NESCU.takeWhile (\c -> false) (nes (Proxy :: Proxy "abc")) + { actual: NESCU.takeWhile (\_ -> false) (nes (Proxy :: Proxy "abc")) , expected: Nothing } assertEqual @@ -192,11 +192,11 @@ testNonEmptyStringCodeUnits = do log "dropWhile" assertEqual - { actual: NESCU.dropWhile (\c -> true) (nes (Proxy :: Proxy "abc")) + { actual: NESCU.dropWhile (\_ -> true) (nes (Proxy :: Proxy "abc")) , expected: Nothing } assertEqual - { actual: NESCU.dropWhile (\c -> false) (nes (Proxy :: Proxy "abc")) + { actual: NESCU.dropWhile (\_ -> false) (nes (Proxy :: Proxy "abc")) , expected: Just (nes (Proxy :: Proxy "abc")) } assertEqual From 5c72d34a2ef2604e9d3dd19314c501cf262216ec Mon Sep 17 00:00:00 2001 From: Jordan Martinez Date: Tue, 15 Mar 2022 12:41:20 -0700 Subject: [PATCH 10/11] Added changelog entry --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index c3bf386..d63cbd2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,8 @@ Notable changes to this project are documented in this file. The format is based ## [Unreleased] Breaking changes: +- Migrate FFI to ES modules (#158 by @kl0tl and @JordanMartinez) +- Replaced polymorphic proxies with monomorphic `Proxy` (#158 by @JordanMartinez) New features: From 0a26dc6a2b39cdbbe84f08933ac98ccebc43faf7 Mon Sep 17 00:00:00 2001 From: Jordan Martinez Date: Tue, 15 Mar 2022 12:44:12 -0700 Subject: [PATCH 11/11] Update test script to use import --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index b915636..cffd45e 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "clean": "rimraf output && rimraf .pulp-cache", "build": "eslint src && pulp build -- --censor-lib --strict", "test": "pulp test && npm run test:run:without_codePointAt", - "test:run:without_codePointAt": "node -e \"delete String.prototype.codePointAt; require('./output/Test.Main/index.js').main();\"", + "test:run:without_codePointAt": "node -e \"delete String.prototype.codePointAt; import('./output/Test.Main/index.js').then(m => m.main());\"", "bench:build": "purs compile 'bench/**/*.purs' 'src/**/*.purs' 'bower_components/*/src/**/*.purs'", "bench:run": "node --expose-gc -e 'require(\"./output/Bench.Main/index.js\").main()'", "bench": "npm run bench:build && npm run bench:run"