From c6cbbe633ea1cccc0bb5d18840e1b98eb26e3d8f Mon Sep 17 00:00:00 2001 From: Nicholas Wolverson Date: Sat, 12 Feb 2022 10:55:44 +0000 Subject: [PATCH 1/8] ESM conversion --- src/Node/Buffer/Immutable.js | 67 ++++++++++++++++++------------------ src/Node/Buffer/Internal.js | 24 ++++++------- src/Node/Encoding.js | 4 +-- 3 files changed, 48 insertions(+), 47 deletions(-) diff --git a/src/Node/Buffer/Immutable.js b/src/Node/Buffer/Immutable.js index f962257..2a16f01 100644 --- a/src/Node/Buffer/Immutable.js +++ b/src/Node/Buffer/Immutable.js @@ -1,60 +1,61 @@ /* global Buffer */ "use strict"; -exports.showImpl = require("util").inspect; +import { inspect } from "util"; +export const showImpl = inspect; -exports.eqImpl = function (a) { +export function eqImpl(a) { return function (b) { return a.equals(b); }; -}; +} -exports.compareImpl = function (a) { +export function compareImpl(a) { return function (b) { return a.compare(b); }; -}; +} -exports.create = function (size) { +export function create(size) { return Buffer.alloc(size); -}; +} -exports.fromArray = function (octets) { +export function fromArray(octets) { return Buffer.from(octets); -}; +} -exports.size = function (buff) { +export function size(buff) { return buff.length; -}; +} -exports.toArray = function (buff) { +export function toArray(buff) { var json = buff.toJSON(); return json.data || json; -}; +} -exports.toArrayBuffer = function (buff) { +export function toArrayBuffer(buff) { return buff.buffer.slice(buff.byteOffset, buff.byteOffset + buff.byteLength); -}; +} -exports.fromArrayBuffer = function (ab) { +export function fromArrayBuffer(ab) { return Buffer.from(ab); -}; +} -exports.fromStringImpl = function (str) { +export function fromStringImpl(str) { return function (encoding) { return Buffer.from(str, encoding); }; -}; +} -exports.readImpl = function (ty) { +export function readImpl(ty) { return function (offset) { return function (buf) { return buf["read" + ty](offset); }; }; -}; +} -exports.readStringImpl = function (enc) { +export function readStringImpl(enc) { return function (start) { return function (end) { return function (buff) { @@ -62,9 +63,9 @@ exports.readStringImpl = function (enc) { }; }; }; -}; +} -exports.getAtOffsetImpl = function (just) { +export function getAtOffsetImpl(just) { return function (nothing) { return function (offset) { return function (buff) { @@ -73,28 +74,28 @@ exports.getAtOffsetImpl = function (just) { }; }; }; -}; +} -exports.toStringImpl = function (enc) { +export function toStringImpl(enc) { return function (buff) { return buff.toString(enc); }; -}; +} -exports.slice = function (start) { +export function slice(start) { return function (end) { return function (buff) { return buff.slice(start, end); }; }; -}; +} -exports.concat = function (buffs) { +export function concat(buffs) { return Buffer.concat(buffs); -}; +} -exports.concatToLength = function (buffs) { +export function concatToLength(buffs) { return function (totalLength) { return Buffer.concat(buffs, totalLength); }; -}; +} diff --git a/src/Node/Buffer/Internal.js b/src/Node/Buffer/Internal.js index 74a0a9c..bfa9ea7 100644 --- a/src/Node/Buffer/Internal.js +++ b/src/Node/Buffer/Internal.js @@ -1,13 +1,13 @@ /* global Buffer */ "use strict"; -exports.copyAll = function (a) { +export function copyAll(a) { return function () { return Buffer.from(a); }; -}; +} -exports.writeInternal = function (ty) { +export function writeInternal(ty) { return function (value) { return function (offset) { return function (buf) { @@ -17,9 +17,9 @@ exports.writeInternal = function (ty) { }; }; }; -}; +} -exports.writeStringInternal = function (encoding) { +export function writeStringInternal(encoding) { return function (offset) { return function (length) { return function (value) { @@ -31,9 +31,9 @@ exports.writeStringInternal = function (encoding) { }; }; }; -}; +} -exports.setAtOffset = function (value) { +export function setAtOffset(value) { return function (offset) { return function (buff) { return function () { @@ -41,9 +41,9 @@ exports.setAtOffset = function (value) { }; }; }; -}; +} -exports.copy = function (srcStart) { +export function copy(srcStart) { return function (srcEnd) { return function (src) { return function (targStart) { @@ -55,9 +55,9 @@ exports.copy = function (srcStart) { }; }; }; -}; +} -exports.fill = function (octet) { +export function fill(octet) { return function (start) { return function (end) { return function (buf) { @@ -67,4 +67,4 @@ exports.fill = function (octet) { }; }; }; -}; +} diff --git a/src/Node/Encoding.js b/src/Node/Encoding.js index aaa2166..15630f5 100644 --- a/src/Node/Encoding.js +++ b/src/Node/Encoding.js @@ -1,8 +1,8 @@ /* global Buffer */ "use strict"; -exports.byteLengthImpl = function (str) { +export function byteLengthImpl(str) { return function (enc) { return Buffer.byteLength(str, enc); }; -}; +} From e45b2675235608238d6556ef221deaac546be505 Mon Sep 17 00:00:00 2001 From: Nicholas Wolverson Date: Sat, 12 Feb 2022 10:56:47 +0000 Subject: [PATCH 2/8] Arrow transformation --- src/Node/Buffer/Immutable.js | 30 ++++++++++++------------ src/Node/Buffer/Internal.js | 44 ++++++++++++++++++------------------ src/Node/Encoding.js | 2 +- 3 files changed, 38 insertions(+), 38 deletions(-) diff --git a/src/Node/Buffer/Immutable.js b/src/Node/Buffer/Immutable.js index 2a16f01..4e5b362 100644 --- a/src/Node/Buffer/Immutable.js +++ b/src/Node/Buffer/Immutable.js @@ -5,13 +5,13 @@ import { inspect } from "util"; export const showImpl = inspect; export function eqImpl(a) { - return function (b) { + return b => { return a.equals(b); }; } export function compareImpl(a) { - return function (b) { + return b => { return a.compare(b); }; } @@ -42,23 +42,23 @@ export function fromArrayBuffer(ab) { } export function fromStringImpl(str) { - return function (encoding) { + return encoding => { return Buffer.from(str, encoding); }; } export function readImpl(ty) { - return function (offset) { - return function (buf) { + return offset => { + return buf => { return buf["read" + ty](offset); }; }; } export function readStringImpl(enc) { - return function (start) { - return function (end) { - return function (buff) { + return start => { + return end => { + return buff => { return buff.toString(enc, start, end); }; }; @@ -66,9 +66,9 @@ export function readStringImpl(enc) { } export function getAtOffsetImpl(just) { - return function (nothing) { - return function (offset) { - return function (buff) { + return nothing => { + return offset => { + return buff => { var octet = buff[offset]; return octet == null ? nothing : just(octet); }; @@ -77,14 +77,14 @@ export function getAtOffsetImpl(just) { } export function toStringImpl(enc) { - return function (buff) { + return buff => { return buff.toString(enc); }; } export function slice(start) { - return function (end) { - return function (buff) { + return end => { + return buff => { return buff.slice(start, end); }; }; @@ -95,7 +95,7 @@ export function concat(buffs) { } export function concatToLength(buffs) { - return function (totalLength) { + return totalLength => { return Buffer.concat(buffs, totalLength); }; } diff --git a/src/Node/Buffer/Internal.js b/src/Node/Buffer/Internal.js index bfa9ea7..659f944 100644 --- a/src/Node/Buffer/Internal.js +++ b/src/Node/Buffer/Internal.js @@ -2,16 +2,16 @@ "use strict"; export function copyAll(a) { - return function () { + return () => { return Buffer.from(a); }; } export function writeInternal(ty) { - return function (value) { - return function (offset) { - return function (buf) { - return function () { + return value => { + return offset => { + return buf => { + return () => { buf["write" + ty](value, offset); }; }; @@ -20,11 +20,11 @@ export function writeInternal(ty) { } export function writeStringInternal(encoding) { - return function (offset) { - return function (length) { - return function (value) { - return function (buff) { - return function () { + return offset => { + return length => { + return value => { + return buff => { + return () => { return buff.write(value, offset, length, encoding); }; }; @@ -34,9 +34,9 @@ export function writeStringInternal(encoding) { } export function setAtOffset(value) { - return function (offset) { - return function (buff) { - return function () { + return offset => { + return buff => { + return () => { buff[offset] = value; }; }; @@ -44,11 +44,11 @@ export function setAtOffset(value) { } export function copy(srcStart) { - return function (srcEnd) { - return function (src) { - return function (targStart) { - return function (targ) { - return function () { + return srcEnd => { + return src => { + return targStart => { + return targ => { + return () => { return src.copy(targ, targStart, srcStart, srcEnd); }; }; @@ -58,10 +58,10 @@ export function copy(srcStart) { } export function fill(octet) { - return function (start) { - return function (end) { - return function (buf) { - return function () { + return start => { + return end => { + return buf => { + return () => { buf.fill(octet, start, end); }; }; diff --git a/src/Node/Encoding.js b/src/Node/Encoding.js index 15630f5..4bb03e6 100644 --- a/src/Node/Encoding.js +++ b/src/Node/Encoding.js @@ -2,7 +2,7 @@ "use strict"; export function byteLengthImpl(str) { - return function (enc) { + return enc => { return Buffer.byteLength(str, enc); }; } From ba0d6d5d5ee4f1f6c58c42947d88e34babdcf94f Mon Sep 17 00:00:00 2001 From: sigma-andex Date: Sat, 19 Mar 2022 19:23:55 +0000 Subject: [PATCH 3/8] 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 ab9cf1065757148f16dea3d2f2355a0fe4af7847 Mon Sep 17 00:00:00 2001 From: sigma-andex Date: Sat, 19 Mar 2022 19:23:55 +0000 Subject: [PATCH 4/8] Update Bower dependencies to master or main --- bower.json | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/bower.json b/bower.json index bfdb23b..9ae2eb8 100644 --- a/bower.json +++ b/bower.json @@ -13,15 +13,15 @@ "url": "https://github.com/purescript-node/purescript-node-buffer.git" }, "dependencies": { - "purescript-arraybuffer-types": "^3.0.0", - "purescript-effect": "^3.0.0", - "purescript-maybe": "^5.0.0", - "purescript-st": "^5.0.0", - "purescript-unsafe-coerce": "^5.0.0" + "purescript-arraybuffer-types": "main", + "purescript-effect": "master", + "purescript-maybe": "master", + "purescript-st": "master", + "purescript-unsafe-coerce": "master" }, "devDependencies": { - "purescript-assert": "^5.0.0", - "purescript-console": "^5.0.0", - "purescript-foldable-traversable": "^5.0.0" + "purescript-assert": "master", + "purescript-console": "master", + "purescript-foldable-traversable": "master" } } From 5ceaceee7f334951aabe260c4b5bfcb8adb84adf Mon Sep 17 00:00:00 2001 From: sigma-andex Date: Sat, 19 Mar 2022 19:23:56 +0000 Subject: [PATCH 5/8] 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 20b50e9..7c23052 100644 --- a/package.json +++ b/package.json @@ -8,8 +8,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 518b5e7ef7b30aa2882e868d0548296a9e9ff087 Mon Sep 17 00:00:00 2001 From: sigma-andex Date: Tue, 22 Mar 2022 14:41:41 +0000 Subject: [PATCH 6/8] Removed '"use strict";' in FFI files --- src/Node/Buffer/Immutable.js | 2 -- src/Node/Buffer/Internal.js | 2 -- src/Node/Encoding.js | 2 -- 3 files changed, 6 deletions(-) diff --git a/src/Node/Buffer/Immutable.js b/src/Node/Buffer/Immutable.js index 4e5b362..48517b7 100644 --- a/src/Node/Buffer/Immutable.js +++ b/src/Node/Buffer/Immutable.js @@ -1,6 +1,4 @@ /* global Buffer */ -"use strict"; - import { inspect } from "util"; export const showImpl = inspect; diff --git a/src/Node/Buffer/Internal.js b/src/Node/Buffer/Internal.js index 659f944..2af2886 100644 --- a/src/Node/Buffer/Internal.js +++ b/src/Node/Buffer/Internal.js @@ -1,6 +1,4 @@ /* global Buffer */ -"use strict"; - export function copyAll(a) { return () => { return Buffer.from(a); diff --git a/src/Node/Encoding.js b/src/Node/Encoding.js index 4bb03e6..608e31d 100644 --- a/src/Node/Encoding.js +++ b/src/Node/Encoding.js @@ -1,6 +1,4 @@ /* global Buffer */ -"use strict"; - export function byteLengthImpl(str) { return enc => { return Buffer.byteLength(str, enc); From 5fbc9fb645532c2396ae414323c0d1c5a690a09b Mon Sep 17 00:00:00 2001 From: sigma-andex Date: Tue, 22 Mar 2022 14:41:41 +0000 Subject: [PATCH 7/8] 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 063845e..f5a96fe 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 3e7456852090203080677d2b564759dea2b3bba4 Mon Sep 17 00:00:00 2001 From: sigma-andex Date: Tue, 22 Mar 2022 15:03:32 +0000 Subject: [PATCH 8/8] Update to node v14 --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f5a96fe..60c4fb6 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -18,7 +18,7 @@ jobs: - uses: actions/setup-node@v1 with: - node-version: "10" + node-version: "14" - name: Install dependencies run: |