Skip to content

Compiler/0.12 #1

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 10 commits into from
May 25, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 8 additions & 8 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# Dependencies
.psci_modules
bower_components
node_modules

# Generated files
.psci
output
/.*
!/.gitignore
!/.eslintrc.json
!/.travis.yml
package-lock.json
/bower_components/
/node_modules/
/output/
8 changes: 7 additions & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,17 @@ language: node_js
dist: trusty
sudo: required
node_js: stable
env:
- PATH=$HOME/purescript:$PATH
install:
- TAG=$(wget -q -O - https://github.com/purescript/purescript/releases/latest --server-response --max-redirect 0 2>&1 | sed -n -e 's/.*Location:.*tag\///p')
- wget -O $HOME/purescript.tar.gz https://github.com/purescript/purescript/releases/download/$TAG/linux64.tar.gz
- tar -xvf $HOME/purescript.tar.gz -C $HOME/
- chmod a+x $HOME/purescript
- npm install -g bower
- npm install
- bower install
script:
- bower install
- npm run -s build
after_success:
- >-
Expand Down
8 changes: 4 additions & 4 deletions bower.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,9 @@
"package.json"
],
"dependencies": {
"purescript-js-date": "#compiler/0.12",
"purescript-web-dom": "#compiler/0.12",
"purescript-web-file": "#compiler/0.12",
"purescript-web-storage": "purescript-web/purescript-web-storage#compiler/0.12"
"purescript-js-date": "^6.0.0",
"purescript-web-dom": "^1.0.0",
"purescript-web-file": "^1.0.0",
"purescript-web-storage": "^2.0.0"
}
}
1 change: 0 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@
"eslint": "^4.19.1",
"pulp": "^12.2.0",
"purescript-psa": "^0.6.0",
"purescript": "^0.11.7",
"rimraf": "^2.6.2"
}
}
6 changes: 6 additions & 0 deletions src/Web/HTML.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
/* global window */
"use strict";

exports.window = function () {
return window;
};
76 changes: 76 additions & 0 deletions src/Web/HTML.purs
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
module Web.HTML
( window
, module Exports
) where

