on develop help sign in
Split into reflex-dom-core and reflex-dom

reflex-dom-core contains all the code that does not depend on WebKitGTK

commit04a33a67202357b7867e48233ce6fa3188a40ad3 authorHamish Mackenzie <Hamish.K.Mackenzie@googlemail.com> dateSun 18 Dec 2016, 19:45 (10 years ago) parent9b63cd5
35 files changed+136−6
LICENSE → reflex-dom-core/LICENSE Setup.hs → reflex-dom-core/Setup.hs reflex-dom.cabal → reflex-dom-core/reflex-dom-core.cabal+4−3 src/Foreign/JavaScript/TH.hs → reflex-dom-core/src/Foreign/JavaScript/TH.hs src/Reflex/Dom/Builder/Class.hs → reflex-dom-core/src/Reflex/Dom/Builder/Class.hs src/Reflex/Dom/Builder/Class/Events.hs → reflex-dom-core/src/Reflex/Dom/Builder/Class/Events.hs src/Reflex/Dom/Builder/Immediate.hs → reflex-dom-core/src/Reflex/Dom/Builder/Immediate.hs src/Reflex/Dom/Builder/InputDisabled.hs → reflex-dom-core/src/Reflex/Dom/Builder/InputDisabled.hs src/Reflex/Dom/Builder/Static.hs → reflex-dom-core/src/Reflex/Dom/Builder/Static.hs src/Reflex/Dom/Class.hs → reflex-dom-core/src/Reflex/Dom/Class.hs src/Reflex/Dom.hs → reflex-dom-core/src/Reflex/Dom/Core.hs+2−2 src/Reflex/Dom/Location.hs → reflex-dom-core/src/Reflex/Dom/Location.hs src/Reflex/Dom/Internal.hs → reflex-dom-core/src/Reflex/Dom/Main.hs+1−1 src/Reflex/Dom/Old.hs → reflex-dom-core/src/Reflex/Dom/Old.hs src/Reflex/Dom/Storage.hs → reflex-dom-core/src/Reflex/Dom/Storage.hs src/Reflex/Dom/Time.hs → reflex-dom-core/src/Reflex/Dom/Time.hs src/Reflex/Dom/WebSocket.hs → reflex-dom-core/src/Reflex/Dom/WebSocket.hs src/Reflex/Dom/WebSocket/Foreign.hs → reflex-dom-core/src/Reflex/Dom/WebSocket/Foreign.hs src/Reflex/Dom/Widget.hs → reflex-dom-core/src/Reflex/Dom/Widget.hs src/Reflex/Dom/Widget/Basic.hs → reflex-dom-core/src/Reflex/Dom/Widget/Basic.hs src/Reflex/Dom/Widget/Input.hs → reflex-dom-core/src/Reflex/Dom/Widget/Input.hs src/Reflex/Dom/Widget/Lazy.hs → reflex-dom-core/src/Reflex/Dom/Widget/Lazy.hs src/Reflex/Dom/Widget/Resize.hs → reflex-dom-core/src/Reflex/Dom/Widget/Resize.hs src/Reflex/Dom/Xhr.hs → reflex-dom-core/src/Reflex/Dom/Xhr.hs src/Reflex/Dom/Xhr/Exception.hs → reflex-dom-core/src/Reflex/Dom/Xhr/Exception.hs src/Reflex/Dom/Xhr/Foreign.hs → reflex-dom-core/src/Reflex/Dom/Xhr/Foreign.hs src/Reflex/Dom/Xhr/ResponseType.hs → reflex-dom-core/src/Reflex/Dom/Xhr/ResponseType.hs test/BrokenHaltSpec.hs → reflex-dom-core/test/BrokenHaltSpec.hs test/HaltSpec.hs → reflex-dom-core/test/HaltSpec.hs test/hlint.hs → reflex-dom-core/test/hlint.hs reflex-dom/LICENSE+12 reflex-dom/Setup.hs+2 reflex-dom/reflex-dom.cabal+67 reflex-dom/src/Reflex/Dom.hs+7 reflex-dom/src/Reflex/Dom/Internal.hs+41
LICENSE → reflex-dom-core/LICENSErenamed

The content is the same.

Setup.hs → reflex-dom-core/Setup.hsrenamed

The content is the same.

