From e981fb0475be02cadf27f52ba2c498ac536deeb1 Mon Sep 17 00:00:00 2001 From: Matthew Leon Date: Thu, 7 Dec 2017 22:22:19 -0500 Subject: [PATCH] Buffer.fromArrayBuffer No tests, as there is no standard module for ArrayBuffer operations. --- src/Node/Buffer.js | 6 ++++++ src/Node/Buffer.purs | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/src/Node/Buffer.js b/src/Node/Buffer.js index 52a3126..5da0967 100644 --- a/src/Node/Buffer.js +++ b/src/Node/Buffer.js @@ -25,6 +25,12 @@ exports.fromStringImpl = function (str) { }; }; +exports.fromArrayBuffer = function(ab) { + return function() { + return Buffer.from(ab); + }; +}; + exports.toArrayBuffer = function(buff) { return function() { return buff.buffer.slice(buff.byteOffset, buff.byteOffset + buff.byteLength); diff --git a/src/Node/Buffer.purs b/src/Node/Buffer.purs index 7709e16..b6631dc 100644 --- a/src/Node/Buffer.purs +++ b/src/Node/Buffer.purs @@ -7,6 +7,7 @@ module Node.Buffer , create , fromArray , fromString + , fromArrayBuffer , toArrayBuffer , read , readString @@ -87,6 +88,11 @@ foreign import create :: forall e. Int -> Eff (buffer :: BUFFER | e) Buffer -- | Creates a new buffer from an array of octets, sized to match the array. foreign import fromArray :: forall e. Array Octet -> Eff (buffer :: BUFFER | e) Buffer +-- | Creates a buffer view from a JS ArrayByffer without copying data. +-- +-- Requires Node >= v5.10.0 +foreign import fromArrayBuffer :: forall e. ArrayBuffer -> Eff (buffer :: BUFFER | e) Buffer + -- | Creates a new buffer from a string with the specified encoding, sized to -- | match the string. fromString :: forall e. String -> Encoding -> Eff (buffer :: BUFFER | e) Buffer