import Effect (Effect)
import Web.HTML.Window (Window)
import Web.HTML.History (History) as Exports
import Web.HTML.HTMLAnchorElement (HTMLAnchorElement) as Exports
import Web.HTML.HTMLAreaElement (HTMLAreaElement) as Exports
import Web.HTML.HTMLAudioElement (HTMLAudioElement) as Exports
import Web.HTML.HTMLBaseElement (HTMLBaseElement) as Exports
import Web.HTML.HTMLBodyElement (HTMLBodyElement) as Exports
import Web.HTML.HTMLBRElement (HTMLBRElement) as Exports
import Web.HTML.HTMLButtonElement (HTMLButtonElement) as Exports
import Web.HTML.HTMLCanvasElement (HTMLCanvasElement) as Exports
import Web.HTML.HTMLDataElement (HTMLDataElement) as Exports
import Web.HTML.HTMLDataListElement (HTMLDataListElement) as Exports
import Web.HTML.HTMLDivElement (HTMLDivElement) as Exports
import Web.HTML.HTMLDListElement (HTMLDListElement) as Exports
import Web.HTML.HTMLDocument (HTMLDocument) as Exports
import Web.HTML.HTMLElement (HTMLElement) as Exports
import Web.HTML.HTMLEmbedElement (HTMLEmbedElement) as Exports
import Web.HTML.HTMLFieldSetElement (HTMLFieldSetElement) as Exports
import Web.HTML.HTMLFormElement (HTMLFormElement) as Exports
import Web.HTML.HTMLHeadElement (HTMLHeadElement) as Exports
import Web.HTML.HTMLHeadingElement (HTMLHeadingElement) as Exports
import Web.HTML.HTMLHRElement (HTMLHRElement) as Exports
import Web.HTML.HTMLIFrameElement (HTMLIFrameElement) as Exports
import Web.HTML.HTMLImageElement (HTMLImageElement) as Exports
import Web.HTML.HTMLInputElement (HTMLInputElement) as Exports
import Web.HTML.HTMLKeygenElement (HTMLKeygenElement) as Exports
import Web.HTML.HTMLLabelElement (HTMLLabelElement) as Exports
import Web.HTML.HTMLLegendElement (HTMLLegendElement) as Exports
import Web.HTML.HTMLLIElement (HTMLLIElement) as Exports
import Web.HTML.HTMLLinkElement (HTMLLinkElement) as Exports
import Web.HTML.HTMLMapElement (HTMLMapElement) as Exports
import Web.HTML.HTMLMediaElement (HTMLMediaElement) as Exports
import Web.HTML.HTMLMetaElement (HTMLMetaElement) as Exports
import Web.HTML.HTMLMeterElement (HTMLMeterElement) as Exports
import Web.HTML.HTMLModElement (HTMLModElement) as Exports
import Web.HTML.HTMLObjectElement (HTMLObjectElement) as Exports
import Web.HTML.HTMLOListElement (HTMLOListElement) as Exports
import Web.HTML.HTMLOptGroupElement (HTMLOptGroupElement) as Exports
import Web.HTML.HTMLOptionElement (HTMLOptionElement) as Exports
import Web.HTML.HTMLOutputElement (HTMLOutputElement) as Exports
import Web.HTML.HTMLParagraphElement (HTMLParagraphElement) as Exports
import Web.HTML.HTMLParamElement (HTMLParamElement) as Exports
import Web.HTML.HTMLPreElement (HTMLPreElement) as Exports
import Web.HTML.HTMLProgressElement (HTMLProgressElement) as Exports
import Web.HTML.HTMLQuoteElement (HTMLQuoteElement) as Exports
import Web.HTML.HTMLScriptElement (HTMLScriptElement) as Exports
import Web.HTML.HTMLSelectElement (HTMLSelectElement) as Exports
import Web.HTML.HTMLSourceElement (HTMLSourceElement) as Exports
import Web.HTML.HTMLSpanElement (HTMLSpanElement) as Exports
import Web.HTML.HTMLStyleElement (HTMLStyleElement) as Exports
import Web.HTML.HTMLTableCaptionElement (HTMLTableCaptionElement) as Exports
import Web.HTML.HTMLTableCellElement (HTMLTableCellElement) as Exports
import Web.HTML.HTMLTableColElement (HTMLTableColElement) as Exports
import Web.HTML.HTMLTableDataCellElement (HTMLTableDataCellElement) as Exports
import Web.HTML.HTMLTableElement (HTMLTableElement) as Exports
import Web.HTML.HTMLTableHeaderCellElement (HTMLTableHeaderCellElement) as Exports
import Web.HTML.HTMLTableRowElement (HTMLTableRowElement) as Exports
import Web.HTML.HTMLTableSectionElement (HTMLTableSectionElement) as Exports
import Web.HTML.HTMLTemplateElement (HTMLTemplateElement) as Exports
import Web.HTML.HTMLTextAreaElement (HTMLTextAreaElement) as Exports
import Web.HTML.HTMLTimeElement (HTMLTimeElement) as Exports
import Web.HTML.HTMLTitleElement (HTMLTitleElement) as Exports
import Web.HTML.HTMLTrackElement (HTMLTrackElement) as Exports
import Web.HTML.HTMLUListElement (HTMLUListElement) as Exports
import Web.HTML.HTMLVideoElement (HTMLVideoElement) as Exports
import Web.HTML.Location (Location) as Exports
import Web.HTML.Navigator (Navigator) as Exports
import Web.HTML.Window (Window) as Exports

foreign import window :: Effect Window
15 changes: 15 additions & 0 deletions src/Web/HTML/Event/BeforeUnloadEvent.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
"use strict";

exports.returnValue = function (e) {
return function () {
return e.returnValue;
};
};

exports.setReturnValue = function (v) {
return function (e) {
return function () {
e.returnValue = v;
};
};
};
21 changes: 21 additions & 0 deletions src/Web/HTML/Event/BeforeUnloadEvent.purs
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
module Web.HTML.Event.BeforeUnloadEvent where

import Prelude

import Data.Maybe (Maybe)
import Effect (Effect)
import Unsafe.Coerce (unsafeCoerce)
import Web.Event.Event (Event)
import Web.Internal.FFI (unsafeReadProtoTagged)

foreign import data BeforeUnloadEvent :: Type

fromEvent :: Event -> Maybe BeforeUnloadEvent
fromEvent = unsafeReadProtoTagged "BeforeUnloadEvent"

toEvent :: BeforeUnloadEvent -> Event
toEvent = unsafeCoerce

foreign import returnValue :: BeforeUnloadEvent -> Effect String

foreign import setReturnValue :: String -> BeforeUnloadEvent -> Effect Unit
6 changes: 6 additions & 0 deletions src/Web/HTML/Event/BeforeUnloadEvent/EventTypes.purs
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
module Web.HTML.Event.BeforeUnloadEvent.EventTypes where

import Web.Event.Event (EventType(..))

beforeunload :: EventType
beforeunload = EventType "beforeunload"
41 changes: 41 additions & 0 deletions src/Web/HTML/Event/DataTransfer.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
"use strict";

exports._files = function (dataTransfer) {
return dataTransfer.files;
};

exports.types = function (dataTransfer) {
return dataTransfer.types;
};

exports._getData = function (format) {
return function (dataTransfer) {
return function () {
return dataTransfer.getData(format);
};
};
};

