Version 1
[yaffs-website] / node_modules / min-document / docs.mli
diff --git a/node_modules/min-document/docs.mli b/node_modules/min-document/docs.mli
new file mode 100644 (file)
index 0000000..ad17b4a
--- /dev/null
@@ -0,0 +1,156 @@
+type Comment := {
+    data: String,
+    length: Number,
+    nodeName: "#comment",
+    nodeType: 8,
+    nodeValue: String,
+    ownerDoucment: null | Document,
+
+    toString: (this: Comment) => String
+}
+
+type DOMText := {
+    data: String,
+    type: "DOMTextNode",
+    length: Number,
+    nodeType: 3,
+
+    toString: (this: DOMText) => String,
+    replaceChild: (
+        this: DOMText,
+        index: Number,
+        length: Number,
+        value: String
+    ) => void
+}
+
+type DOMNode := DOMText | DOMElement | DocumentFragment
+type DOMChild := DOMText | DOMElement
+
+type DOMElement := {
+    tagName: String,
+    className: String,
+    dataset: Object<String, Any>,
+    childNodes: Array<DOMChild>,
+    parentNode: null | DOMElement,
+    style: Object<String, String>,
+    type: "DOMElement",
+    nodeType: 1,
+    ownerDoucment: null | Document,
+    namespaceURI: null | String,
+
+    appendChild: (this: DOMElement, child: DOMChild) => DOMChild,
+    replaceChild:(
+        this: DOMElement,
+        elem: DOMChild,
+        needle: DOMChild
+    ) => DOMChild,
+    removeChild: (this: DOMElement, child: DOMChild) => DOMChild,
+    insertBefore: (
+        this: DOMElement,
+        elem: DOMChild,
+        needle: DOMChild | null | undefined
+    ) => DOMChild,
+    addEventListener: addEventListener,
+    dispatchEvent: dispatchEvent,
+    focus: () => void,
+    toString: (this: DOMElement) => String,
+    getElementsByClassName: (
+        this: DOMElement,
+        className: String
+    ) => Array<DOMElement>,
+    getElementsByTagName: (
+        this: DOMElement,
+        tagName: String
+    ) => Array<DOMElement>,
+}
+
+type DocumentFragment := {
+    childNodes: Array<DOMChild>,
+    parentNode: null | DOMElement,
+    type: "DocumentFragment",
+    nodeType: 11,
+    nodeName: "#document-fragment",
+    ownerDoucment: Document | null,
+
+    appendChild: (this: DocumentFragment, child: DOMChild),
+    replaceChild:
+        (this: DocumentFragment, elem: DOMChild, needle: DOMChild),
+    removeChild: (this: DocumentFragment, child: DOMChild),
+    toString: (this: DocumentFragment) => String
+}
+
+type Document := {
+    body: DOMElement,
+    childNodes: Array<DOMChild>,
+    documentElement: DOMElement,
+    nodeType: 9,
+
+    createComment: (this: Document, data: String) => Commment,
+    createTextNode: (this: Document, value: String) => DOMText,
+    createElement: (this: Document, tagName: String) => DOMElement,
+    createElementNS: (
+        this: Document,
+        namespace: String | null,
+        tagName: String
+    ) => DOMElement,
+    createDocumentFragment: (this: Document) => DocumentFragment,
+    createEvent: () => Event,
+    getElementById: (
+        this: Document,
+        id: String,
+    ) => null | DOMElement,
+    getElementsByClassName: (
+        this: Document,
+        className: String
+    ) => Array<DOMElement>,
+    getElementsByTagName: (
+        this: Document,
+        tagName: String
+    ) => Array<DOMElement>
+}
+
+type Event := {
+    type: String,
+    bubbles: Boolean,
+    cancelable: Boolean,
+
+    initEvent: (
+        this: Event,
+        type: String,
+        bubbles: Boolean,
+        cancelable: Boolean
+    ) => void
+}
+
+type addEventListener := (
+    this: DOMElement,
+    type: String,
+    listener: Listener
+) => void
+
+type dispatchEvent := (
+    this: DOMElement,
+    ev: Event
+)
+
+min-document/event/add-event-listener := addEventListener
+
+min-document/event/dispatch-event := dispatchEvent
+
+min-document/document := () => Document
+
+min-document/dom-element :=
+    (tagName: String, owner?: Document, namespace?: String | null) => DOMElement
+
+min-document/dom-fragment :=
+    (owner?: Document) => DocumentFragment
+
+min-document/dom-text :=
+    (value: String, owner?: Document) => DOMText
+
+min-document/event := () => Event
+
+min-document/serialize := (DOMElement) => String
+
+min-document := Document