{-# LANGUAGE PatternSynonyms #-}
-- For HasCallStack compatibility
{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
module JSDOM.Generated.FileReaderSync
       (newFileReaderSync, readAsArrayBuffer, readAsArrayBuffer_,
        readAsBinaryString, readAsBinaryString_, readAsText, readAsText_,
        readAsDataURL, readAsDataURL_, FileReaderSync(..),
        gTypeFileReaderSync)
       where
import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, realToFrac, fmap, Show, Read, Eq, Ord, Maybe(..))
import qualified Prelude (error)
import Data.Typeable (Typeable)
import Data.Traversable (mapM)
import Language.Javascript.JSaddle (JSM(..), JSVal(..), JSString, strictEqual, toJSVal, valToStr, valToNumber, valToBool, js, jss, jsf, jsg, function, asyncFunction, new, array, jsUndefined, (!), (!!))
import Data.Int (Int64)
import Data.Word (Word, Word64)
import JSDOM.Types
import Control.Applicative ((<$>))
import Control.Monad (void)
import Control.Lens.Operators ((^.))
import JSDOM.EventTargetClosures (EventName, unsafeEventName, unsafeEventNameAsync)
import JSDOM.Enums

-- | <https://developer.mozilla.org/en-US/docs/Web/API/FileReaderSync Mozilla FileReaderSync documentation> 
newFileReaderSync :: (MonadDOM m) => m FileReaderSync
newFileReaderSync :: m FileReaderSync
newFileReaderSync
  = DOM FileReaderSync -> m FileReaderSync
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (JSVal -> FileReaderSync
FileReaderSync (JSVal -> FileReaderSync) -> JSM JSVal -> DOM FileReaderSync
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> JSM JSVal -> () -> JSM JSVal
forall constructor args.
(MakeObject constructor, MakeArgs args) =>
constructor -> args -> JSM JSVal
new ([Char] -> JSM JSVal
forall a. ToJSString a => a -> JSM JSVal
jsg [Char]
"FileReaderSync") ())

-- | <https://developer.mozilla.org/en-US/docs/Web/API/FileReaderSync.readAsArrayBuffer Mozilla FileReaderSync.readAsArrayBuffer documentation> 
readAsArrayBuffer ::
                  (MonadDOM m, IsBlob blob) =>
                    FileReaderSync -> blob -> m ArrayBuffer
readAsArrayBuffer :: FileReaderSync -> blob -> m ArrayBuffer
readAsArrayBuffer FileReaderSync
self blob
blob
  = DOM ArrayBuffer -> m ArrayBuffer
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      ((FileReaderSync
self FileReaderSync
-> Getting (JSM JSVal) FileReaderSync (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf [Char]
"readAsArrayBuffer" [blob -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal blob
blob]) JSM JSVal -> (JSVal -> DOM ArrayBuffer) -> DOM ArrayBuffer
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>=
         JSVal -> DOM ArrayBuffer
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/FileReaderSync.readAsArrayBuffer Mozilla FileReaderSync.readAsArrayBuffer documentation> 
readAsArrayBuffer_ ::
                   (MonadDOM m, IsBlob blob) => FileReaderSync -> blob -> m ()
readAsArrayBuffer_ :: FileReaderSync -> blob -> m ()
readAsArrayBuffer_ FileReaderSync
self blob
blob
  = DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void (FileReaderSync
self FileReaderSync
-> Getting (JSM JSVal) FileReaderSync (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf [Char]
"readAsArrayBuffer" [blob -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal blob
blob]))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/FileReaderSync.readAsBinaryString Mozilla FileReaderSync.readAsBinaryString documentation> 
readAsBinaryString ::
                   (MonadDOM m, IsBlob blob, FromJSString result) =>
                     FileReaderSync -> blob -> m result
readAsBinaryString :: FileReaderSync -> blob -> m result
readAsBinaryString FileReaderSync
self blob
blob
  = DOM result -> m result
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      ((FileReaderSync
self FileReaderSync
-> Getting (JSM JSVal) FileReaderSync (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf [Char]
"readAsBinaryString" [blob -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal blob
blob]) JSM JSVal -> (JSVal -> DOM result) -> DOM result
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>=
         JSVal -> DOM result
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/FileReaderSync.readAsBinaryString Mozilla FileReaderSync.readAsBinaryString documentation> 
readAsBinaryString_ ::
                    (MonadDOM m, IsBlob blob) => FileReaderSync -> blob -> m ()
readAsBinaryString_ :: FileReaderSync -> blob -> m ()
readAsBinaryString_ FileReaderSync
self blob
blob
  = DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void (FileReaderSync
self FileReaderSync
-> Getting (JSM JSVal) FileReaderSync (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf [Char]
"readAsBinaryString" [blob -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal blob
blob]))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/FileReaderSync.readAsText Mozilla FileReaderSync.readAsText documentation> 
readAsText ::
           (MonadDOM m, IsBlob blob, ToJSString encoding,
            FromJSString result) =>
             FileReaderSync -> blob -> Maybe encoding -> m result
readAsText :: FileReaderSync -> blob -> Maybe encoding -> m result
readAsText FileReaderSync
self blob
blob Maybe encoding
encoding
  = DOM result -> m result
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      ((FileReaderSync
self FileReaderSync
-> Getting (JSM JSVal) FileReaderSync (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf [Char]
"readAsText" [blob -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal blob
blob, Maybe encoding -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Maybe encoding
encoding]) JSM JSVal -> (JSVal -> DOM result) -> DOM result
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>=
         JSVal -> DOM result
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/FileReaderSync.readAsText Mozilla FileReaderSync.readAsText documentation> 
readAsText_ ::
            (MonadDOM m, IsBlob blob, ToJSString encoding) =>
              FileReaderSync -> blob -> Maybe encoding -> m ()
readAsText_ :: FileReaderSync -> blob -> Maybe encoding -> m ()
readAsText_ FileReaderSync
self blob
blob Maybe encoding
encoding
  = DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void (FileReaderSync
self FileReaderSync
-> Getting (JSM JSVal) FileReaderSync (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf [Char]
"readAsText" [blob -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal blob
blob, Maybe encoding -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Maybe encoding
encoding]))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/FileReaderSync.readAsDataURL Mozilla FileReaderSync.readAsDataURL documentation> 
readAsDataURL ::
              (MonadDOM m, IsBlob blob, FromJSString result) =>
                FileReaderSync -> blob -> m result
readAsDataURL :: FileReaderSync -> blob -> m result
readAsDataURL FileReaderSync
self blob
blob
  = DOM result -> m result
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      ((FileReaderSync
self FileReaderSync
-> Getting (JSM JSVal) FileReaderSync (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf [Char]
"readAsDataURL" [blob -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal blob
blob]) JSM JSVal -> (JSVal -> DOM result) -> DOM result
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>=
         JSVal -> DOM result
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/FileReaderSync.readAsDataURL Mozilla FileReaderSync.readAsDataURL documentation> 
readAsDataURL_ ::
               (MonadDOM m, IsBlob blob) => FileReaderSync -> blob -> m ()
readAsDataURL_ :: FileReaderSync -> blob -> m ()
readAsDataURL_ FileReaderSync
self blob
blob
  = DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void (FileReaderSync
self FileReaderSync
-> Getting (JSM JSVal) FileReaderSync (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf [Char]
"readAsDataURL" [blob -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal blob
blob]))