From 8852bd5ccb48fccde5bc4de36687795fea8204f1 Mon Sep 17 00:00:00 2001 From: Matthew Leon Date: Mon, 6 Nov 2017 22:26:50 -0500 Subject: [PATCH] toArrayBuffer. resolves #22 --- bower.json | 3 ++- src/Node/Buffer.js | 6 ++++++ src/Node/Buffer.purs | 5 +++++ 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/bower.json b/bower.json index 60c7536..5cb051e 100644 --- a/bower.json +++ b/bower.json @@ -14,7 +14,8 @@ }, "dependencies": { "purescript-eff": "^3.0.0", - "purescript-maybe": "^3.0.0" + "purescript-maybe": "^3.0.0", + "purescript-arraybuffer-types": "^2.0.0" }, "devDependencies": { "purescript-assert": "^3.0.0", diff --git a/src/Node/Buffer.js b/src/Node/Buffer.js index b8b5a45..52a3126 100644 --- a/src/Node/Buffer.js +++ b/src/Node/Buffer.js @@ -25,6 +25,12 @@ exports.fromStringImpl = function (str) { }; }; +exports.toArrayBuffer = function(buff) { + return function() { + return buff.buffer.slice(buff.byteOffset, buff.byteOffset + buff.byteLength); + }; +}; + exports.readImpl = function (ty) { return function (offset) { return function (buf) { diff --git a/src/Node/Buffer.purs b/src/Node/Buffer.purs index 0a5f7dd..7709e16 100644 --- a/src/Node/Buffer.purs +++ b/src/Node/Buffer.purs @@ -7,6 +7,7 @@ module Node.Buffer , create , fromArray , fromString + , toArrayBuffer , read , readString , toString @@ -23,7 +24,9 @@ module Node.Buffer ) where import Prelude + import Control.Monad.Eff (Eff, kind Effect) +import Data.ArrayBuffer.Types (ArrayBuffer) import Data.Maybe (Maybe(..)) import Node.Encoding (Encoding, encodingToNode) @@ -91,6 +94,8 @@ fromString str = fromStringImpl str <<< encodingToNode foreign import fromStringImpl :: forall e. String -> String -> Eff (buffer :: BUFFER | e) Buffer +foreign import toArrayBuffer :: forall e. Buffer -> Eff (buffer :: BUFFER | e) ArrayBuffer + -- | Reads a numeric value from a buffer at the specified offset. read :: forall e. BufferValueType -> Offset -> Buffer -> Eff (buffer :: BUFFER | e) Int read = readImpl <<< show