{-# LANGUAGE PatternSynonyms #-}
{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
module JSDOM.Generated.FileReader
(newFileReader, readAsArrayBuffer, readAsBinaryString, readAsText,
readAsDataURL, abort, pattern EMPTY, pattern LOADING, pattern DONE,
getReadyState, getResult, getResultUnsafe, getResultUnchecked,
getError, loadStart, progress, load, abortEvent, error, loadEnd,
FileReader(..), gTypeFileReader)
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
newFileReader :: (MonadDOM m) => m FileReader
newFileReader :: forall (m :: * -> *). MonadDOM m => m FileReader
newFileReader = DOM FileReader -> m FileReader
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (JSVal -> FileReader
FileReader (JSVal -> FileReader) -> JSM JSVal -> DOM FileReader
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 (String -> JSM JSVal
forall a. ToJSString a => a -> JSM JSVal
jsg String
"FileReader") ())
readAsArrayBuffer ::
(MonadDOM m, IsBlob blob) => FileReader -> Maybe blob -> m ()
readAsArrayBuffer :: forall (m :: * -> *) blob.
(MonadDOM m, IsBlob blob) =>
FileReader -> Maybe blob -> m ()
readAsArrayBuffer FileReader
self Maybe 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 (FileReader
self FileReader
-> Getting (JSM JSVal) FileReader (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf String
"readAsArrayBuffer" [Maybe blob -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Maybe blob
blob]))
readAsBinaryString ::
(MonadDOM m, IsBlob blob) => FileReader -> Maybe blob -> m ()
readAsBinaryString :: forall (m :: * -> *) blob.
(MonadDOM m, IsBlob blob) =>
FileReader -> Maybe blob -> m ()
readAsBinaryString FileReader
self Maybe 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 (FileReader
self FileReader
-> Getting (JSM JSVal) FileReader (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf String
"readAsBinaryString" [Maybe blob -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Maybe blob
blob]))
readAsText ::
(MonadDOM m, IsBlob blob, ToJSString encoding) =>
FileReader -> Maybe blob -> Maybe encoding -> m ()
readAsText :: forall (m :: * -> *) blob encoding.
(MonadDOM m, IsBlob blob, ToJSString encoding) =>
FileReader -> Maybe blob -> Maybe encoding -> m ()
readAsText FileReader
self Maybe 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 (FileReader
self FileReader
-> Getting (JSM JSVal) FileReader (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf String
"readAsText" [Maybe blob -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Maybe blob
blob, Maybe encoding -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Maybe encoding
encoding]))
readAsDataURL ::
(MonadDOM m, IsBlob blob) => FileReader -> Maybe blob -> m ()
readAsDataURL :: forall (m :: * -> *) blob.
(MonadDOM m, IsBlob blob) =>
FileReader -> Maybe blob -> m ()
readAsDataURL FileReader
self Maybe 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 (FileReader
self FileReader
-> Getting (JSM JSVal) FileReader (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf String
"readAsDataURL" [Maybe blob -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Maybe blob
blob]))
abort :: (MonadDOM m) => FileReader -> m ()
abort :: forall (m :: * -> *). MonadDOM m => FileReader -> m ()
abort FileReader
self = DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void (FileReader
self FileReader
-> Getting (JSM JSVal) FileReader (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> () -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf String
"abort" ()))
pattern $mEMPTY :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bEMPTY :: forall {a}. (Eq a, Num a) => a
EMPTY = 0
pattern $mLOADING :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bLOADING :: forall {a}. (Eq a, Num a) => a
LOADING = 1
pattern $mDONE :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bDONE :: forall {a}. (Eq a, Num a) => a
DONE = 2
getReadyState :: (MonadDOM m) => FileReader -> m Word
getReadyState :: forall (m :: * -> *). MonadDOM m => FileReader -> m Word
getReadyState FileReader
self
= DOM Word -> m Word
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (Double -> Word
forall b. Integral b => Double -> b
forall a b. (RealFrac a, Integral b) => a -> b
round (Double -> Word) -> JSM Double -> DOM Word
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> ((FileReader
self FileReader
-> Getting (JSM JSVal) FileReader (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> IndexPreservingGetter FileReader (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js String
"readyState") JSM JSVal -> (JSVal -> JSM Double) -> JSM Double
forall a b. JSM a -> (a -> JSM b) -> JSM b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> JSM Double
forall value. ToJSVal value => value -> JSM Double
valToNumber))
getResult ::
(MonadDOM m) => FileReader -> m (Maybe StringOrArrayBuffer)
getResult :: forall (m :: * -> *).
MonadDOM m =>
FileReader -> m (Maybe StringOrArrayBuffer)
getResult FileReader
self = DOM (Maybe StringOrArrayBuffer) -> m (Maybe StringOrArrayBuffer)
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM ((FileReader
self FileReader
-> Getting (JSM JSVal) FileReader (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> IndexPreservingGetter FileReader (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js String
"result") JSM JSVal
-> (JSVal -> DOM (Maybe StringOrArrayBuffer))
-> DOM (Maybe StringOrArrayBuffer)
forall a b. JSM a -> (a -> JSM b) -> JSM b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM (Maybe StringOrArrayBuffer)
forall a. FromJSVal a => JSVal -> JSM (Maybe a)
fromJSVal)
getResultUnsafe ::
(MonadDOM m, HasCallStack) => FileReader -> m StringOrArrayBuffer
getResultUnsafe :: forall (m :: * -> *).
(MonadDOM m, HasCallStack) =>
FileReader -> m StringOrArrayBuffer
getResultUnsafe FileReader
self
= DOM StringOrArrayBuffer -> m StringOrArrayBuffer
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
(((FileReader
self FileReader
-> Getting (JSM JSVal) FileReader (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> IndexPreservingGetter FileReader (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js String
"result") JSM JSVal
-> (JSVal -> DOM (Maybe StringOrArrayBuffer))
-> DOM (Maybe StringOrArrayBuffer)
forall a b. JSM a -> (a -> JSM b) -> JSM b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM (Maybe StringOrArrayBuffer)
forall a. FromJSVal a => JSVal -> JSM (Maybe a)
fromJSVal) DOM (Maybe StringOrArrayBuffer)
-> (Maybe StringOrArrayBuffer -> DOM StringOrArrayBuffer)
-> DOM StringOrArrayBuffer
forall a b. JSM a -> (a -> JSM b) -> JSM b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>=
DOM StringOrArrayBuffer
-> (StringOrArrayBuffer -> DOM StringOrArrayBuffer)
-> Maybe StringOrArrayBuffer
-> DOM StringOrArrayBuffer
forall b a. b -> (a -> b) -> Maybe a -> b
maybe (String -> DOM StringOrArrayBuffer
forall a. HasCallStack => String -> a
Prelude.error String
"Nothing to return") StringOrArrayBuffer -> DOM StringOrArrayBuffer
forall a. a -> JSM a
forall (m :: * -> *) a. Monad m => a -> m a
return)
getResultUnchecked ::
(MonadDOM m) => FileReader -> m StringOrArrayBuffer
getResultUnchecked :: forall (m :: * -> *).
MonadDOM m =>
FileReader -> m StringOrArrayBuffer
getResultUnchecked FileReader
self
= DOM StringOrArrayBuffer -> m StringOrArrayBuffer
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM ((FileReader
self FileReader
-> Getting (JSM JSVal) FileReader (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> IndexPreservingGetter FileReader (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js String
"result") JSM JSVal
-> (JSVal -> DOM StringOrArrayBuffer) -> DOM StringOrArrayBuffer
forall a b. JSM a -> (a -> JSM b) -> JSM b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM StringOrArrayBuffer
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)
getError :: (MonadDOM m) => FileReader -> m FileError
getError :: forall (m :: * -> *). MonadDOM m => FileReader -> m FileError
getError FileReader
self
= DOM FileError -> m FileError
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM ((FileReader
self FileReader
-> Getting (JSM JSVal) FileReader (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> IndexPreservingGetter FileReader (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js String
"error") JSM JSVal -> (JSVal -> DOM FileError) -> DOM FileError
forall a b. JSM a -> (a -> JSM b) -> JSM b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM FileError
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)
loadStart :: EventName FileReader ProgressEvent
loadStart :: EventName FileReader ProgressEvent
loadStart = DOMString -> EventName FileReader ProgressEvent
forall t e. DOMString -> EventName t e
unsafeEventNameAsync (String -> DOMString
forall a. ToJSString a => a -> DOMString
toJSString String
"loadstart")
progress :: EventName FileReader ProgressEvent
progress :: EventName FileReader ProgressEvent
progress = DOMString -> EventName FileReader ProgressEvent
forall t e. DOMString -> EventName t e
unsafeEventNameAsync (String -> DOMString
forall a. ToJSString a => a -> DOMString
toJSString String
"progress")
load :: EventName FileReader UIEvent
load :: EventName FileReader UIEvent
load = DOMString -> EventName FileReader UIEvent
forall t e. DOMString -> EventName t e
unsafeEventNameAsync (String -> DOMString
forall a. ToJSString a => a -> DOMString
toJSString String
"load")
abortEvent :: EventName FileReader UIEvent
abortEvent :: EventName FileReader UIEvent
abortEvent = DOMString -> EventName FileReader UIEvent
forall t e. DOMString -> EventName t e
unsafeEventNameAsync (String -> DOMString
forall a. ToJSString a => a -> DOMString
toJSString String
"abort")
error :: EventName FileReader UIEvent
error :: EventName FileReader UIEvent
error = DOMString -> EventName FileReader UIEvent
forall t e. DOMString -> EventName t e
unsafeEventNameAsync (String -> DOMString
forall a. ToJSString a => a -> DOMString
toJSString String
"error")
loadEnd :: EventName FileReader ProgressEvent
loadEnd :: EventName FileReader ProgressEvent
loadEnd = DOMString -> EventName FileReader ProgressEvent
forall t e. DOMString -> EventName t e
unsafeEventNameAsync (String -> DOMString
forall a. ToJSString a => a -> DOMString
toJSString String
"loadend")