git.iko.soy/rowtype-yoga/purescript-playwright
on main help sign in
Add `launch`.
commite2de1671d1200258efbb34d3f98a2d39f72dec57 authorVladimir Kalnitsky <klntsky@gmail.com> dateTue 25 Aug 2020, 23:00 (6 years ago) parentedeed4c
7 files changed+199
bower.json+17 package.json+32 packages.dhall+8 spago.dhall+6 src/Playwright.js+14 src/Playwright.purs+113 test/Main.purs+9
bower.jsonnew file+17
@@ -0,0 +1,17 @@
1+{
2+ "name": "purescript-playwright",
3+ "ignore": [
4+ "**/.*",
5+ "node_modules",
6+ "bower_components",
7+ "output"
8+ ],
9+ "dependencies": {
10+ "purescript-prelude": "^4.1.1",
11+ "purescript-console": "^4.4.0",
12+ "purescript-effect": "^2.0.1"
13+ },
14+ "devDependencies": {
15+ "purescript-psci-support": "^4.0.0"
16+ }
17+}
package.jsonnew file+32
@@ -0,0 +1,32 @@
1+{
2+ "name": "purescript-playwright",
3+ "version": "0.0.1",
4+ "description": "PureScript bindings for Playwright",
5+ "main": "index.js",
6+ "directories": {
7+ "test": "test"
8+ },
9+ "dependencies": {
10+ "bower": "^1.8.8",
11+ "playwright": "^1.3.0",
12+ "pulp": "^15.0.0"
13+ },
14+ "devDependencies": {},
15+ "scripts": {
16+ "test": "pulp test"
17+ },
18+ "repository": {
19+ "type": "git",
20+ "url": "git+https://github.com/klntsky/purescript-playwright.git"
21+ },
22+ "keywords": [
23+ "purescript",
24+ "playwright"
25+ ],
26+ "author": "Vladimir Kalnitsky <klntsky@gmail.com>",
27+ "license": "BSD-3-Clause",
28+ "bugs": {
29+ "url": "https://github.com/klntsky/purescript-playwright/issues"
30+ },
31+ "homepage": "https://github.com/klntsky/purescript-playwright#readme"
32+}
packages.dhallnew file+8
@@ -0,0 +1,8 @@
1+let upstream =
2+ https://github.com/purescript/package-sets/releases/download/psc-0.13.8-20200822/packages.dhall sha256:b4f151f1af4c5cb6bf5437489f4231fbdd92792deaf32971e6bcb0047b3dd1f8
3+
4+let overrides = {=}
5+
6+let additions = {=}
7+
8+in upstream ⫽ overrides ⫽ additions
spago.dhallnew file+6
@@ -0,0 +1,6 @@
1+{ name = "playwright"
2+, dependencies =
3+ [ "console", "effect", "prelude", "psci-support", "aff-promise", "options" ]
4+, packages = ./packages.dhall
5+, sources = [ "src/**/*.purs", "test/**/*.purs" ]
6+}
src/Playwright.jsnew file+14
@@ -0,0 +1,14 @@
1+/* global require exports */
2+
3+var P = require('playwright');
4+
5+exports.chromium = P.chromium;
6+exports.firefox = P.firefox;
7+exports.webkit = P.webkit;
8+exports._launch = function (browser) {
9+ return function (opts) {
10+ return function () {
11+ return browser.launch(opts);
12+ };
13+ };
14+};
src/Playwright.pursnew file+113
@@ -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"
test/Main.pursnew file+9
@@ -0,0 +1,9 @@
1+module Test.Main where
2+
3+import Prelude
4+import Effect (Effect)
5+import Effect.Console (log)
6+
7+main :: Effect Unit
8+main = do
9+ log "You should add some tests."