Skip to content
This repository was archived by the owner on Nov 1, 2021. It is now read-only.

Commit d44f98b

Browse files
tsnobipglennsl
authored andcommitted
add bindings to DomStringMap (#165)
1 parent 0b5fef9 commit d44f98b

File tree

6 files changed

+109
-1
lines changed

6 files changed

+109
-1
lines changed

lib/js/src/Webapi/Webapi__Dom.js

Lines changed: 49 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,51 @@
11
'use strict';
22

3+
var Webapi__Dom__Attr = require("./Webapi__Dom/Webapi__Dom__Attr.js");
4+
var Webapi__Dom__Node = require("./Webapi__Dom/Webapi__Dom__Node.js");
5+
var Webapi__Dom__Text = require("./Webapi__Dom/Webapi__Dom__Text.js");
36
var Webapi__Dom__Types = require("./Webapi__Dom/Webapi__Dom__Types.js");
7+
var Webapi__Dom__Window = require("./Webapi__Dom/Webapi__Dom__Window.js");
8+
var Webapi__Dom__Comment = require("./Webapi__Dom/Webapi__Dom__Comment.js");
9+
var Webapi__Dom__Element = require("./Webapi__Dom/Webapi__Dom__Element.js");
10+
var Webapi__Dom__UiEvent = require("./Webapi__Dom/Webapi__Dom__UiEvent.js");
11+
var Webapi__Dom__Document = require("./Webapi__Dom/Webapi__Dom__Document.js");
12+
var Webapi__Dom__DragEvent = require("./Webapi__Dom/Webapi__Dom__DragEvent.js");
13+
var Webapi__Dom__TimeEvent = require("./Webapi__Dom/Webapi__Dom__TimeEvent.js");
14+
var Webapi__Dom__CloseEvent = require("./Webapi__Dom/Webapi__Dom__CloseEvent.js");
15+
var Webapi__Dom__ErrorEvent = require("./Webapi__Dom/Webapi__Dom__ErrorEvent.js");
16+
var Webapi__Dom__FocusEvent = require("./Webapi__Dom/Webapi__Dom__FocusEvent.js");
17+
var Webapi__Dom__InputEvent = require("./Webapi__Dom/Webapi__Dom__InputEvent.js");
18+
var Webapi__Dom__MouseEvent = require("./Webapi__Dom/Webapi__Dom__MouseEvent.js");
19+
var Webapi__Dom__ShadowRoot = require("./Webapi__Dom/Webapi__Dom__ShadowRoot.js");
20+
var Webapi__Dom__TouchEvent = require("./Webapi__Dom/Webapi__Dom__TouchEvent.js");
21+
var Webapi__Dom__TrackEvent = require("./Webapi__Dom/Webapi__Dom__TrackEvent.js");
22+
var Webapi__Dom__WheelEvent = require("./Webapi__Dom/Webapi__Dom__WheelEvent.js");
23+
var Webapi__Dom__CustomEvent = require("./Webapi__Dom/Webapi__Dom__CustomEvent.js");
24+
var Webapi__Dom__HtmlElement = require("./Webapi__Dom/Webapi__Dom__HtmlElement.js");
25+
var Webapi__Dom__CdataSection = require("./Webapi__Dom/Webapi__Dom__CdataSection.js");
26+
var Webapi__Dom__DocumentType = require("./Webapi__Dom/Webapi__Dom__DocumentType.js");
27+
var Webapi__Dom__HtmlDocument = require("./Webapi__Dom/Webapi__Dom__HtmlDocument.js");
28+
var Webapi__Dom__PointerEvent = require("./Webapi__Dom/Webapi__Dom__PointerEvent.js");
29+
var Webapi__Dom__RelatedEvent = require("./Webapi__Dom/Webapi__Dom__RelatedEvent.js");
30+
var Webapi__Dom__StorageEvent = require("./Webapi__Dom/Webapi__Dom__StorageEvent.js");
31+
var Webapi__Dom__SvgZoomEvent = require("./Webapi__Dom/Webapi__Dom__SvgZoomEvent.js");
32+
var Webapi__Dom__CharacterData = require("./Webapi__Dom/Webapi__Dom__CharacterData.js");
33+
var Webapi__Dom__KeyboardEvent = require("./Webapi__Dom/Webapi__Dom__KeyboardEvent.js");
34+
var Webapi__Dom__PopStateEvent = require("./Webapi__Dom/Webapi__Dom__PopStateEvent.js");
35+
var Webapi__Dom__ProgressEvent = require("./Webapi__Dom/Webapi__Dom__ProgressEvent.js");
36+
var Webapi__Dom__AnimationEvent = require("./Webapi__Dom/Webapi__Dom__AnimationEvent.js");
37+
var Webapi__Dom__ClipboardEvent = require("./Webapi__Dom/Webapi__Dom__ClipboardEvent.js");
38+
var Webapi__Dom__HtmlFormElement = require("./Webapi__Dom/Webapi__Dom__HtmlFormElement.js");
39+
var Webapi__Dom__TransitionEvent = require("./Webapi__Dom/Webapi__Dom__TransitionEvent.js");
40+
var Webapi__Dom__CompositionEvent = require("./Webapi__Dom/Webapi__Dom__CompositionEvent.js");
41+
var Webapi__Dom__DocumentFragment = require("./Webapi__Dom/Webapi__Dom__DocumentFragment.js");
42+
var Webapi__Dom__HtmlImageElement = require("./Webapi__Dom/Webapi__Dom__HtmlImageElement.js");
43+
var Webapi__Dom__HtmlInputElement = require("./Webapi__Dom/Webapi__Dom__HtmlInputElement.js");
44+
var Webapi__Dom__BeforeUnloadEvent = require("./Webapi__Dom/Webapi__Dom__BeforeUnloadEvent.js");
45+
var Webapi__Dom__WebGlContextEvent = require("./Webapi__Dom/Webapi__Dom__WebGlContextEvent.js");
46+
var Webapi__Dom__PageTransitionEvent = require("./Webapi__Dom/Webapi__Dom__PageTransitionEvent.js");
47+
var Webapi__Dom__IdbVersionChangeEvent = require("./Webapi__Dom/Webapi__Dom__IdbVersionChangeEvent.js");
48+
var Webapi__Dom__ProcessingInstruction = require("./Webapi__Dom/Webapi__Dom__ProcessingInstruction.js");
449

550
var $$AnimationEvent = 0;
651

@@ -34,6 +79,8 @@ var DomImplementation = 0;
3479

3580
var DomRect = 0;
3681

82+
var DomStringMap = 0;
83+
3784
var DomTokenList = 0;
3885

3986
var $$DragEvent = 0;
@@ -188,6 +235,7 @@ exports.$$DocumentFragment = $$DocumentFragment;
188235
exports.$$DocumentType = $$DocumentType;
189236
exports.DomImplementation = DomImplementation;
190237
exports.DomRect = DomRect;
238+
exports.DomStringMap = DomStringMap;
191239
exports.DomTokenList = DomTokenList;
192240
exports.$$DragEvent = $$DragEvent;
193241
exports.$$Element = $$Element;
@@ -257,4 +305,4 @@ exports.decodeReadyState = decodeReadyState;
257305
exports.decodeShadowRootMode = decodeShadowRootMode;
258306
exports.decodeVisibilityState = decodeVisibilityState;
259307
exports.WhatToShow = WhatToShow;
260-
/* No side effect */
308+
/* Webapi__Dom__Attr Not a pure module */
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
'use strict';
2+
3+
var Caml_option = require("bs-platform/lib/js/caml_option.js");
4+
5+
function get(key, map) {
6+
return Caml_option.nullable_to_opt(map[key]);
7+
}
8+
9+
function set(key, value, map) {
10+
map[key] = value;
11+
return /* () */0;
12+
}
13+
14+
function unsafeDeleteKey (key,map){delete map[key];};
15+
16+
exports.get = get;
17+
exports.set = set;
18+
exports.unsafeDeleteKey = unsafeDeleteKey;
19+
/* No side effect */
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
'use strict';
2+
3+
var Webapi = require("../../../src/Webapi.js");
4+
var Webapi__Dom = require("../../../src/Webapi/Webapi__Dom.js");
5+
var Webapi__Dom__DomStringMap = require("../../../src/Webapi/Webapi__Dom/Webapi__Dom__DomStringMap.js");
6+
7+
var dataset = document.createElement("div").dataset;
8+
9+
Webapi__Dom__DomStringMap.set("fooKey", "barValue", dataset);
10+
11+
Webapi__Dom__DomStringMap.get("fooKey", dataset);
12+
13+
Webapi__Dom__DomStringMap.unsafeDeleteKey("fooKey", dataset);
14+
15+
exports.dataset = dataset;
16+
/* dataset Not a pure module */

src/Webapi/Webapi__Dom.re

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ module DocumentFragment = Webapi__Dom__DocumentFragment;
1414
module DocumentType = Webapi__Dom__DocumentType;
1515
module DomImplementation = Webapi__Dom__DomImplementation;
1616
module DomRect = Webapi__Dom__DomRect;
17+
module DomStringMap = Webapi__Dom__DomStringMap;
1718
module DomTokenList = Webapi__Dom__DomTokenList;
1819
module DragEvent = Webapi__Dom__DragEvent;
1920
module Element = Webapi__Dom__Element;
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
type t = Dom.domStringMap;
2+
3+
type key = string;
4+
5+
[@bs.get_index] [@bs.return nullable]
6+
external get: (t, key) => option(string) = "";
7+
let get = (key, map) => get(map, key);
8+
[@bs.set_index] external set: (t, key, string) => unit = "";
9+
let set = (key, value, map) => set(map, key, value);
10+
let unsafeDeleteKey: (key, t) => unit =
11+
[%raw (key, map) => "delete map[key];"];
12+
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
open Webapi.Dom;
2+
open Webapi.Dom.DomStringMap;
3+
4+
let dataset =
5+
document
6+
|> Document.createElement("div")
7+
|> Element.unsafeAsHtmlElement
8+
|> HtmlElement.dataset;
9+
10+
let () = set("fooKey", "barValue", dataset);
11+
let _ = get("fooKey", dataset);
12+
let () = unsafeDeleteKey("fooKey", dataset);

0 commit comments

Comments
 (0)