reflex-dom.cabal → reflex-dom-core/reflex-dom-core.cabalrenamed+4−3
@@ -1,4 +1,4 @@
1−Name: reflex-dom
1+Name: reflex-dom-core
22Version: 0.4
33Synopsis: Functional Reactive Web Apps with Reflex
44Description: Reflex-DOM is a Functional Reactive web framework based on the Reflex FRP engine
@@ -71,15 +71,15 @@ library
7171
7272 exposed-modules:
7373 Foreign.JavaScript.TH
74− Reflex.Dom
7574 Reflex.Dom.Builder.Class
7675 Reflex.Dom.Builder.Class.Events
7776 Reflex.Dom.Builder.Immediate
7877 Reflex.Dom.Builder.InputDisabled
7978 Reflex.Dom.Builder.Static
8079 Reflex.Dom.Class
81− Reflex.Dom.Internal
80+ Reflex.Dom.Core
8281 Reflex.Dom.Location
82+ Reflex.Dom.Main
8383 Reflex.Dom.Old
8484 Reflex.Dom.Time
8585 Reflex.Dom.WebSocket
@@ -120,3 +120,4 @@ library
120120source-repository head
121121 type: git
122122 location: https://github.com/reflex-frp/reflex-dom
123+ subdir: reflex-dom-core
src/Foreign/JavaScript/TH.hs → reflex-dom-core/src/Foreign/JavaScript/TH.hsrenamed

The content is the same.

src/Reflex/Dom/Builder/Class.hs → reflex-dom-core/src/Reflex/Dom/Builder/Class.hsrenamed

The content is the same.

src/Reflex/Dom/Builder/Class/Events.hs → reflex-dom-core/src/Reflex/Dom/Builder/Class/Events.hsrenamed

The content is the same.

src/Reflex/Dom/Builder/Immediate.hs → reflex-dom-core/src/Reflex/Dom/Builder/Immediate.hsrenamed

The content is the same.

src/Reflex/Dom/Builder/InputDisabled.hs → reflex-dom-core/src/Reflex/Dom/Builder/InputDisabled.hsrenamed

The content is the same.

src/Reflex/Dom/Builder/Static.hs → reflex-dom-core/src/Reflex/Dom/Builder/Static.hsrenamed

The content is the same.

src/Reflex/Dom/Class.hs → reflex-dom-core/src/Reflex/Dom/Class.hsrenamed

The content is the same.

src/Reflex/Dom.hs → reflex-dom-core/src/Reflex/Dom/Core.hsrenamed+2−2
@@ -1,4 +1,4 @@
1−module Reflex.Dom (module X) where
1+module Reflex.Dom.Core (module X) where
22
33import Reflex as X hiding (askEvents)
44import Reflex.Dom.Builder.Class as X
@@ -6,8 +6,8 @@ import Reflex.Dom.Builder.Immediate as X
66import Reflex.Dom.Builder.InputDisabled as X
77import Reflex.Dom.Builder.Static as X
88import Reflex.Dom.Class as X
9−import Reflex.Dom.Internal as X
109import Reflex.Dom.Location as X
10+import Reflex.Dom.Main as X
1111import Reflex.Dom.Old as X
1212import Reflex.Dom.Time as X
1313import Reflex.Dom.WebSocket as X
src/Reflex/Dom/Location.hs → reflex-dom-core/src/Reflex/Dom/Location.hsrenamed

The content is the same.

