From a716d6824191e24af04ba330f99ca095b4dcc446 Mon Sep 17 00:00:00 2001 From: Jordan Martinez Date: Wed, 5 Jul 2023 10:59:08 -0500 Subject: [PATCH 1/3] Add Base64Url encoding --- CHANGELOG.md | 2 +- src/Node/Encoding.purs | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1137cba..f633471 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -56,7 +56,7 @@ New features: - `INSPECT_MAX_BYTES`: https://nodejs.org/docs/latest-v18.x/api/buffer.html#bufferinspect_max_bytes - `MAX_LENGTH`: https://nodejs.org/docs/latest-v18.x/api/buffer.html#bufferconstantsmax_length - `MAX_STRING_LENGTH`: https://nodejs.org/docs/latest-v18.x/api/buffer.html#bufferconstantsmax_string_length - +- Added a new data constructor for `Encoding`: `Base64Url` (#56 by @JordanMartinez) Bugfixes: diff --git a/src/Node/Encoding.purs b/src/Node/Encoding.purs index 97ec62e..2104d11 100644 --- a/src/Node/Encoding.purs +++ b/src/Node/Encoding.purs @@ -14,6 +14,7 @@ data Encoding | UTF16LE | UCS2 | Base64 + | Base64Url | Latin1 | Binary | Hex @@ -24,6 +25,7 @@ instance showEncoding :: Show Encoding where show UTF16LE = "UTF16LE" show UCS2 = "UCS2" show Base64 = "Base64" + show Base64Url = "Base64Url" show Latin1 = "Latin1" show Binary = "Binary" show Hex = "Hex" @@ -36,6 +38,7 @@ encodingToNode UTF8 = "utf8" encodingToNode UTF16LE = "utf16le" encodingToNode UCS2 = "ucs2" encodingToNode Base64 = "base64" +encodingToNode Base64Url = "base64url" encodingToNode Latin1 = "latin1" encodingToNode Binary = "binary" encodingToNode Hex = "hex" From e8fe84c06a0fd0ad3de58c4f44befd2afef1758c Mon Sep 17 00:00:00 2001 From: Jordan Martinez Date: Wed, 5 Jul 2023 11:00:58 -0500 Subject: [PATCH 2/3] Drop aliased encodings --- CHANGELOG.md | 7 ++++++- src/Node/Encoding.purs | 6 ------ 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f633471..0c5c005 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -56,7 +56,12 @@ New features: - `INSPECT_MAX_BYTES`: https://nodejs.org/docs/latest-v18.x/api/buffer.html#bufferinspect_max_bytes - `MAX_LENGTH`: https://nodejs.org/docs/latest-v18.x/api/buffer.html#bufferconstantsmax_length - `MAX_STRING_LENGTH`: https://nodejs.org/docs/latest-v18.x/api/buffer.html#bufferconstantsmax_string_length -- Added a new data constructor for `Encoding`: `Base64Url` (#56 by @JordanMartinez) +- `Encoding`: Added/Removed data constructors (#56 by @JordanMartinez) + + - Added: `Base64Url` + - Removed aliases: + - `Binary` - use `Latin1` instead + - `UCS2` - use `UTF16LE` instead Bugfixes: diff --git a/src/Node/Encoding.purs b/src/Node/Encoding.purs index 2104d11..8437ad7 100644 --- a/src/Node/Encoding.purs +++ b/src/Node/Encoding.purs @@ -12,22 +12,18 @@ data Encoding = ASCII | UTF8 | UTF16LE - | UCS2 | Base64 | Base64Url | Latin1 - | Binary | Hex instance showEncoding :: Show Encoding where show ASCII = "ASCII" show UTF8 = "UTF8" show UTF16LE = "UTF16LE" - show UCS2 = "UCS2" show Base64 = "Base64" show Base64Url = "Base64Url" show Latin1 = "Latin1" - show Binary = "Binary" show Hex = "Hex" -- | Convert an `Encoding` to a `String` in the format expected by Node.js @@ -36,11 +32,9 @@ encodingToNode :: Encoding -> String encodingToNode ASCII = "ascii" encodingToNode UTF8 = "utf8" encodingToNode UTF16LE = "utf16le" -encodingToNode UCS2 = "ucs2" encodingToNode Base64 = "base64" encodingToNode Base64Url = "base64url" encodingToNode Latin1 = "latin1" -encodingToNode Binary = "binary" encodingToNode Hex = "hex" foreign import byteLengthImpl :: Fn2 String String Int From bb0870df0aa1a3206435d32ebca65c49d70683a2 Mon Sep 17 00:00:00 2001 From: Jordan Martinez Date: Wed, 5 Jul 2023 13:32:51 -0500 Subject: [PATCH 3/3] Revert "Drop aliased encodings" This reverts commit e8fe84c06a0fd0ad3de58c4f44befd2afef1758c. --- CHANGELOG.md | 7 +------ src/Node/Encoding.purs | 6 ++++++ 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0c5c005..f633471 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -56,12 +56,7 @@ New features: - `INSPECT_MAX_BYTES`: https://nodejs.org/docs/latest-v18.x/api/buffer.html#bufferinspect_max_bytes - `MAX_LENGTH`: https://nodejs.org/docs/latest-v18.x/api/buffer.html#bufferconstantsmax_length - `MAX_STRING_LENGTH`: https://nodejs.org/docs/latest-v18.x/api/buffer.html#bufferconstantsmax_string_length -- `Encoding`: Added/Removed data constructors (#56 by @JordanMartinez) - - - Added: `Base64Url` - - Removed aliases: - - `Binary` - use `Latin1` instead - - `UCS2` - use `UTF16LE` instead +- Added a new data constructor for `Encoding`: `Base64Url` (#56 by @JordanMartinez) Bugfixes: diff --git a/src/Node/Encoding.purs b/src/Node/Encoding.purs index 8437ad7..2104d11 100644 --- a/src/Node/Encoding.purs +++ b/src/Node/Encoding.purs @@ -12,18 +12,22 @@ data Encoding = ASCII | UTF8 | UTF16LE + | UCS2 | Base64 | Base64Url | Latin1 + | Binary | Hex instance showEncoding :: Show Encoding where show ASCII = "ASCII" show UTF8 = "UTF8" show UTF16LE = "UTF16LE" + show UCS2 = "UCS2" show Base64 = "Base64" show Base64Url = "Base64Url" show Latin1 = "Latin1" + show Binary = "Binary" show Hex = "Hex" -- | Convert an `Encoding` to a `String` in the format expected by Node.js @@ -32,9 +36,11 @@ encodingToNode :: Encoding -> String encodingToNode ASCII = "ascii" encodingToNode UTF8 = "utf8" encodingToNode UTF16LE = "utf16le" +encodingToNode UCS2 = "ucs2" encodingToNode Base64 = "base64" encodingToNode Base64Url = "base64url" encodingToNode Latin1 = "latin1" +encodingToNode Binary = "binary" encodingToNode Hex = "hex" foreign import byteLengthImpl :: Fn2 String String Int