exports._setData = function (format) {
return function (data) {
return function (dataTransfer) {
return function () {
return dataTransfer.setData(format, data);
};
};
};
};

exports._dropEffect = function (dataTransfer) {
return function () {
return dataTransfer.dropEffect;
};
};

exports._setDropEffect = function (e) {
return function (dataTransfer) {
return function () {
dataTransfer.dropEffect = e;
};
};
};
85 changes: 85 additions & 0 deletions src/Web/HTML/Event/DataTransfer.purs
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
module Web.HTML.Event.DataTransfer
( DataTransfer
, files
, types
, getData
, setData
, DropEffect(..)
, dropEffect
, setDropEffect
) where

import Prelude

import Data.Maybe (Maybe)
import Data.MediaType (MediaType(..))
import Data.Nullable (Nullable, toMaybe)
import Effect (Effect)
import Web.File.FileList (FileList)

foreign import data DataTransfer :: Type

-- | Contains a list of all the local files available on the data transfer.
-- | Empty if the drag operation doesn't involve dragging files.
-- |
-- | It's possible that a drag operation may have null files, instead of an
-- | empty file list. In these cases Nothing is returned.
files :: DataTransfer -> Maybe FileList
files = toMaybe <$> _files

foreign import _files :: DataTransfer -> Nullable FileList

-- | Returns an array of data formats used in the drag operation.
-- | If the drag operation included no data, then the array is empty.
foreign import types :: DataTransfer -> Array String

foreign import _getData
:: String
-> DataTransfer
-> Effect String

-- | Retrieves the data for a given media type, or an empty string if data for
-- | that type does not exist or the data transfer object contains no data.
getData :: MediaType -> DataTransfer -> Effect String
getData (MediaType format) dt = _getData format dt

foreign import _setData
:: String
-> String
-> DataTransfer
-> Effect Unit

-- | Sets the data transfer object's data for a given media format.
setData
:: MediaType
-> String
-> DataTransfer
-> Effect Unit
setData (MediaType format) dat dt = _setData format dat dt

foreign import _dropEffect :: DataTransfer -> Effect String

data DropEffect = Copy | Link | Move | None

derive instance eqDropEffect :: Eq DropEffect
derive instance ordDropEffect :: Ord DropEffect

-- | Gets the data transfer object's drop effect.
dropEffect :: DataTransfer -> Effect DropEffect
dropEffect dt =
_dropEffect dt <#> case _ of
"copy" -> Copy
"link" -> Link
"move" -> Move
"none" -> None
_ -> None

foreign import _setDropEffect :: String -> DataTransfer -> Effect Unit

-- | Sets the data transfer object's drop effect.
setDropEffect :: DropEffect -> DataTransfer -> Effect Unit
setDropEffect de = _setDropEffect case de of
Copy -> "copy"
Link -> "link"
Move -> "move"
None -> "none"
5 changes: 5 additions & 0 deletions src/Web/HTML/Event/DragEvent.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
"use strict";

exports.dataTransfer = function (e) {
return e.dataTransfer;
};
17 changes: 17 additions & 0 deletions src/Web/HTML/Event/DragEvent.purs
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
module Web.HTML.Event.DragEvent where

import Data.Maybe (Maybe)
import Unsafe.Coerce (unsafeCoerce)
import Web.Event.Event (Event)
import Web.HTML.Event.DataTransfer (DataTransfer)
import Web.Internal.FFI (unsafeReadProtoTagged)

foreign import data DragEvent :: Type

fromEvent :: Event -> Maybe DragEvent
fromEvent = unsafeReadProtoTagged "DragEvent"

toEvent :: DragEvent -> Event
toEvent = unsafeCoerce

foreign import dataTransfer :: DragEvent -> DataTransfer
27 changes: 27 additions & 0 deletions src/Web/HTML/Event/DragEvent/EventTypes.purs
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
module Web.HTML.Event.DragEvent.EventTypes where

import Web.Event.Event (EventType(..))

dragstart :: EventType
dragstart = EventType "dragstart"

drag :: EventType
drag = EventType "drag"

dragenter :: EventType
dragenter = EventType "dragenter"

dragexit :: EventType
dragexit = EventType "dragexit"

dragleave :: EventType
dragleave = EventType "dragleave"

dragover :: EventType
dragover = EventType "dragover"

drop :: EventType
drop = EventType "drop"

dragend :: EventType
dragend = EventType "dragend"
17 changes: 17 additions & 0 deletions src/Web/HTML/Event/ErrorEvent.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
"use strict";

exports.message = function (e) {
return e.message;
};

exports.fileName = function (e) {
return e.filename;
};

exports.lineNo = function (e) {
return e.lineno;
};

exports.colNo = function (e) {
return e.colno;
};
Loading