src/Reflex/Dom/Internal.hs → reflex-dom-core/src/Reflex/Dom/Main.hsrenamed+1−1
@@ -13,7 +13,7 @@
1313{-# LANGUAGE TypeOperators #-}
1414{-# LANGUAGE UndecidableInstances #-}
1515{-# LANGUAGE PatternSynonyms #-}
16−module Reflex.Dom.Internal where
16+module Reflex.Dom.Main where
1717
1818import Prelude hiding (concat, mapM, mapM_, sequence, sequence_)
1919
src/Reflex/Dom/Old.hs → reflex-dom-core/src/Reflex/Dom/Old.hsrenamed

The content is the same.

src/Reflex/Dom/Storage.hs → reflex-dom-core/src/Reflex/Dom/Storage.hsrenamed

The content is the same.

src/Reflex/Dom/Time.hs → reflex-dom-core/src/Reflex/Dom/Time.hsrenamed

The content is the same.

src/Reflex/Dom/WebSocket.hs → reflex-dom-core/src/Reflex/Dom/WebSocket.hsrenamed

The content is the same.

src/Reflex/Dom/WebSocket/Foreign.hs → reflex-dom-core/src/Reflex/Dom/WebSocket/Foreign.hsrenamed

The content is the same.

src/Reflex/Dom/Widget.hs → reflex-dom-core/src/Reflex/Dom/Widget.hsrenamed

The content is the same.

src/Reflex/Dom/Widget/Basic.hs → reflex-dom-core/src/Reflex/Dom/Widget/Basic.hsrenamed

The content is the same.

src/Reflex/Dom/Widget/Input.hs → reflex-dom-core/src/Reflex/Dom/Widget/Input.hsrenamed

The content is the same.

src/Reflex/Dom/Widget/Lazy.hs → reflex-dom-core/src/Reflex/Dom/Widget/Lazy.hsrenamed

The content is the same.

src/Reflex/Dom/Widget/Resize.hs → reflex-dom-core/src/Reflex/Dom/Widget/Resize.hsrenamed

The content is the same.

src/Reflex/Dom/Xhr.hs → reflex-dom-core/src/Reflex/Dom/Xhr.hsrenamed

The content is the same.

src/Reflex/Dom/Xhr/Exception.hs → reflex-dom-core/src/Reflex/Dom/Xhr/Exception.hsrenamed

The content is the same.

src/Reflex/Dom/Xhr/Foreign.hs → reflex-dom-core/src/Reflex/Dom/Xhr/Foreign.hsrenamed

The content is the same.

src/Reflex/Dom/Xhr/ResponseType.hs → reflex-dom-core/src/Reflex/Dom/Xhr/ResponseType.hsrenamed

The content is the same.

test/BrokenHaltSpec.hs → reflex-dom-core/test/BrokenHaltSpec.hsrenamed

The content is the same.

test/HaltSpec.hs → reflex-dom-core/test/HaltSpec.hsrenamed

The content is the same.

test/hlint.hs → reflex-dom-core/test/hlint.hsrenamed

The content is the same.

reflex-dom/LICENSEnew file+12
@@ -0,0 +1,12 @@
1+Copyright (c) 2015, Obsidian Systems LLC
2+All rights reserved.
3+
4+Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
5+
6+1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
7+
8+2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
9+
10+3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
11+
12+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
reflex-dom/Setup.hsnew file+2
@@ -0,0 +1,2 @@
1+import Distribution.Simple
2+main = defaultMain
reflex-dom/reflex-dom.cabalnew file+67
@@ -0,0 +1,67 @@
1+Name: reflex-dom
2+Version: 0.4
3+Synopsis: Functional Reactive Web Apps with Reflex
4+Description: Reflex-DOM is a Functional Reactive web framework based on the Reflex FRP engine
5+License: BSD3
6+License-file: LICENSE
7+Author: Ryan Trinkle
8+Maintainer: ryan.trinkle@gmail.com
9+Stability: Experimental
10+Category: FRP, Web, GUI, HTML, Javascript, Reactive, Reactivity, User Interfaces, User-interface
11+Build-type: Simple
12+cabal-version: >=1.24
13+-- Deal with https://github.com/haskell/cabal/issues/2544 / https://github.com/haskell/cabal/issues/367
14+extra-source-files: src/Reflex/Dom/Xhr/Foreign.hs
15+ src/Reflex/Dom/WebSocket/Foreign.hs
16+ src/Reflex/Dom/Xhr/ResponseType.hs
17+ src/Reflex/Dom/Xhr/Exception.hs
18+
19+flag webkit2gtk
20+ description: Use WebKit2 version of WebKitGTK.
21+ default: True
22+
23+library
24+ hs-source-dirs: src
25+ build-depends:
26+ base >= 4.7 && < 4.10,
27+ bytestring == 0.10.*,
28+ reflex == 0.5.*,
29+ reflex-dom-core >=0.4 && <0.5,
30+ text == 1.2.*
31+ if flag(webkit2gtk)
32+ build-depends:
33+ jsaddle-webkit2gtk
34+ else
35+ build-depends:
36+ jsaddle-webkitgtk
37+
38+ exposed-modules:
39+ Reflex.Dom
40+ Reflex.Dom.Internal
41+ reexported-modules:
42+ Foreign.JavaScript.TH
43+ , Reflex.Dom.Builder.Class
44+ , Reflex.Dom.Builder.Class.Events
45+ , Reflex.Dom.Builder.Immediate
46+ , Reflex.Dom.Builder.InputDisabled
47+ , Reflex.Dom.Builder.Static
48+ , Reflex.Dom.Class
49+ , Reflex.Dom.Core
50+ , Reflex.Dom.Location
51+ , Reflex.Dom.Main
52+ , Reflex.Dom.Old
53+ , Reflex.Dom.Time
54+ , Reflex.Dom.WebSocket
55+ , Reflex.Dom.Widget
56+ , Reflex.Dom.Widget.Basic
57+ , Reflex.Dom.Widget.Input
58+ , Reflex.Dom.Widget.Lazy
59+ , Reflex.Dom.Widget.Resize
60+ , Reflex.Dom.Xhr
61+
62+ ghc-options: -Wall -fwarn-tabs -funbox-strict-fields -O2 -ferror-spans
63+
64+source-repository head
65+ type: git
66+ location: https://github.com/reflex-frp/reflex-dom
67+ subdir: reflex-dom
reflex-dom/src/Reflex/Dom.hsnew file+7
@@ -0,0 +1,7 @@
1+module Reflex.Dom (module X) where
2+
3+import Reflex.Dom.Core as X hiding
4+ (mainWidget, mainWidgetWithHead, mainWidgetWithCss,
5+ mainWidgetWithHead', mainWidgetInElementById, runApp')
6+import Reflex.Dom.Internal as X
7+
reflex-dom/src/Reflex/Dom/Internal.hsnew file+41
@@ -0,0 +1,41 @@
1+{-# LANGUAGE RankNTypes #-}
2+{-# LANGUAGE TypeFamilies #-}
3+module Reflex.Dom.Internal
4+ (module Main, mainWidget, mainWidgetWithHead, mainWidgetWithCss,
5+ mainWidgetWithHead', mainWidgetInElementById, runApp') where
6+
7+import Data.ByteString (ByteString)
8+import Data.Text (Text)
9+import Reflex.Spider (Spider)
10+import Reflex.Dom.Core (Widget)
11+import Reflex.Dom.Main as Main hiding
12+ (mainWidget, mainWidgetWithHead, mainWidgetWithCss,
13+ mainWidgetWithHead', mainWidgetInElementById, runApp')
14+import qualified Reflex.Dom.Main as Main
15+ (mainWidget, mainWidgetWithHead, mainWidgetWithCss,
16+ mainWidgetWithHead', mainWidgetInElementById, runApp')
17+import Language.Javascript.JSaddle.WebKitGTK (run)
18+
19+mainWidget :: (forall x. Widget x ()) -> IO ()
20+mainWidget w = run $ Main.mainWidget w
21+{-# INLINE mainWidget #-}
22+
23+mainWidgetWithHead :: (forall x. Widget x ()) -> (forall x. Widget x ()) -> IO ()
24+mainWidgetWithHead h b = run $ Main.mainWidgetWithHead h b
25+{-# INLINE mainWidgetWithHead #-}
26+
27+mainWidgetWithCss :: ByteString -> (forall x. Widget x ()) -> IO ()
28+mainWidgetWithCss css w = run $ Main.mainWidgetWithCss css w
29+{-# INLINE mainWidgetWithCss #-}
30+
31+mainWidgetWithHead' :: (forall x. (a -> Widget x b, b -> Widget x a)) -> IO ()
32+mainWidgetWithHead' w = run $ Main.mainWidgetWithHead' w
33+{-# INLINE mainWidgetWithHead' #-}
34+
35+mainWidgetInElementById :: Text -> (forall x. Widget x ()) -> IO ()
36+mainWidgetInElementById eid w = run $ Main.mainWidgetInElementById eid w
37+{-# INLINE mainWidgetInElementById #-}
38+
39+runApp' :: (t ~ Spider) => (forall x. AppInput t -> Widget x (AppOutput t)) -> IO ()
40+runApp' app = run $ Main.runApp' app
41+{-# INLINE runApp' #-}