ghcjs-dom-javascript-0.10.0.0: src/GHCJS/DOM/JSFFI/Generated/Blob.hs
{-# LANGUAGE PatternSynonyms #-}
{-# LANGUAGE ForeignFunctionInterface, JavaScriptFFI #-}
{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-- | Generated by dom-gen from FileAPI (webref). Do not edit.
module GHCJS.DOM.JSFFI.Generated.Blob
(js_newBlob, js_arrayBuffer, js_bytes, js_slice, js_stream, js_text, js_getSize, js_getType, newBlob, arrayBuffer, arrayBuffer_, bytes, bytes_, slice, slice_, stream, stream_, text, text_, getSize, getType, Blob(..), gTypeBlob, IsBlob, toBlob)
where
import Prelude ((.), (==), (>>=), (<$>), (++), Bool(..), Maybe(..), IO, Int, Word, Double, Float)
import qualified Prelude as P
import Control.Monad (void)
import GHCJS.Types (JSVal, JSString)
import GHCJS.Foreign (jsUndefined, jsNull)
import GHCJS.DOM.Types
import qualified GHCJS.DOM.Types as Types
import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName, unsafeEventNameAsync)
import GHCJS.DOM.JSFFI.Generated.Enums
foreign import javascript safe "(($1, $2) => { return new globalThis[\"Blob\"]($1, $2); })"
js_newBlob :: JSVal -> JSVal -> IO Blob
-- | <https://developer.mozilla.org/docs/Web/API/Blob/Blob MDN Blob. documentation>
newBlob :: (MonadDOM m, IsBlobPart blobParts, IsBlobPropertyBag options) => Maybe [blobParts] -> Maybe options -> m Blob
newBlob blobParts options = liftDOM (((P.maybe (P.return jsUndefined) toJSVal blobParts) >>= \a1' -> (P.maybe (P.return jsUndefined) toJSVal options) >>= \a2' -> js_newBlob a1' a2'))
foreign import javascript interruptible "(($1, $c) => { return $1[\"arrayBuffer\"]().then(function(s) { $c(null, s);}, function(e) { $c(e, null);}); })"
js_arrayBuffer :: Blob -> IO (JSVal, ArrayBuffer)
-- | <https://developer.mozilla.org/docs/Web/API/Blob/arrayBuffer MDN Blob.arrayBuffer documentation>
arrayBuffer :: (MonadDOM m, IsBlob self) => self -> m ArrayBuffer
arrayBuffer self = liftDOM (((js_arrayBuffer ((Types.toBlob self))) >>= checkPromiseResult))
-- | <https://developer.mozilla.org/docs/Web/API/Blob/arrayBuffer MDN Blob.arrayBuffer documentation>
arrayBuffer_ :: (MonadDOM m, IsBlob self) => self -> m ()
arrayBuffer_ self = liftDOM (void (((js_arrayBuffer ((Types.toBlob self))) >>= checkPromiseResult)))
foreign import javascript interruptible "(($1, $c) => { return $1[\"bytes\"]().then(function(s) { $c(null, s);}, function(e) { $c(e, null);}); })"
js_bytes :: Blob -> IO (JSVal, Uint8Array)
-- | <https://developer.mozilla.org/docs/Web/API/Blob/bytes MDN Blob.bytes documentation>
bytes :: (MonadDOM m, IsBlob self) => self -> m Uint8Array
bytes self = liftDOM (((js_bytes ((Types.toBlob self))) >>= checkPromiseResult))
-- | <https://developer.mozilla.org/docs/Web/API/Blob/bytes MDN Blob.bytes documentation>
bytes_ :: (MonadDOM m, IsBlob self) => self -> m ()
bytes_ self = liftDOM (void (((js_bytes ((Types.toBlob self))) >>= checkPromiseResult)))
foreign import javascript safe "(($1, $2, $3, $4) => { return $1[\"slice\"]($2, $3, $4); })"
js_slice :: Blob -> JSVal -> JSVal -> (Optional JSString) -> IO Blob
-- | <https://developer.mozilla.org/docs/Web/API/Blob/slice MDN Blob.slice documentation>
slice :: (MonadDOM m, IsBlob self, ToJSString contentType) => self -> Maybe Int53 -> Maybe Int53 -> Maybe contentType -> m Blob
slice self start end contentType = liftDOM (((P.maybe (P.return jsUndefined) toJSVal start) >>= \a2' -> (P.maybe (P.return jsUndefined) toJSVal end) >>= \a3' -> js_slice ((Types.toBlob self)) a2' a3' (toOptionalJSString contentType)))
-- | <https://developer.mozilla.org/docs/Web/API/Blob/slice MDN Blob.slice documentation>
slice_ :: (MonadDOM m, IsBlob self, ToJSString contentType) => self -> Maybe Int53 -> Maybe Int53 -> Maybe contentType -> m ()
slice_ self start end contentType = liftDOM (void (((P.maybe (P.return jsUndefined) toJSVal start) >>= \a2' -> (P.maybe (P.return jsUndefined) toJSVal end) >>= \a3' -> js_slice ((Types.toBlob self)) a2' a3' (toOptionalJSString contentType))))
foreign import javascript safe "(($1) => { return $1[\"stream\"](); })"
js_stream :: Blob -> IO ReadableStream
-- | <https://developer.mozilla.org/docs/Web/API/Blob/stream MDN Blob.stream documentation>
stream :: (MonadDOM m, IsBlob self) => self -> m ReadableStream
stream self = liftDOM ((js_stream ((Types.toBlob self))))
-- | <https://developer.mozilla.org/docs/Web/API/Blob/stream MDN Blob.stream documentation>
stream_ :: (MonadDOM m, IsBlob self) => self -> m ()
stream_ self = liftDOM (void ((js_stream ((Types.toBlob self)))))
foreign import javascript interruptible "(($1, $c) => { return $1[\"text\"]().then(function(s) { $c(null, s);}, function(e) { $c(e, null);}); })"
js_text :: Blob -> IO (JSVal, JSString)
-- | <https://developer.mozilla.org/docs/Web/API/Blob/text MDN Blob.text documentation>
text :: (MonadDOM m, IsBlob self, FromJSString result) => self -> m result
text self = liftDOM ((fromJSString <$> ((js_text ((Types.toBlob self))) >>= checkPromiseResult)))
-- | <https://developer.mozilla.org/docs/Web/API/Blob/text MDN Blob.text documentation>
text_ :: (MonadDOM m, IsBlob self) => self -> m ()
text_ self = liftDOM (void (((js_text ((Types.toBlob self))) >>= checkPromiseResult)))
foreign import javascript unsafe "(($1) => { return $1[\"size\"]; })"
js_getSize :: Blob -> IO JSVal
-- | <https://developer.mozilla.org/docs/Web/API/Blob/size MDN Blob.size documentation>
getSize :: (MonadDOM m, IsBlob self) => self -> m Word53
getSize self = liftDOM (((js_getSize ((Types.toBlob self))) >>= fromJSValUnchecked))
foreign import javascript unsafe "(($1) => { return $1[\"type\"]; })"
js_getType :: Blob -> IO JSString
-- | <https://developer.mozilla.org/docs/Web/API/Blob/type MDN Blob.type documentation>
getType :: (MonadDOM m, IsBlob self, FromJSString result) => self -> m result
getType self = liftDOM ((fromJSString <$> (js_getType ((Types.toBlob self)))))