@@ -0,0 +1,113 @@
1+module Playwright
2+ ( BrowserType
3+ , Browser
4+
5+ , firefox
6+ , chromium
7+ , webkit
8+
9+ , launch
10+ , LaunchOptions
11+ , headless
12+ , executablePath
13+ , args
14+ , ignoreDefaultArgs
15+ , ProxyOptions
16+ , server
17+ , bypass
18+ , username
19+ , password
20+ , proxy
21+ , downloadsPath
22+ , chromiumSandbox
23+ , firefoxUserPrefs
24+ , handleSIGINT
25+ , handleSIGTERM
26+ , handleSIGHUP
27+ , timeout
28+ , env
29+ , devtools
30+ , slowMo
31+ )
32+where
33+
34+import Prelude
35+import Effect (Effect)
36+import Control.Promise (Promise, toAffE)
37+import Data.Options (Option, Options, opt)
38+import Effect.Aff (Aff)
39+import Foreign (Foreign)
40+import Foreign.Object (Object)
41+
42+foreign import data BrowserType :: Type
43+foreign import data Browser :: Type
44+
45+foreign import firefox :: BrowserType
46+foreign import chromium :: BrowserType
47+foreign import webkit :: BrowserType
48+
49+foreign import _launch :: BrowserType -> Options LaunchOptions -> Effect (Promise Browser)
50+
51+launch :: BrowserType -> Options LaunchOptions -> Aff Browser
52+launch bt = toAffE <<< _launch bt
53+
54+foreign import data LaunchOptions :: Type
55+
56+headless :: Option LaunchOptions Boolean
57+headless = opt "headless"
58+
59+executablePath :: Option LaunchOptions String
60+executablePath = opt "executablePath"
61+
62+args :: Option LaunchOptions String
63+args = opt "args"
64+
65+ignoreDefaultArgs :: Option LaunchOptions (Array String)
66+ignoreDefaultArgs = opt "ignoreDefaultArgs"
67+
68+foreign import data ProxyOptions :: Type
69+
70+server :: Option ProxyOptions String
71+server = opt "server"
72+
73+bypass :: Option ProxyOptions String
74+bypass = opt "bypass"
75+
76+username :: Option ProxyOptions String
77+username = opt "username"
78+
79+password :: Option ProxyOptions String
80+password = opt "password"
81+
82+proxy :: Option LaunchOptions (Options ProxyOptions)
83+proxy = opt "proxy"
84+
85+downloadsPath :: Option LaunchOptions String
86+downloadsPath = opt "downloadsPath"
87+
88+chromiumSandbox :: Option LaunchOptions Boolean
89+chromiumSandbox = opt "chromiumSandbox"
90+
91+firefoxUserPrefs :: Option LaunchOptions Foreign
92+firefoxUserPrefs = opt "firefoxUserPrefs"
93+
94+handleSIGINT :: Option LaunchOptions Boolean
95+handleSIGINT = opt "handleSIGINT"
96+
97+handleSIGTERM :: Option LaunchOptions Boolean
98+handleSIGTERM = opt "handleSIGTERM"
99+
100+handleSIGHUP :: Option LaunchOptions Boolean
101+handleSIGHUP = opt "handleSIGHUP"
102+
103+timeout :: Option LaunchOptions Number
104+timeout = opt "timeout"
105+
106+env :: Option LaunchOptions (Object String)
107+env = opt "env"
108+
109+devtools :: Option LaunchOptions Boolean
110+devtools = opt "devtools"
111+
112+slowMo :: Option LaunchOptions Number
113+slowMo = opt "slowMo"